Competitions · Computer science · CCC
CCC, the Canadian Computing Competition.
Three hours, five problems, and the last one in the senior division is written at something close to international olympiad standard. Set and graded by Waterloo itself - which is why it counts in a Waterloo application.
First, the acronym
Two different contests are called CCC.
Both appear on this site and both are Canadian, which makes them easy to confuse.
This one is computing
The Canadian Computing Competition, run by the Centre for Education in Mathematics and Computing at the University of Waterloo. A programming contest.
The other is chemistry
The Canadian Chemistry Contest, run by the Chemical Institute of Canada. A written chemistry paper with no connection to this one beyond the initials.
At a glance
What the competition is.
CCC has run since 1996 and has drawn more than three hundred thousand students worldwide. It has been open to students in China since 2007 and is recognised by universities including Tsinghua and the University of Hong Kong.
- Organiser
- The Centre for Education in Mathematics and Computing (CEMC) at the University of Waterloo, which sets, runs and grades it
- Since
- 1996
- Who can enter
- Secondary students. Junior is for anyone with basic programming skills; Senior for intermediate to advanced programmers
- Format
- Individual, online, submitted through the CCC Online Grader
- Duration
- 3 hours
- Structure
- 5 problems, 15 marks each, for a total of 75
- Languages
- C, C++, Python 2, Python 3 and Java
- Language restrictions later
- The CCO stage requires C++. The CIW stage requires C++ or Python
- When
- February, with separate dates for the Americas and the rest of the world and registration closing about a week earlier
- Entry fee
- CAD 10.00, paid to CEMC
- Where it leads
- The Canadian Computing Olympiad, by invitation to roughly the top twenty of the senior division
The two divisions
Five problems, and each one is a step harder.
Both divisions run the same shape - five problems ramping in difficulty - but they start and finish in very different places.
| Problems | Junior division | Senior division |
|---|---|---|
| 1 and 2 | Basic concepts - loops and conditional statements | Basic algorithms - sorting and searching |
| 3 and 4 | Combined loops, conditionals and counting | More advanced algorithms - counting and mathematical reasoning |
| 5 | Recursion and efficient sorting | Extremely difficult, approaching the standard of the International Olympiad in Informatics |
The senior fifth problem is the reason strong competitors enter. It is also why a student should not read "five problems in three hours" as fifteen minutes each - the last one can absorb an hour on its own.
Why it counts
Waterloo sets it, and Waterloo reads it.
CCC has a specific institutional value that most programming contests do not.
An admissions indicator at Waterloo
The result is an important reference for admission to programmes in Waterloo’s Faculty of Mathematics and to software engineering, and a significant criterion for the faculty’s scholarships.
And recognised beyond it
Waterloo’s standing in mathematics and computing, and the rigour of the contest itself, mean the result carries weight across North American admissions.
Recognised in China too
Open to students in China since 2007 and accepted by universities including Tsinghua and the University of Hong Kong as a reference in admissions.
With modest but real recognition
A Certificate of Distinction goes to the top 25% of all entrants. The Student Honour Roll names the strongest official senior competitors publicly.
Awards
What the top of the field receives.
CEMC keeps the award structure deliberately spare, and one of the two honours has recently changed.
Certificate of Distinction, top 25%
Awarded to every competitor whose score places them in the top quarter of the whole field, in either division.
Student Honour Roll, senior only
The names of the strongest official senior competitors are published. The junior honour roll was discontinued after a CEMC policy change - junior is now positioned as an individual challenge for students who choose that level.
And schools are asked to add their own
CEMC encourages schools and boards to recognise strong performers internally rather than relying on the published lists.
CEMC has final discretion
The centre reserves the right to disqualify a competitor or withhold results, as it does across its contests.
The olympiad
CCO - a week at Waterloo, for about twenty people.
The senior division leads somewhere very specific, and the gate is narrow.
Roughly the top twenty are invited
Only the leading twenty or so senior competitors receive an official invitation from Waterloo to the Canadian Computing Olympiad.
Held at Waterloo, over a week
Invited students travel to the University of Waterloo for a week that includes seminars, two days of competition and other activities.
Usually in May
Three months after CCC itself, which makes the February result the thing to concentrate on.
And C++ becomes compulsory
CCO permits only Java, C or C++. A student who reached CCC through Python needs to change languages before the olympiad.
Preparation
How Hanlin prepares students for CCC.
The organisers publish the practice platform and the past problems, which makes the preparation route unusually clear.
Practising on the real grader
CCC uses the CCC Online Grader for the contest itself, and the same platform holds every past problem with instant feedback. Practising anywhere else gives up that advantage.
Budgeting three hours across five problems
The first two problems should be quick and the fifth may not be finishable. Deciding where to spend the middle hour is a skill worth rehearsing.
Choosing the division honestly
Junior tops out at recursion and efficient sorting. A student comfortable with those should be in Senior, where problems three and four are the real work.
And thinking ahead about language
Python is permitted in CCC but not in CCO. A student aiming at the olympiad is better served learning C++ early than switching under pressure.
Why Hanlin
Preparation for CCC at Hanlin is taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
Programme formats
Five ways this is taught.
Group size is the whole difference between these. It decides how much of the tutor's attention a student gets and how far the course can bend to them, so it is worth choosing rather than accepting.
| Format | Group size | What it suits |
|---|---|---|
| One-to-one | One student | Content, pace and emphasis set by what this student actually needs rather than by a syllabus. The only format that can be rebuilt mid-course. |
| Small group | Three to eight | Opens at three. Frequent discussion, and the tutor can slow down or move on according to what the group has absorbed. Most students chasing a higher award are taught in this one. |
| Class | Eight to twelve | Taught by the subject lead or a medal coach. Less back-and-forth, so it suits a student who will say when something is unclear. |
| Large class | Ten to twenty | For students in the middle of the placement range, and a way to try a competition before committing. Students often move to a small group or to one-to-one afterwards. |
| Past-paper class | No cap | Past papers worked through in sequence in the weeks before the sitting. Free to students already enrolled. |
Course length for CCC is set after a placement paper. The gap between where a student is and what the paper asks for is what the course has to close, and that gap is not the same for two students in the same year group.
How it runs
Six steps, four people on your side.
The same process for every student, so that nothing depends on one tutor remembering to do it.
Step 1Pre-course assessment
A placement paper before anything is booked, so the course tier is chosen on evidence rather than on a year group.
Step 2Tutor matching
A subject tutor is matched to the result, and their full background is provided before you agree to it.
Step 3Plan and group
A study group opens with four people on one student: the tutor, a planner, a supervisor and an academic manager.
Step 4Scheduled teaching
The teaching office sets the timetable around the competition date and school term, and teaching begins.
Step 5After-class reports
What was covered, and how the student handled it, reported after every lesson.
Step 6Homework follow-up
The teaching assistant and the form teacher both check that homework is done, which is where most preparation quietly fails.
Free resource pack
Past papers and preparation pack
The same material our own CCC students work from. Scan the code, say what you need, and an advisor sends it.

Tell an advisor which competition and year group, and the material comes back the same day. Free, and you do not have to enrol in anything. If we do not already hold what you need, we will go and find it.
- PDFPast papers, every year the organiser has released
- PDFWorked solutions, where the organiser publishes them
- PDFThe syllabus on one page - every topic, and how heavily it is examined
- PDFEntry checklist and the dates for the current cycle
Teaching team
Who would teach it.
Three of the twenty-two tutors on the published Hanlin roster - the ones whose subject this is.

Luo
Bachelor's and master's in computer science from the University of California and ten years in the United States. Works close to the hardware, and teaches for independent problem solving rather than pattern recall.

Tan
Master's in data science from the University of Sydney after a statistics degree at Simon Fraser University, graduating in the top 5% with repeated chancellor's honours; A-Levels at a Cambridge international school, and formerly a data analyst at Tencent. An AMC-accredited coach, a College Board-accredited AP teacher, and holder of a Math League excellent-teacher award.

He
A Cambridge master's after a computer science degree with a mathematics minor at the University of Nebraska-Lincoln, and a US high school GPA of 4.13. Six years overseas and teaches entirely in English, across AMC, Math League, AP Computer Science and AP Calculus.
Where it is taught
Hanlin learning centres.
Teaching runs from Hanlin's own centres in Shanghai, Shenzhen, Chengdu and Hangzhou, and online for students elsewhere.







Talk to an advisor
Everything Hanlin does for CCC, in one conversation.
Entry, planning, coaching and the past papers. An advisor will tell you which of these a student actually needs, including when the answer is none of them.
Competition entry and planning
Which competitions suit this student, in what order, and by when - then we handle the registration, including the ones that can only be entered through a school or a centre.
Competition coaching
Taught by full-time subject tutors, on a course tier chosen by placement paper rather than by year group.
International curriculum tutoring
IB, AP, A-Level, IGCSE and the US high school curriculum, taught alongside school and timed around the exam calendar.
Competition past papers, free
A large library of past papers, mark schemes and syllabus breakdowns across every competition on this site. No charge and no enrolment.
Scan to add an advisor

Say which competition or course you are asking about. Replies in Chinese or English.
Or call +86 21 6352 6630FAQ
CCC, briefly answered.
What students and families ask before entering.
Is this the chemistry contest?
No. This is the Canadian Computing Competition, run by Waterloo’s CEMC. The Canadian Chemistry Contest is a different competition with the same initials and has its own page on this site.
Who can enter?
Secondary students. The junior division suits anyone with basic programming skills; the senior division suits intermediate to advanced programmers.
What is the paper?
Five problems in three hours, fifteen marks each for a total of seventy-five, sat online and submitted through the CCC Online Grader.
Which languages may I use?
C, C++, Python 2, Python 3 or Java. Note that the Canadian Computing Olympiad that follows permits only Java, C or C++, and the CIW stage only C++ or Python.
What does it cost?
CAD 10.00, paid to CEMC.
When is it held?
February, on separate dates for the Americas and the rest of the world, with registration closing about a week before.
How hard is the senior division?
The first two problems test sorting and searching, the middle two counting and mathematical reasoning, and the fifth is extremely difficult - close to the standard of the international olympiad.
What awards are there?
A Certificate of Distinction for the top 25% of all entrants, and a Student Honour Roll naming the strongest senior competitors. The junior honour roll was discontinued after a CEMC policy change.
How do I reach the Canadian Computing Olympiad?
By finishing in roughly the top twenty of the senior division and receiving an official invitation from Waterloo. The olympiad runs for a week at Waterloo, usually in May.
Does it help with a Waterloo application?
It is an important reference for admission to Waterloo’s mathematics faculty programmes and to software engineering, and a significant criterion for the faculty’s scholarships.
Related
Other computing contests.
What students commonly enter alongside CCC.
CCC enquiries
Set by Waterloo, and read by Waterloo.
Very few programming contests are written and graded by the university that also reads the result in admissions. Tell us what the student programs in and which division they are considering, and an advisor will map the February entry.