Skip to the content of the web site.

CCC Format and Languages

The Canadian Computing Competition (CCC) began in 1996 as a forum for high school students in Canada to learn about and enjoy aspects of programming. Top senior contestants from the CCC are invited to attend the Canadian Computing Olympiad (CCO).

The Competitions

  • The CCC is written in schools using the CCC Online Grader. This is a 3-hour contest composed of 5 questions (either at the junior or senior level). Teachers need to register in order for contests to be written in schools. There is no team competition.
  • CCO: Approximately 20 of the top senior contestants from the CCC are invited to the CCO, held at the University of Waterloo, in the Spring. This week-long event involves workshops, two days of contests, as well as other extra-curricular activities.


  1. The results of both competitions are used to determine Canadian Team members who participate in the International Olympiad of Informatics (IOI), held in a different country every year.
  2. Selection of CCO contestants and of the Canadian IOI team members is at the discretion of the CEMC Executive.


CCC participants may use C, C++, Python 2, Python 3, or Java. Visit sample programs and details about these languages.

CCO participants must use C++.

While various languages are supported by the CCC Online Grader, it may not be possible in all cases to achieve a perfect score with a particular language choice (for example, Python or Java).


All students and teachers should familiarize themselves with the CCC Rules which encompass implementation details, submission limitations, provided feedback, scoring details and use of the Internet, references and other tools during the competition.

CCC Format

The CCC consists of two distinct contests: the junior competition and the senior competition. Each contest consists of 5 questions. Each question is worth 15 points. The range of difficulty generally increases from the first question to the last question on each contest. Approximate outlines are given below.

Junior Competition
1 and 2
(e.g. basic loops and conditions)
3 and 4
More challenging
(e.g. some combination of loops, conditions and counting)
Some advanced material
(e.g. recursion, two-dimensional arrays, efficient/clever algorithms)

Senior Competition
1 and 2
Basic algorithms
(e.g. sorting, searching)
3 and 4
More advanced algorithms
(e.g. careful counting, some mathematical reasoning)
IOI level question

Some problems are divided into subtasks with partial marks awarded to each subtask. This can make some problems more accessible. For example, contestants can often earn partial marks for solving an easier restricted version of a problem. Subtasks can also make some problems more challenging. For example, for later questions, a number of marks might be assigned for input that only sufficiently efficient solutions can solve within the time limits. All of this means that the above outlines for the two contests should only be used as a rough guide.

For questions about the CCC Online Grader please contact us.