CCC Python Course
A free course that starts at your very first line of code and goes all the way to the algorithms behind CCC Senior problems, in Python 3.8.
Read a lesson, watch the code run step by step, then practise on real CCC problems on WMOJ and DMOJ.
Start with Stage 0
M0.1What a program isThe course, stage by stage
Stage 0OrientationUnderstand what a program is, how exact-match judging works, and how to read an error message.5 modulesStage 1Python fundamentalsRead and write core Python 3.8 syntax and data types fluently.15 modulesStage 2Problem-solving foundationsRead a problem statement, plan before coding, test deliberately, and debug systematically.9 modulesStage 3Junior J1–J3Apply loop, string, lookup and grid techniques to early-contest problems.10 modulesStage 4Junior J4–J5 / Senior S1–S2Apply hashing, sorting, prefix sums, search patterns and basic graph traversal.15 modulesStage 5Senior S3Apply binary search, hashing, trees, sliding windows and interval techniques.13 modulesStage 6Senior S4Apply shortest paths, minimum spanning trees, tree DP, sweep lines and Fenwick trees.13 modulesStage 7Senior S5 and advancedApply segment trees, advanced dynamic programming and deeper number theory.14 modulesStage CContest skillsContest skills that apply across every stage: rules, templates, subtask strategy, time management, testing against a brute force, and reading grader feedback.10 modules
How this course works
- Read
- Each lesson explains one idea at a time, with example programs you can copy into your own editor.
- Watch it run
- Step-throughs show programs and algorithms running one step at a time. You control the pace.
- Practise on the judges
- Modules end with a short list of CCC problems. You solve them on WMOJ or DMOJ, which check your answers.
- Keep your place
- Mark a lesson as read when you finish it. The marks are saved in this browser only.