CCCGuide
Introduction

What is the CCC?

The Canadian Computing Competition (CCC) is an annual programming competition organized by the Centre for Education in Mathematics and Computing (CEMC) at the University of Waterloo. It is designed for secondary school students with a range of programming experience, from beginners to advanced competitive programmers.

Entry requires no competition background. A student who can read input, write loops and conditions, and print an answer can earn marks on the early problems, while the final problems are hard enough that very few participants solve them in full.

Format

Each participant writes one of two levels, Junior or Senior. The CEMC recommends Junior for beginner to intermediate programmers and Senior for intermediate to advanced ones, and the choice depends on skill rather than grade — a Grade 9 student may write Senior, and a Grade 12 student may write Junior.

Both levels share the same structure: five problems, 15 marks each, 75 marks in total, written individually over three hours. Difficulty generally increases with the question number:

QuestionJuniorSenior
1–2Basic loops and conditionsBasic algorithms, such as sorting and searching
3–4Combinations of loops, conditions and countingCareful counting; more advanced mathematical reasoning
5Recursion, 2D arrays, efficient algorithmsOlympiad-level (IOI-level)

This guide refers to problems by level and number: J1–J5 for the five Junior questions and S1–S5 for the five Senior questions. Where the year matters, it comes first, so 2024 J4 is the fourth Junior question from 2024. Since difficulty tracks question number, the label also indicates what to expect.

Many problems are divided into subtasks, each worth part of the 15 marks. A subtask is typically a restricted version of the full problem, such as one with small inputs that a slow solution can still handle. Later subtasks may require an efficient algorithm to finish within the time limit. A correct but slow solution therefore still earns marks, and a partial attempt is worth submitting even when the full solution is out of reach.

Judging and languages

Submissions are judged automatically by the CCC Online Grader, which runs each program against hidden test data and awards marks for the tests passed within the time limit. Because the judge compares output exactly, correct input handling and output formatting matter as much as the algorithm itself.

Solutions can be written in C, C++, Python 2, Python 3, or Java. The CEMC notes that Python and Java cannot always reach a perfect score because of time limits, although at least one permitted language always can for a correct algorithm. The next page covers how to weigh this trade-off.

Scores are also lower than most newcomers expect. In 2026, the Junior contest had 3,421 participants, a mean of 42.65 out of 75, and a Certificate of Distinction cutoff of 58. The Senior contest had 2,439 participants, a mean of only 15.56, and a cutoff of 26. On Senior, one or two fully solved problems plus partial marks is already well above average.

Beyond the contest

Every participant in the top 25% receives a Certificate of Distinction, and the top-scoring official Senior participants are listed on an honour roll in the published results.

The CCC is also the entry point to Canada's olympiad pathway. Each spring, about 20 of the top official Senior participants are invited to the Canadian Computing Olympiad (CCO) — a week at the University of Waterloo with workshops and a contest. The CCO is the selection event for Canada's team at the International Olympiad in Informatics (IOI), and participants must use C++. The Canadian Informatics Workshop (CIW) is a parallel week for top female-identifying and non-binary official Senior participants; it is the selection event for Canada's team at the European Girls' Olympiad in Informatics (EGOI). In both cases, invitations and team selection are at the CEMC's discretion.

Any full-time student may write the CCC and receive a certificate, but only official participants are eligible for the honour roll, the CCO and the CIW. To be official, a participant must have been born on or after July 1, 2007 and, if writing at a school in Canada, live in Canada. The cutoff date changes over time, so check the CEMC page for the current rule.

The contest is written at school under teacher supervision, so students cannot register on their own: a teacher orders the contest from the CEMC and approves each student's Online Grader account. It takes place once a year in February, and the 2027 date for North and South America is February 17. Dates, deadlines and fees change every year, so confirm them on the official CCC page.

Before contest day, create a free Online Grader account and work through the Practice Contest and some past problems. Once the interface and input/output conventions are familiar, all three hours can go to the problems themselves. The next step is to pick a language: continue to Choosing a Language.

On this page

Contributors