This semester (semester 2), we'll be starting from scratch in Python, working our way up from the basics of competitive programming to more advanced algorithms and data structures.
Sessions will be held every week on Wednesday afternoons from 4:30pm - 6pm starting from week 3, and we will try and go through a different topic every week (see schedule below). The intention is to dedicate 30 minutes to learning about the topic, and then 60 minutes to a mini CPG competition, which is a chance for you to work in a team (if you'd like!) and get some experience applying the algorithms and techniques yourself. Bonus: there will be prizes to be won!
The primary resource we'll be using is the USACO Guide, but there are a couple of other ones you can use:
Resource | Purpose |
---|---|
CSES Problem Set | Contains a massive set of problems sorted by topic. We'll slowly go through these topics and problems over the weeks. |
HackerRank | Contains problems as well, but we'll mostly be using this for our mini CPG competitions. |
Week | Topic |
---|---|
Week 3 | Introduction to Competitive Programming |
Week 4 | Searching |
Week 5 | Sorting |
Week 6 | Greedy Algorithms |
Week 7 | Graphs |
Week 8 | - (clash with High Frequency Networking) |
Week 9 | Dynamic Programming |
Midsem | - |
Week 10 | Trees |
Week 11 | Graphs II |
Week 12 | Hashing |