UC / BRZ / 01
Python for teens
Enough for Bronze, start to finish.
Open the syllabusCanada · USA Computing Olympiad · Online contests
The USA Computing Olympiad runs free online programming contests that anyone can enter from home, and many Canadian students who write the Canadian Computing Competition use it as extra practice through the winter. It is a different kind of contest from the CCC: several online rounds instead of one sitting at school, divisions you climb by promotion instead of a level you choose, and a national team path that is reserved for students in the USA. This page is built from usaco.org's own pages, fetched on 22 October 2026, and sets out what is open to a Canadian, how the two contests compare, and how to use both in one school year without either getting in the way.
Teaching live online since 2020 · 10,000+ students · facts from usaco.org and CEMC, read on 22 October 2026
In short
USACO, the USA Computing Olympiad, holds free online algorithm contests open to all, so Canadian students can compete from home in Bronze, Silver, Gold and Platinum divisions; only students in the USA can be selected as finalists for its camp. For Canada's IOI team the route is the CCC. Modern Age Coders coaches both live online, in a batch or one to one, in its CCC Junior and Senior Preparation course.
Prepare with a teacher
For a student in Canada the CCC comes first, because it is the national route. USACO then adds rounds and a division ladder to measure progress against.

UC / 01
The Canadian contest first: Junior or Senior, aimed at 17 February 2027, with USACO rounds as practice.
Open the syllabus →
UC / 02
Its USACO track takes students from Bronze techniques towards Gold, in step with the divisions.
Open the syllabus →
UC / 03
The language USACO calls the clear answer at higher levels, and the only one the CCO accepts.
Open the syllabus →What USACO is
Every row below is quoted or closely summarised from usaco.org's overview, details and instructions pages, fetched with no restrictions on 22 October 2026.
| Point | What usaco.org says |
|---|---|
| Mission | USACO "supports computing education in the USA and worldwide by identifying, motivating, and training high-school computing students at all levels". |
| Contests | "On-line programming contests (four per year) for students at all levels." The details page says they usually run "from December through early spring, one per month". |
| Length | Contests "usually run for four continuous hours in length for a normal contest, and five for the US Open". |
| When you write | Any block of time inside a Friday-to-Monday weekend: "your timer starts when you log into the contest and download the problems". |
| Cost and sign-up | "There is never any fee for participation." "There is no pre-registration required to compete; all you need is an account on this site." |
| Problems | "Each contest has typically 3 or 4 problems", solved in "C, C++, Java, or Python". |
| Time limits | "2 seconds per input case for C and C++, and 4 seconds per input case for Java and Python", with about 256MB of memory, unless stated otherwise. |
| Language of the paper | "The official language of the contest is English", with translations offered for convenience. |
| Free training | "Hundreds of hours of free on-line training resources and historical contest problems (complete with solutions)". |
Sources: usaco.org, its Details and FAQ and Contest Instructions and Rules, read 22 October 2026. Modern Age Coders is not connected with USACO.
On 22 October 2026, usaco.org still showed its 2025-2026 schedule: contests on 9 to 12 January 2026, 30 January to 2 February 2026 and 20 to 23 February 2026, then a US Open on 28 March 2026, marked proctored. It had not posted dates for the 2026 to 2027 season, so we print none.
The home page also says the 2025-2026 season was organised differently from earlier years, with "three on-line contests in early 2026 followed by a proctored invitational "US Open" championship contest" for top USA competitors. Its details page still describes the older pattern of four monthly contests. Check usaco.org before planning.
USACO says "All participants start in the bronze division", and that strong scores bring promotion. Bronze is for students who "have recently learned to program"; Silver introduces "fundamental problem-solving techniques (e.g., recursive search, greedy algorithms)"; Gold brings "shortest paths, dynamic programming"; Platinum is for students "well grounded in algorithmic problem-solving techniques".
A perfect score earns an in-contest promotion, with a fresh full clock for the next division in the same weekend. Others wait for the results and the contest's cutoff.
Open to Canadians
The contests themselves are open to everyone. The national team path is not. Both points are stated plainly on usaco.org.
| Question | What usaco.org says | What it means in Canada (ours) |
|---|---|---|
| Can I enter? | "All are welcome to participate in online USACO contests and training." "Participation is free and open to all." | Yes, from home, with a free account |
| How am I ranked? | "Pre-college / USA students are typically ranked separately from "observers" (all others participating)." | Read the results page for how your entry is listed; we do not guess |
| Can I be promoted? | "All participants start in the bronze division", and promotion follows strong scores | The division ladder is open to everyone, and is a good progress measure |
| Can I be a finalist? | "Only pre-college students in the USA are eligible for selection as finalists to attend the USACO training camp" | No, for students living and studying in Canada |
| Residency rule for finalists | "You must either be a US citizen or a resident of the USA during the first half of the school year." | Canada's IOI route runs through the CCC instead |
| Practice archive | Historical problems with solutions, and "the ability (if logged in) to submit your own solutions" | Free practice all year, with judged submissions |
USACO describes a "certified contest result" for Gold and Platinum. Problems in those divisions are released at "12:00pm (noon) eastern time (ET)" on the Saturday, and a student who starts "between 12:00pm and 12:15pm ET on that day will receive a certified score".
USACO adds that "A certified result is required for promotion from gold to platinum." Bronze and Silver problems are open across the whole weekend, with no certified start.
USACO's integrity rules include working alone and this line: "Use of generative AI (e.g., services like copilot or ChatGPT) is prohibited." Code must be written from scratch, consulting only references for the language's syntax and libraries.
Under 18, ChatGPT needs a parent's permission anyway. For contest practice we ask students to work exactly as the rules require, with only official language documentation open.
Sources: USACO Contest Instructions and Rules, USACO Details and FAQ and USACO Training, read 22 October 2026.
Clocks
For Gold and Platinum, the certified start is noon Eastern on the contest Saturday. Our conversion below shows what that means across Canada, using the 2026 to 2027 offsets. It assumes USACO keeps the noon ET release it described for 2025-2026.
| Where | Until 13 March 2027 | From 14 March 2027 |
|---|---|---|
| British Columbia (most), Yukon | 10:00 a.m. | 9:00 a.m. |
| Alberta, Saskatchewan | 11:00 a.m. | 10:00 a.m. |
| Manitoba | 12:00 noon | 11:00 a.m. |
| Ontario and Quebec (ET) | 12:00 noon | 12:00 noon |
| Atlantic provinces (AT) | 1:00 p.m. | 1:00 p.m. |
| Newfoundland (NT) | 1:30 p.m. | 1:30 p.m. |
Why two columns: Eastern clocks move forward on 14 March 2027, while British Columbia, Alberta, Saskatchewan and, from 1 November 2026, Manitoba no longer change. A March round therefore starts an hour earlier for western students than a January one. Weekend morning starts suit families in British Columbia well; the Atlantic and Newfoundland start falls after lunch.
USACO vs CCC
The two contests test the same kind of thinking, but they are organised very differently. The CCC column is from CEMC's CCC page and the CCC rules; the USACO column from usaco.org. The arrangement is ours.
| Canadian Computing Competition (CEMC) | USACO | |
|---|---|---|
| Entry | Through a school that orders the contest | A free account; no pre-registration |
| Where | At school, supervised in person | Online, from home |
| How often | Once a year; Wednesday 17 February 2027 in the Americas | Usually four rounds a season; 2026 to 2027 dates not yet posted |
| Length | 3 hours | 4 hours, or 5 for the US Open |
| Problems | 5 per paper, 15 marks each | Typically 3 or 4 |
| Levels | Junior or Senior, chosen by the student | Bronze to Platinum, by promotion |
| Languages | C, C++, Python 2, Python 3, Java | C, C++, Java, Python |
| Time per test | 3 seconds and 512 MB, unless stated | 2 seconds for C and C++, 4 for Java and Python; about 256MB |
| Cost to the family | Paid by the school, per participant | "There is never any fee for participation." |
| AI tools | Forbidden, including inside an editor | Generative AI prohibited |
| Leads to | About 20 official Senior writers invited to the CCO, which selects Canada's IOI team | For pre-college students in the USA: finalist camp and the USA IOI team |
For a student in Canada, the CCC is the contest that counts for Canada's IOI team, and it happens once. USACO can be entered again and again, which makes it valuable practice: four hours of real contest pressure, several times a winter, from the kitchen table.
USACO's divisions also give a clear, external measure of progress. A student who reaches Silver has met recursive search and greedy methods under contest conditions; Gold means shortest paths and dynamic programming, which is roughly the ground of CCC Senior problems 3 and 4 in our experience.
The CCC rewards a single good afternoon and partial marks on subtasks. USACO scores each problem by how many test cases pass within the time limit, and promotion depends on each contest's cutoff.
Python is workable at both lower levels: USACO says it generally tries to ensure "that all bronze-level problems are also fully-solvable in Python", while warning that higher divisions may not be. CEMC gives a similar warning for the CCC. C++ is the safe choice for anyone aiming high in either.
A practice problem
We wrote this problem for our students; it is ours, not a USACO or CEMC problem. It is the kind of simulation that Bronze rounds and early CCC problems share, with a twist that rewards thinking about efficiency. The solution was run on its sample, and checked against a slow brute force on 500 random cases with no differences.
Ferry Queue. A ferry leaves the dock at times T, 2T, 3T and so on (in minutes) and carries at most C cars each sailing. N cars arrive at the given times, in order; a car arriving exactly at a departure time still makes that sailing. Cars board first come, first served. Print the departure time of the sailing that carries the last car. Input: N, C and T on the first line (1 ≤ N ≤ 100,000; 1 ≤ C, T ≤ 1,000), then the N arrival times on one line, each from 0 to 1,000,000,000. Output: one integer.
Sample input: 5 2 10 1 2 3 15 31 Sample output: 40
# Brute force for checking: try every sailing in turn
import sys
data = sys.stdin.read().split()
n, cap, gap = int(data[0]), int(data[1]), int(data[2])
arrive = [int(x) for x in data[3:3 + n]]
i, depart = 0, 0
while i < n:
depart += gap
boarded = 0
while i < n and boarded < cap and arrive[i] <= depart:
i += 1
boarded += 1
print(depart)Correct, and fine for the sample. But it visits every sailing, and with arrival times up to a billion and T as small as 1, that can mean a billion empty sailings. On a contest grader it would pass the small tests and time out on the large ones.
# Our Bronze-style practice problem: Ferry Queue (not a USACO problem)
import sys
def main():
data = sys.stdin.read().split()
n, cap, gap = int(data[0]), int(data[1]), int(data[2])
arrive = [int(x) for x in data[3:3 + n]] # already in order
i = 0
depart = 0
while i < n:
# next sailing: the one after the last, or the first one
# at or after the next car's arrival, whichever is later
first_for_car = -(-arrive[i] // gap) * gap # ceiling to a multiple
depart = max(depart + gap, first_for_car)
boarded = 0
while i < n and boarded < cap and arrive[i] <= depart:
i += 1
boarded += 1
print(depart)
main()The idea: empty sailings change nothing, so jump straight to the next sailing that matters, either the one after the last, or the first one at or after the next car's arrival, found by rounding up to a multiple of T. Each car is handled once, so the work grows with N, not with the times. In the sample, cars at 1 and 2 leave at 10, cars at 3 and 15 at 20, and the car at 31 at 40. The equal-time rule, arrival ≤ departure, is the detail most first attempts get wrong.
Simulation with an efficiency twist appears at the start of both ladders. In USACO it is Bronze material; at the CCC it sits around Junior problem 5 or the early Senior problems.
The lesson is the same in both: write the obvious simulation first, then ask which steps change nothing and can be skipped.
Write the brute force, then the fast version, and run both on many small random inputs until they always agree. Only then trust the fast version on large input.
Then try your own variant: what if the ferry may leave early once it is full? Changing one rule and re-solving is how students learn to read rules carefully.
One season
USACO's rounds have usually fallen between December and early spring, and the 2027 CCC is on 17 February 2027. Our plan for a Canadian student who wants both, assuming USACO keeps a similar pattern for 2026 to 2027, which it had not yet confirmed.
For a student in Canada, the CCC. It is the contest that leads to the CCO and Canada's IOI team, and it is written once. USACO is excellent preparation for it and a lasting measure of progress.
For a student who simply loves algorithms, both, all year. The problems are different, the habits are the same.
We do not promise promotions, cutoffs or invitations in either contest; both organisers decide those. We teach the algorithms and habits that both contests reward.
For deeper division-by-division coaching, our USACO preparation page sets out how we work, and our CCC preparation page covers the Canadian contest.
Where a student starts
How we place a student who wants to use USACO alongside the CCC. The stages are ours.
| Stage | What it looks like |
|---|---|
| 1. First round | Writes a Bronze round; solves one problem fully |
| 2. Bronze steady | Solves most Bronze problems; ready for CCC Junior |
| 3. Silver | Promoted; uses recursive search and greedy methods |
| 4. Gold and up | Shortest paths and DP; ready for CCC Senior's middle problems |
USACO rounds happen at home, so the family sets the conditions. A quiet room, four clear hours and no help from anyone is what the rules ask.
A promotion is a good moment to celebrate. A round without one is a good moment to review, not to worry.
Treat each round as practice for the CCC: read every problem first, then choose your order.
Re-solve the problems you missed before the next round. That is where promotions come from.
The catalogue
Live online, with the same teacher each week, in a batch or one to one, for students across Canada.
UC / BRZ / 01
Enough for Bronze, start to finish.
Open the syllabusUC / BRZ / 02
A language both contests accept.
Open the syllabusUC / BRZ / 03
Logic and data structures, slowly.
Open the syllabusUC / SG / 01
The math behind counting and DP.
Open the syllabusUC / SG / 02
Combinatorics and proof.
Open the syllabusUC / SG / 03
Java, for schools offering AP.
Open the syllabusUC / PLT / 01
For university-level contests.
Open the syllabusUC / PLT / 02
Advanced structures, adults.
Open the syllabusUC / PLT / 03
C++ at depth, ages 18 and over.
Open the syllabusHow lessons run
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Weekdays
After school, in your own province's time.
Weekends
Weekend mornings, clear of USACO contest weekends.
1-on-1
Fitted around the CCC date and the USACO rounds.
CCC first, USACO rounds as practice.
Bronze to Gold techniques in order.
Our own sets; official archives for past ones.
Every USACO round gone through afterwards.
Students in every Canadian time zone.
Fifteen to twenty in a batch, or private.
Student work
Contest work is one part; building is the other. A few of our students' projects are below, and the student labs show more.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
USACO charges nothing to compete, and the school covers the CCC. Our monthly fee is only for live coaching, with no season contract, so a family can coach through the winter rounds and stop in spring.
Free first class
Free
no card required
Group batch
$100 USD
a month, eight live classes
One to one
$150 USD
a month, eight live classes
What families say
Parents on Google, quoted as written.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
Questions from Canadian families
Yes. usaco.org says all are welcome to take part in its online contests and training, and that participation is free and open to all. A student in Canada needs only a free account on usaco.org.
No, for a student living in Canada. USACO says only pre-college students in the USA are eligible for selection as finalists, and that a finalist must be a US citizen or a resident of the USA during the first half of the school year.
usaco.org says pre-college or USA students are typically ranked separately from observers, meaning all others participating. Check each contest's results page for how entries are listed.
Yes. USACO's rules say there is never any fee for participation, and its training pages and historical problems with solutions are free online.
The CCC, if only one. It is CEMC's national contest, written at school once a year, and the route to the Canadian Computing Olympiad and Canada's IOI team. USACO is excellent extra practice from home across the winter.
usaco.org had not posted them when we checked on 22 October 2026; it still showed the 2025-2026 schedule. Its details page says contests usually run from December through early spring. The CCC is on 17 February 2027.
Bronze and Silver can be started any time in the Friday-to-Monday window. For a certified Gold or Platinum result, problems open at noon Eastern on the Saturday, which is 10:00 a.m. in British Columbia in winter and 1:30 p.m. in Newfoundland.
USACO accepts C, C++, Java and Python, and calls C++ the clear answer at higher levels because it is the only language supported at the IOI. It aims to make all Bronze problems fully solvable in Python. The CCO also requires C++.
No. USACO prohibits generative AI such as ChatGPT during contests, and the CCC rules forbid it too. Outside contests, ChatGPT needs a parent's permission for anyone under 18.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. We keep weekend slots clear of USACO weekends where a student is competing.
Elsewhere on this site
More for Canadian students who enjoy algorithm contests.
Our division-by-division USACO coaching.
The Canadian contest, Junior and Senior.
The 2027 Junior paper explained.
Where both ladders lead internationally.
All of our pages for Canada.
When a test case fails and you do not know why.
Start here
The first class is one Bronze-style problem, solved together, then a look at the student's CCC plans. You leave with a sensible order for the winter: which USACO rounds to write and how to keep the CCC first.
To see the teaching first, How we teach describes a live class, and the full course list has every syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Our teachers teach live over video from India; there is no centre in Canada to visit. WhatsApp is the quickest way to reach us.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo