Canadian Computing Competition Preparation: CCC Junior
- For
- Class 9 - Class 12
- Level
- Intermediate
- Duration
- 32 weeks
- Each week
- 4 hours
- Batch
- Group class, maximum 8 students
- Mode
- Online
- Board
- CEMC, University of Waterloo
A contest that lets a student pick their own level
The Canadian Computing Competition is run by the Centre for Education in Mathematics and Computing at the University of Waterloo, and it does something unusually sensible: participants choose their division regardless of grade.
The Junior division is for beginner to intermediate programmers; Senior is for intermediate to advanced. A capable Class 9 student who has been coding for years may sit Senior; a Class 11 student who started last term belongs in Junior. Nobody is forced into a paper by their age.
For a school running a mixed-ability cohort, that flexibility is the single most useful feature of the contest.
The format
Three hours, five questions, 75 points in total at 15 points per question. Written online, individually, at school.
Thirty-six minutes per problem is enough to think, which makes the CCC a better first algorithmic contest than the faster formats. A student who abandons a problem after five minutes has abandoned it far too early.
Participants may write in C, C++, Python 2, Python 3 or Java. A student who already knows Python does not need to learn C++ to compete, though the later Canadian Computing Olympiad requires C++, so students intending to progress should move that way eventually.
Partial scoring changes the strategy
This is the most important tactical fact and it is widely misunderstood by students arriving from mathematics contests.
CCC problems award marks for solving subsets of the test cases. A solution that is correct but too slow for the largest inputs still scores. A solution that handles only the simple cases still scores.
So the right opening move on a hard problem is frequently to write the obvious slow solution first, bank those marks, and only then think about making it fast. Students who hold out for the elegant full solution routinely score less than students who banked partial marks on three problems.
What the Junior division actually requires
Simulation and direct implementation carry the first problems. Doing exactly what the problem describes, carefully, is usually enough, and these are the reliable marks.
Arrays, strings and basic data handling underpin everything, and fluency here is what separates a student who finishes three problems from one who finishes five.
Sorting, searching and greedy reasoning appear in the middle problems, where ordering the data correctly often makes the question trivial.
Recursion and simple graph work appear at the harder end, where generating possibilities systematically and representing connections are the required ideas.
Output formatting loses more marks than algorithms
Worth saying plainly because it is so avoidable. A solution that computes the right answer and prints it in the wrong format scores zero on that test case.
Reading the output specification exactly, and testing against the sample cases before submitting, is a habit that costs two minutes and saves whole problems. We drill it from the first session.
For schools: how entry works
Schools register through the Contest Supervisor Portal. The fee is 10 dollars per participant plus a 5 dollar processing fee per order, and CEMC notes it is tax-exempt in Canada and internationally.
For a class of fifteen that is a modest total, and because the contest is written online at school within a single day, administration is straightforward. The 2027 dates are 17 February for the Americas and 18 February for the rest of the world, with ordering closing on 11 February.
Where it leads
Strong Senior performers progress towards the Canadian Computing Olympiad, which requires C++. The CCC also pairs naturally with the Beaver Computing Challenge lower down the same Waterloo series, so a school can run one progression from Grade 7 through to Grade 12.
For students on other national routes, the problem style transfers directly to USACO and INOI.
How the classes run
Live online group classes, maximum eight students, with students writing and submitting working code during the session. Past CCC Junior papers are worked under full three-hour conditions in the closing weeks.
Divisions, format, fees and dates are set by CEMC each year. Confirm the current details at cemc.uwaterloo.ca before planning around them.
What students will be able to do
- Choose the right division, since Junior is for beginner to intermediate programmers regardless of grade
- Work 5 problems in 3 hours for 75 points, with 15 points available per problem
- Write solutions in C, C++, Python or Java, whichever the student already knows
- Handle partial scoring, since problems award marks for solving subsets of the test cases
- Build the algorithmic toolkit the Junior division rewards: simulation, greedy, sorting and simple recursion
- Progress towards the Senior division and the Canadian Computing Olympiad
Course structure
- Unit 1: Contest programming basics
Reading input and producing exactly the required output. More CCC marks are lost to output formatting than to algorithmic failure. - Unit 2: Simulation and direct implementation
Doing exactly what the problem describes, carefully. The first two Junior problems are usually solvable this way and are the reliable marks. - Unit 3: Arrays, strings and basic data handling
Working with lists and text fluently, which underpins almost every problem in the division. - Unit 4: Sorting, searching and greedy reasoning
Ordering data to make a problem easy, and recognising when taking the locally best choice is provably correct. - Unit 5: Recursion and systematic generation
Generating possibilities, exploring a search space and pruning it when the full space is too large. - Unit 6: Introduction to graphs
Representing connections, traversing them, and solving reachability and shortest-path problems at Junior level. - Unit 7: Partial scoring strategy
CCC awards marks for solving subsets of test cases, so a slow but correct solution scores. Writing the brute force first is often the right move. - Unit 8: Past CCC Junior papers under timing
Full three-hour papers in real conditions, reviewed for how time was spent across five problems.
Who this is for
Able to write a basic program. CCC Junior is explicitly for beginner to intermediate programmers.
Students join this programme from India, United Arab Emirates, Singapore, United States and United Kingdom.
Common questions
What is the Canadian Computing Competition?
A programming contest run by the Centre for Education in Mathematics and Computing at the University of Waterloo, described as a fun challenge for participants with an interest in programming, designed to help secondary school students build confidence and grow their ability to understand, design and implement algorithms.
Junior or Senior division?
Junior is for those with beginner to intermediate programming skills and Senior for intermediate to advanced. Importantly, participants can choose the level best suited to them regardless of grade, so a capable Class 9 student may sit Senior and a Class 11 beginner may sit Junior.
What is the format?
Three hours, five questions, 75 points in total with 15 points per question. It is written online, individually, at school.
Which programming languages can be used?
Participants may use C, C++, Python 2, Python 3 or Java. Note that the later Canadian Computing Olympiad requires C++, so a student intending to progress should move towards C++ eventually.
How do schools register and what does it cost?
Schools register through the Contest Supervisor Portal. The fee is 10 dollars per participant plus a 5 dollar processing fee per order, tax-exempt in Canada and internationally. For a class of fifteen that is a modest total.
When is it held?
For 2027, North and South America sit on Wednesday 17 February and the rest of the world on Thursday 18 February, with an ordering deadline of 11 February. Dates are set each year by CEMC.
Book a trial
Three sessions with the mentor who would teach the full course. Nothing is charged until your slot is confirmed.
- A diagnostic, a taught class and written feedback
- Taught by the mentor who leads the course
- You pick the slot from our live calendar
- Pay only after the slot is confirmed
- For
- Class 9 - Class 12
- Level
- Intermediate
- Duration
- 32 weeks
- Each week
- 4 hours
- Batch
- Group class, maximum 8 students
- Mode
- Online
- Board
- CEMC, University of Waterloo
Ask a question, or book a trial
Tell us about the student and we will reply with an honest view of whether this programme fits. If you would like to see the teaching first, add a trial class.
- No obligation - send the enquiry without booking anything
- Three sessions if you do book: a diagnostic, a taught class and feedback
- Taught by the mentor who would lead the full course
- You choose the slots from our calendar after payment
| Class 1 to 5 | 3 sessions | INR 599 |
| Class 6 to 8 | 3 sessions | INR 799 |
| Class 9 and 10 | 3 sessions | INR 899 |
| Class 11 and 12 | 3 sessions | INR 999 |
| Graduation and above | 4 sessions | INR 1,099 |
Sending an enquiry is free. The fee applies only if you tick the trial box below.