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.






