CCC Junior Contest Prep
For kids sitting the Canadian Computing Competition (CCC) Junior for the first time, or stuck on J4 and J5. We make the first four problems reliable, then teach the last one the way it is marked: read the data bounds first, find the pattern, and turn a solution that only passes the samples into one that finishes in time. Planned back from the February 17, 2027 contest day; groups of 5–8, at our Markham campus and online.
What the CCC is, from CEMC
Run by the University of Waterloo’s Centre for Education in Mathematics and Computing (CEMC).
Contest day
Wednesday, February 17, 2027 (North and South America). Schools order the contest from CEMC by February 11.
Where it is written
In school, online, individually. The school’s contest supervisor sets up each student on the CCC Online Grader and runs the sitting.
Problems and marks
Five problems, three hours, 15 marks each, 75 in all. Many problems are split into subtasks: the small inputs earn part of the marks, and the last ones only go to a solution that finishes within the time limit.
Languages
C, C++, Python 2, Python 3 or Java. CEMC notes that a perfect score is not always possible in Python or Java on every problem.
What each level asks for (CEMC’s outline)
| Level | CEMC advises | Problems 1–2 | Problems 3–4 | Problem 5 |
|---|---|---|---|---|
| Junior | Beginner to intermediate programmers | Basic loops and conditions | Loops, conditions and counting combined | Progressively advanced: recursion, 2D arrays, efficient or insightful algorithms |
| Senior | Intermediate to advanced programmers | Basic algorithms (sorting, searching) | More advanced algorithms: careful counting, deeper mathematical reasoning | IOI-level |
Any grade may write either level. CEMC encourages anyone who made progress on J4 or J5 to try the Senior contest the next year. (CEMC commentary)
Is this class for your child?
- Kids who already know one language (Python, C++ or Java) well enough to write loops, conditions and lists
- First-time contestants who want to know how each problem, and each subtask, is marked
- Kids who have written Junior, can solve J1–J3, and lose marks on J4 and J5
- Kids heading for Senior who want to master the Junior final problem first
Never coded before? Start with a Python foundations class first: all coding courses
What the class covers
J1–J3, every time
Input and output formats, loops, conditions, strings, lists and counting until they are automatic. One past J1–J3 under time in every class, until none of them loses marks.The algorithms J4 and J5 use
Simulation, 2D grids, recursion, DFS and BFS, greedy choices and basic dynamic programming. For every problem, decide which one it needs before writing a line.Bounds first, then the pattern
Multiply the bounds a problem gives to estimate how much work a solution does, then use patterns such as prefix sums, difference arrays, wrap-around with mod and odd/even counts to turn brute force into something that finishes. Practised on the 2021, 2022, 2025 and 2026 J5 problems.Full mock contests
The real format: three hours, five problems, a past paper on the CCC Online Grader. Each review finds the problem and the subtask where marks were lost.
One real problem: 2026 J5, Beams of Light
A row of parking spots, lights hung above them, each lighting its own spot and a few on either side; then many questions: is this spot lit?
In the last subtask the spots, the lights and the questions can each reach 500,000, and it is worth 9 of the 15 marks. Checking every light for every question is up to 250 billion checks: it never finishes.
Use a difference array instead: each light adds one at the start of its range and subtracts one just past the end; one running sum from left to right then says how many lights reach every spot, however many questions follow.
Problem and marks table: CEMC, 2026 CCC Junior problems and commentary · commentary
The 2021, 2022 and 2025 final problems work the same way: Four J5 problems, explained
Class format and fees
Group size
Groups of 5–8; contest sprint groups are scheduled separately.
Where
At the Markham campus, with remote students joining the same class over Zoom and a shared IDE; the recording and homework arrive the same day.
Fees
Contest training is billed as an hour package. Start with a $9.9 trial class; the advisor then sends a quote fitted to your child.
Questions parents ask
Junior or Senior: which should my child write?
By level, not by grade. CEMC suggests Junior for beginner to intermediate programmers and Senior for intermediate to advanced ones, and encourages anyone who made progress on J4 or J5 to try Senior the next year.
Where is the CCC written, and how do we register?
At school. The school orders the contest from CEMC (by February 11 for 2027) and its contest supervisor sets students up on the CCC Online Grader. Ask your child’s computer science or math teacher whether the school runs it.
Can my child get full marks in Python?
On most problems, but not on every one. CEMC says a perfect score may not always be possible in Python or Java, while every problem has at least one language in which the right algorithm earns full marks. Settle the language when preparation starts.
What does a strong result earn?
Per CEMC: everyone in the top 25% of competitors receives a Certificate of Distinction; 3,421 students wrote the 2026 Junior contest.
What does it cost, and can we try a class first?
Yes. Start with a $9.9 trial class. Contest training is billed as an hour package, quoted by the advisor after the trial.
My child has never coded. Can they join?
Not yet. Learn one language first (Python, for example) until loops and conditions come easily; if you are unsure where your child stands, start with the free coding placement test.
Find out where your child stands first
Tell us your child’s grade, the language they use and any past CCC score. A $9.9 trial class shows which problems they already hold and where the marks go.