πŸ₯ž backlog

Module-Complexity πŸ”—  

1. Complete Space and Time Complexity in Data Structure and Algorithms πŸ”— Clone

1. Complete Space and Time Complexity in Data Structure and Algorithms πŸ”—

Learning Objectives

https://www.wscubetech.com/resources/dsa/time-complexity

Learning Objectives

Why are we doing this?

This is a primer on space and time complexity. It’s basically a reference guide. You do not need to memorise this information. Read through it and make notes for yourself. Make sure you can answer the following questions:

  • What is Big O Notation?
  • Which has a higher complexity, bubble sort or timsort?
  • What’s the problem with nested loops?

Complete

  1. https://www.wscubetech.com/resources/dsa/time-complexity
  2. https://www.wscubetech.com/resources/dsa/space-complexity

Maximum time in hours

3

How to get help

Share your blockers in your class channel https://curriculum.codeyourfuture.io/guides/getting-help/asking-questions/

How to submit

No submission step. This is background reading for your own understanding.

Anything else?

Enjoy this folk dance bubble sort: https://www.youtube.com/watch?v=Iv3vgjM8Pv4

  • :brain: Prep work
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Structuring Data
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1
  • πŸ“… Sprint 1
  • πŸ‚ Size Medium
  • πŸ• Priority Mandatory
  • 🎯 Topic Structuring Data
  • 🎯 Topic Programming Fundamentals
  • :brain: Prep work
2. Research Complexity using the Google DSA path πŸ”— Clone

2. Research Complexity using the Google DSA path πŸ”—

Learning Objectives

https://techdevguide.withgoogle.com/paths/data-structures-and-algorithms/

Learning Objectives

Why are we doing this?

Now you are moving towards working as a professional software engineer, you need to develop your research practice. How will you develop your skills after this course? How will you keep learning and growing? It is crucial that you continue your education past this very short course.

During this module, we cover a small part of data structures and algorithms. But there’s a lot more to learn. Google study paths are a useful guide, with built in quizzes and links to high quality materials. In your calendar, schedule a regular time to progress through this path over the next three months.

Tips

  • Take the quiz for each section first, to see how much you already know about the topic. If you do very well, you probably don’t need to spend a lot of time on those materials.
  • Return to topics regularly using spaced repetition scheduled in your calendar
  • Use a defined path with an end goal you can state, don’t just randomly watch videos about programming, please!

Maximum time in hours

1

How to get help

Find a study partner or group in your class. Organise to meet with each other at least once per month (or more) for the next six months (online or in person) to help each other stay accountable.

How to submit

Come to Friday demos to demo what you have learned, whenever you want. Grads are always welcome at Friday demos.

  • 🎯 Topic Problem-Solving
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Teamwork
  • 🎯 Topic Time Management
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1
  • πŸ“… Sprint 1
  • πŸ‚ Size Medium
  • πŸ• Priority Mandatory
  • 🎯 Topic Time Management
  • 🎯 Topic Teamwork
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Problem-Solving
3. Analyse and Refactor Functions πŸ”— Clone

3. Analyse and Refactor Functions πŸ”—

Learning Objectives

https://github.com/CodeYourFuture/Module-Complexity/tree/main/Sprint-1

Learning Objectives

Why are we doing this?

It is easier to understand complexity in the abstract than it is to recognise and apply it in our everyday code. In this module you will focus on noticing complexity in code you and your colleagues write.

In Sprint 1, we have provided you a selection of functions that are written in inefficient ways. Your goal is to collaborate on refactoring these functions. It’s not enough to improve the code, you must also explain why your refactor is objectively better.

Maximum time in hours

6

How to get help

Bring this to class and study groups. The goal is to collaborate.

How to submit

Fork the repo to your own GitHub account Make regular small commits with clear messages When you are ready, open a Pull Request to the CYF repo Make sure you explain your work clearly in your PR message

How to review

Please read the README in Sprint 1!

Anything else?

No response

  • 🎯 Topic Communication
  • 🎯 Topic Iteration
  • 🎯 Topic Problem-Solving
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Requirements
  • 🎯 Topic Teamwork
  • πŸ• Priority Mandatory
  • πŸ“… Sprint 1
  • πŸ¦‘ Size Large
  • πŸ¦‘ Size Large
  • πŸ“… Sprint 1
  • πŸ• Priority Mandatory
  • 🎯 Topic Teamwork
  • 🎯 Topic Requirements
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Problem-Solving
  • 🎯 Topic Iteration
  • 🎯 Topic Communication
4. Prepare your lesson on complexity πŸ”— Clone

4. Prepare your lesson on complexity πŸ”—

Learning Objectives

https://sdc.codeyourfuture.io/complexity/prep/

Learning Objectives

Why are we doing this?

By teaching we learn. The best way to really understand a subject well is to know it well enough to teach another.

In class this week you will be teaching something. You will be explaining one of the following computer science concepts. You will not use a computer to explain this, but something else. This could be a whiteboard presentation, a drawing, a game, a conversation, or anything you like that will help you communicate the concept, except a computer!

Topics (for both sprints)

  1. Caching
  2. Precomputing
  3. Memoisation
  4. Time complexity of either logarithmic, linear, quadratic, or exponential algorithms
  5. Any sorting algorithm that takes your fancy
  6. Any search strategy

Maximum time in hours

4

How to get help

Come to Friday demos to practice your lesson. Ask trainees in the ITP course to give you feedback.

How to submit

Give your demo in class.

How to review

No response

Anything else?

  • :brain: Prep work
  • 🎯 Topic Communication
  • 🎯 Topic Delivery
  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ“… Sprint 1
  • πŸ“… Sprint 1
  • πŸ‚ Size Medium
  • πŸ• Priority Mandatory
  • 🎯 Topic Delivery
  • 🎯 Topic Communication
  • :brain: Prep work
5. Codewars Fibonacci Series πŸ”— Clone

5. Codewars Fibonacci Series πŸ”—

Learning Objectives

https://www.codewars.com/collections/cyf-interview-prep-problems-and-sub-problems

Learning Objectives

Why are we doing this?

This is a collection of well known computer science problems that deal with complexity. Quite a lot of employers use problems like these in their technical interview process. You can practice them on Codewars, HackerRank, and LeetCode.

Maximum time in hours

0

How to get help

Join a Codewars club at CYF to practice solving these problems. You don’t have to only do Codewars problems - you can try ones on LeetCode and Hackerrank too if you like.

How to submit

No submission step. This is a stretch goal to support your research and study plan.

How to review

No response

Anything else?

  • 🎯 Topic Problem-Solving
  • 🏝️ Priority Stretch
  • πŸ‡ Size Small
  • πŸ“… Sprint 1
  • πŸ“… Sprint 1
  • πŸ‡ Size Small
  • 🏝️ Priority Stretch
  • 🎯 Topic Problem-Solving