Course map
Every stage and module in order. Modules that are not written yet say so.
Stage 0: Orientation
Understand what a program is, how exact-match judging works, and how to read an error message.
Stage 1: Python fundamentals
Read and write core Python 3.8 syntax and data types fluently.
print1 lessonM1.2Integer arithmetic and operators1 lessonM1.3Reading input1 lessonM1.4Booleans and conditionals1 lessonM1.5for loops and range1 lessonM1.6while loops, break/continue, sentinels and EOF1 lessonM1.7Strings1 lessonM1.8Lists (1D and 2D)1 lessonM1.9Tuples, dictionaries and sets1 lessonM1.10Functions and scope1 lessonM1.11Output formatting1 lessonM1.12Floats, precision and big integers1 lessonM1.13Imports and the standard library tour1 lessonM1.14Recursion fundamentals1 lessonM1.15The Python 3.8 language boundary1 lessonStage 2: Problem-solving foundations
Read a problem statement, plan before coding, test deliberately, and debug systematically.
Stage 3: Junior J1–J3
Apply loop, string, lookup and grid techniques to early-contest problems.
Stage 4: Junior J4–J5 / Senior S1–S2
Apply hashing, sorting, prefix sums, search patterns and basic graph traversal.
Stage 5: Senior S3
Apply binary search, hashing, trees, sliding windows and interval techniques.
Stage 6: Senior S4
Apply shortest paths, minimum spanning trees, tree DP, sweep lines and Fenwick trees.
Stage 7: Senior S5 and advanced
Apply segment trees, advanced dynamic programming and deeper number theory.
Stage C: Contest skills
Contest skills that apply across every stage: rules, templates, subtask strategy, time management, testing against a brute force, and reading grader feedback.