An independent preparation guide to the Euclid Contest · Waterloo, Canada → written worldwide · English edition
Vol. 2026–27
The record on file
Euclid Mathematics Contest∎
Axioms first. Then the argument. Then the mark.
The sitting
April 6–7, 2027

Canadian Computing Competition 2027: The Other CEMC Contest, and How It Fits Around Euclid

The Canadian Computing Competition is run by the same CEMC that runs Euclid. It sits on Wednesday 17 February 2027 in North and South America and Thursday 18 February 2027 everywhere else, and asks five programming questions in three hours for a score out of 75. It is the CEMC contest that Euclid candidates in China most often never hear about — and February leaves it seven clear weeks before April's Euclid.

One organiser, two halves of a calendar

Most students in China who meet the CEMC meet exactly one of its contests: Euclid. That is a narrow view of the organisation. The Centre for Education in Mathematics and Computing at the University of Waterloo runs a full annual calendar, and the name contains the clue — the second half of it is computing.

On the computing side, cemc.uwaterloo.ca currently lists two contests: the Beaver Computing Challenge for grades 5 to 10, described as an “online, multiple-choice contest”, and the Canadian Computing Competition for grades 9 to 12, an online programming competition. The CCC is the serious one, and it is the one worth a Euclid candidate's attention.

The practical reason this matters is that the machinery is identical. Both contests are ordered through the same institutional route — a school or an authorised test centre places an order, and there is no individual sign-up window a student can use alone. If your school already runs Euclid, adding the CCC is an administrative question rather than a structural one. The mechanics of that route are the same ones described in our 2027 registration guide.

What the CCC actually is, next to Euclid

The two contests are not variations on a theme. They differ in almost every dimension that affects how you prepare, and the table below sets the published facts side by side. Everything in it is drawn from the current contest pages on cemc.uwaterloo.ca; both contests are re-dated each cycle, so confirm the year you are actually entering.

Canadian Computing Competition Euclid Contest
Grades listed 9 to 12 Final year of secondary school or CÉGEP; “motivated students in lower grades are welcome to write the contest”
2027 sitting Wed 17 Feb (N & S America); Thu 18 Feb (elsewhere, China included) Tue 6 Apr (N & S America); Wed 7 Apr (elsewhere, China included)
Organiser ordering deadline Thu 11 Feb 2027 Thu 11 Mar 2027
Fee $10.00 per participant, plus $5.00 processing per order $18.00 per participant, plus $5.00 processing per order
Questions 5 10, “a mix of final answer only and full-solution”
Time 3 hours 2.5 hours
Score out of 75 100
How it is marked Programs submitted to the CCC Online Grader Written work; on full-solution items the marks follow the argument
Levels Junior and Senior, chosen by programming skill Single paper

Two details in that table deserve unpacking, because they are the ones students misread.

The CCC's two levels are chosen by skill, not by grade. The contest page describes Junior as being for “any participant with beginner to intermediate programming skills” and Senior as being for “any participant with intermediate to advanced programming skills”. Nothing there is keyed to your year group. A grade 12 student who started coding last spring belongs in Junior, and being in Junior is not a demotion — it is the level where the questions will actually teach you something. The published shape of each level is a ramp: Junior moves from straightforward basics through harder combinations up to material like recursion, while Senior climbs from basic algorithms through more advanced mathematical reasoning to an IOI-level question at the top.

Your language choice has consequences. The contest page states that participants may use C, C++, Python 2, Python 3, or Java, and then adds a warning worth reading twice: it may not always be possible to achieve a perfect score with a particular language choice, naming Python and Java as examples. In plain terms, the hardest Senior questions can have limits that a slower language will not meet however good your algorithm is. If you are aiming at the top of Senior, that is an argument for C++. If you are aiming at Junior, it is close to irrelevant — write in whatever you are fluent in.

Who can actually enter from a school in China

This is where a China-based student needs to read the official wording rather than assume, because the CCC has two distinct things that both get loosely called “entering”.

The first is writing the contest. The CCC is written in school using the CCC Online Grader, with a contest supervisor managing accounts through the institution. A school or authorised centre outside Canada can order and run it.

The second is the route beyond the CCC, and it is narrower. The contest page describes roughly 20 of the top official CCC Senior participants from schools in Canada as being invited to the Canadian Computing Olympiad, held at the University of Waterloo in the spring, with CCC and CCO results then used in selecting the Canadian team for the International Olympiad in Informatics. Read that phrasing carefully: the invitation pool is drawn from schools in Canada. If you are writing at a school in China, the sensible plan is to treat the CCC as a contest and a result in its own right, not as a step toward a national team.

There is also an eligibility cut-off attached to official participation. The page currently states that official participants must be born on or after 1 July 2006, with an additional residency condition for those writing at a Canadian school. That birth date moves with the cycle, so confirm the current value on cemc.uwaterloo.ca for the year you enter rather than carrying this one forward.

None of this is unusual — most national olympiad pipelines terminate at a national border somewhere. It is simply much better to know it in September than to discover it in March.

Who marks it, and what “done” means

The deepest difference between these two contests is not the subject. It is who decides whether you have answered the question.

On Euclid's full-solution items, a human reads what you wrote and the marks follow your argument as it develops. A solution that reaches a wrong final number can still earn a good share of the available marks if the reasoning was sound and visible, and a correct final number with no supporting work can earn very little. That is the whole logic behind how step marks work, and it is why Euclid preparation is partly a writing discipline.

On the CCC, a grader runs your program. Partial credit exists, but it comes from test cases your program handles correctly, not from reasoning a marker can see. An elegant, nearly-correct idea that does not compile scores nothing. A crude brute-force program that handles the small cases scores something. There is no version of the CCC where you explain your intent to the machine.

Two panels comparing what counts as a completed answer. Left panel, Euclid: a human reads the argument, so a wrong final answer with sound visible reasoning can still earn a good share of marks, while a correct answer with no working earns little. Right panel, CCC: an online grader runs the program, so credit comes from test cases passed, code that does not compile earns nothing, and a brute force program handling small cases earns something.
Formats and marking as published on cemc.uwaterloo.ca. The behavioural consequences described are our own coaching reading, not official guidance.

That contrast is worth holding onto, because it extends a distinction this site returns to often. Multiple-choice contests in the AMC family reward you for solving. Olympiad papers in the British tradition reward you for proving. Modelling competitions reward you for building something defensible. Euclid sits nearest the proving end: it rewards you for arguing in writing, on the page, where a marker can follow you. The CCC adds a fourth verb — implementing — and it is the only one of the set where a machine, not a person, decides whether you succeeded.

The practical consequence cuts both ways. A student who writes clean Euclid solutions can score badly on the CCC because they cannot get code working under time pressure. A confident programmer can lose Euclid marks by treating a full-solution question like a final-answer one. Neither outcome is a verdict on ability; they are different trained habits, and each is trainable.

Fitting February and April into one season

If you want both contests in one year, the calendar is unusually cooperative — but only if you keep the two ordering deadlines separate in your head.

A 2027 timeline showing four dates. The CCC ordering deadline is Thursday 11 February 2027. The CCC is sat 17 to 18 February 2027, three hours, five questions, out of 75. The Euclid organiser ordering deadline is Thursday 11 March 2027. Euclid is sat 6 to 7 April 2027, two and a half hours, ten questions, out of 100. The gap between the two sittings is about seven weeks, and the two ordering deadlines are separate dates a month apart.
Dates as published on cemc.uwaterloo.ca for the 2027 cycle. Both contests are re-dated annually; confirm before planning around them.

The CCC orders close on 11 February 2027 and Euclid's organiser orders close on 11 March 2027. Those are two different contests' deadlines a month apart, and every year somebody tells their school “the CEMC deadline is in March” and quietly loses February. Our 2027 key dates page keeps the Euclid chain separate for exactly this reason.

Three planning notes, from watching students try to do both:

  • February is early. The CCC lands before the stretch most students use for their final Euclid push. If your Euclid work is behind in January, adding a programming contest a few weeks later is a poor trade — sit the CCC in a later cycle instead.
  • The overlap in preparation is small. Number-theory habits and systematic case-checking transfer a little. Almost nothing else does. Treat them as two projects, not one with two outputs.
  • Skill level, not year group, picks your CCC division. Choosing Senior because you are in grade 12 is the commonest way to turn a useful contest into a discouraging afternoon.

One honest caveat about scope. If competitive programming is your actual interest rather than a companion to mathematics, the CCC alone is a thin diet — a single three-hour contest a year. The American ladder, with several contests per season and a division structure that promotes you as you improve, is a fuller training environment, and we cover it separately on our USACO guide. The CCC's specific appeal to a Euclid candidate is different: same organiser, same entry route, one more genuine result on the record for $10 and an afternoon in February.

Frequently asked questions

Do I need to sit Euclid to enter the CCC?
No. They are separate contests with separate orders and fees. Many students sit one and not the other.

Which CCC division should a grade 12 student choose?
The one matching your programming skill, not your grade. CEMC defines Junior as beginner to intermediate, Senior as intermediate to advanced.

Can I register for the CCC myself?
No. It is written in school through a contest supervisor using the CCC Online Grader, so a school or authorised centre must place the order.

Can a student in China reach the Canadian Computing Olympiad?
CEMC describes CCO invitations as going to about 20 top Senior participants from schools in Canada. Confirm the wording on cemc.uwaterloo.ca.

Operated by Hanlin Education for China-based international-school students. Contest dates, fees, eligibility rules and ordering deadlines are re-set each cycle — confirm all current details on cemc.uwaterloo.ca before acting on anything here. Errors reported to us are corrected within 7 working days.