The aim of this group is to get practice with programming questions such as those found on LeetCode, and to apply to this skills to programming competitions such as Google Code Jam, Advent of Code, Google Kickstart and (potentially) team-based competitions such as the International Collegiate Programming Contest (or ICPC). We aim to meet on a weekly basis to discuss and work together on challenging and interesting programming problems, and get some valuable experience for technical interviews along the way!
The primary resource will be the CSES problem set, which is a massive set of problems sorted by topic. We will slowly go through these topics over the weeks: we'll upload/go through some notes and you can work through the problems/ask if you get stuck during the session.
There is also the USACO Guide which is a great place to look if you are confused about a topic or problem (it has some solutions too).
Note: We started in Week 4, semester 1.
Week | Topic | Notes |
---|---|---|
Sem 1 Week 4 | Introduction to Competitive Programming | Notes |
Sem 1 Week 5 | Introductory Problems | Notes |
Sem 1 Week 6 | Code Jam Qualification Round | Notes |
Sem 1 Week 7 | Sorting and Searching | Notes |
Sem 1 Week 8 | Greedy Algorithms | Notes |
Sem 1 Week 9 | Dynamic Programming I | Notes |
Sem 1 Week 10 | Dynamic Programming II | Notes |
Sem 1 Week 11 | Graph Algorithms | Notes |
Sem 1 Week 12 | Mathematics | Notes |
Sem 1 Week 13 | No CPG. Go study for exams! | Notes |
- Competitive Programming Handbook which lists a lot of common topics, and also suitable for someone who has just started with C++.
- A website with a bunch of algorithms for competitions.
- Competitive programming course at NUS. From this link you can get access to a bunch of Kattis problem sets for various topics.
- Codeforces’ Gym, which is a place that has many ICPC problem sets from regions around the world. If we need team practice for ICPC, I reckon this is a very good place.
- Team notebooks: KTH, Stanford
- If we want to construct our own team notebook later on, we can use this website to check the correctness of our code.
- Geometry for Competitive Programming book by V. Lecomte.