π₯ 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
Link to the coursework
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
- https://www.wscubetech.com/resources/dsa/time-complexity
- 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
Link to the coursework
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
Link to the coursework
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
Link to the coursework
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)
- Caching
- Precomputing
- Memoisation
- Time complexity of either logarithmic, linear, quadratic, or exponential algorithms
- Any sorting algorithm that takes your fancy
- 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
Link to the coursework
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