This plan is designed for students who have some prior programming experience (e.g., Python, basic C++), are actively solving problems on platforms like CSES, Codexyz, or AtCoder, and are looking for a structured, age-appropriate roadmap. The focus is on mastering fundamental algorithms (DP, graphs, greedy), solving subtasks efficiently, and building confidence for NOI participation β without requiring university-level mathematics or overly advanced CS theory.
Suitable for : Secondary school students with a strong interest in competitive programming and basic proficiency in C++
Target:
1. Achieve a solid score in the NOI
2. ideally qualifying for the Final Round
3. with the stretch goal of solving 1β2 full tasks or earning a Bronze medal.
π΅ Month 1 β Foundation Building (Basics + Syntax Fluency)
Topic | Resources | Practice |
---|---|---|
C++ Syntax Refresh | GeeksforGeeks C++, USACO Bronze intro | 1β2 C++ syntax problems/week |
Time Complexity + Sorting | CPH Ch. 1β3, CSES Sorting & Searching | ~5β6 problems/week |
Prefix sums, brute force, loops | CPH + USACO Bronze | CSES βIntroductory Problemsβ |
AtCoder ABC | Do ABC Contest weekly (solve AβC) | ABC 100β105 |
Practice Site | CSES, Codexyz, AtCoder | Pick familiar platforms |
Weekly Targets:
-
3β4 CSES problems
-
1 AtCoder ABC (AβC)
-
1 contest-style simulation (30β60 min)
π΅ Month 2 β Core Algorithms (Graphs, Greedy, Recursion)
Topic | Resources | Practice |
---|---|---|
Recursion, Binary Search | CPH Ch. 4β6, USACO Bronze | CSES + USACO Guide: Binary Search |
BFS/DFS on graphs | CPH Ch. 11β12 | CSES Graph Algorithms (Easy) |
Greedy algorithms | CPH Ch. 8 | CSES + AtCoder ABC greedy questions |
Bit operations | CPH Ch. 7 | CSES bitmasking section |
AtCoder ABC | Continue weekly | ABC 106β110 |
Weekly Targets:
-
3 graph/greedy problems
-
1 USACO Guide section
-
Start noting reusable templates (BFS, DFS)
π Month 3 β Intermediate Concepts (DP, Shortest Path)
Topic | Resources | Practice |
---|---|---|
Dynamic Programming (0/1 Knapsack, Fibonacci) | CPH Ch. 9, USACO Guide: Intro to DP | CSES DP Set (start with 1β4) |
Dijkstra, Shortest Paths | CPH Ch. 13 | CSES + GeeksforGeeks |
Subset & Bitmask DP | Guide to CP + USACO Silver | Try “Meet in the Middle” on CSES |
AtCoder ABC | Weekly ABC contests | ABC 111β115 |
NOI.sg Archive | Try 2023/2022 problems | Focus on subtasks |
Weekly Targets:
-
3 DP problems
-
1β2 NOI past subtasks
-
1 timed session (1.5 hours)
π Month 4 β Advanced Problem Solving (DP2, Simulation, Ad Hoc)
Topic | Resources | Practice |
---|---|---|
Advanced DP (state reduction, optimization) | USACO Guide: Silver DP | CSES harder DP tasks |
Ad hoc + simulation problems | Codeforces Div 3 + AtCoder ABC | Random Codeforces practice (Div 3) |
Bitmask + backtracking | CP3 (optional) | NOI-style puzzles |
NOI.sg Archive | Continue with past prelim/final questions | Focus on subtasks with scoring mindset |
Weekly Targets:
-
2 NOI subtasks
-
2β3 DP/backtracking problems
-
1 full mock contest (2 hours)
π΄ Month 5 β NOI Focused Training
Focus Area | Practice |
---|---|
Mock NOI Problems (Full Tasks) | 2β3/week (timed, 2β3 hours) |
Subtask scoring strategy | Train solving easier subtasks first |
Weak topic review | Review problem notebook: common mistakes |
Debugging without IDE | Simulate exam environment (g++ only, no online help) |
NOI.sg Finals problems | Solve at least 5β6 full questions/subtasks from past years |
π΄ Month 6 β Simulation & Tuning
Focus Area | Practice |
---|---|
Final full mock contests (2β3 rounds/week) | Self-score, analyze post-contest |
Rapid subtask solving | Train for speed and accuracy on partial problems |
Template review | BFS, DFS, DP, Dijkstra β memorize and type quickly |
Mental prep | Build calm, focus, time pacing |
Realistic environment | Use C++ locally, avoid copy-paste, mimic NOI prelim conditions |
π Template for Weekly Practice (Flexible)
Day | Focus |
---|---|
Mon | Learn a concept (e.g., greedy, bitmask) |
Tue | Solve 2β3 problems (easy-medium) |
Wed | Do 1 AtCoder ABC (old) contest |
Thu | Review & retry missed problems |
Fri | Light day β debug or recap |
Sat | Timed contest or NOI simulation (2β3 hrs) |
Sun | Relax or review notebook/errors |
π Tools to Use
-
Notebook or Notion doc: Log mistakes, tricks, patterns
-
C++ template: Set up basic macros (avoid too many, stay NOI-safe)
-
Timer: Simulate real contest stress
β Final Thoughts
-
This plan stretches him without overwhelming, and aligns with his age and school level.
-
Success at NOI isn’t always about medal in year 1 β many top performers started with 1β2 subtasks and learned fast from experience.
-
With consistency, he can absolutely make Finals and earn a solid score.