USACO — the USA Computing Olympiad — is one of the more accessible programming olympiads for pre-college students. It is free to enter, its online contests are open to students worldwide, and everyone starts at the entry-level Bronze division, so complete beginners can take part alongside experienced competitors.
Whether your goal is to build real coding and algorithm skills or to add a substantive STEM activity to a university application, USACO is a well-established track worth considering. This guide explains how the competition works and how to progress steadily from Bronze up to Platinum.
What Is USACO
The USA Computing Olympiad is a United States computing olympiad founded in 1992. It is aimed at pre-college (secondary school) students and runs several contests each season. Anyone can register a free account to enter the online contests and use the training resources. The contests and training are open to participants worldwide; only pre-college students based in the United States are eligible for training-camp selection and for the USA teams at the International Olympiad in Informatics (IOI) and the European Girls’ Olympiad in Informatics (EGOI).
Who Should Participate
There are no age or nationality restrictions on the online contests, so international students can take part freely. USACO is especially popular with students in grades 7–12. Grades 7–9 are often a good time to start, when students have room to build logical-thinking and programming skills before their workload increases.
2025–26 Season Schedule (Reference)
Dates change every year, so always confirm the current season on usaco.org. For reference, the 2025–26 schedule was:
Contest 1: January 9–12, 2026
Contest 2: January 30 – February 2, 2026
Contest 3: February 20–23, 2026
US Open (championship): March 28, 2026 (proctored, held in person at designated sites)
What changed for 2025–26:
- The US Open moved from an online contest to a proctored, in-person championship.
- Gold and Platinum contestants who want a certified score must start the contest on Saturday at 12:00 ET when the problems are released (roughly a 15-minute start window).
- Training-camp finalist selection now takes multiple certified scores into account.
- Platinum competitors were reset to Gold at the start of the season, a practice USACO has said it may continue.
Competition Format
Each contest gives you a single 4–5 hour timer to solve 3 problems (occasionally 4). The monthly contests are taken online in a self-scheduled block within each multi-day window; the US Open is now proctored and held in person. There is never any fee to participate.
A contest is scored out of 1000 points — about 333.33 per problem — and each problem is checked against roughly 10 test cases. You can resubmit as many times as you like during your timer, and only your last submission is graded.
Supported Programming Languages
USACO supports C, C++, Java, and Python. C++ is the recommended choice for the higher divisions: it runs fast, and it is the only language supported at the IOI. Bronze problems are designed to be fully solvable in Python, but on harder problems Python’s slower speed can make it difficult to pass every input within the time limit.
The Four Divisions
USACO has four divisions that rise in difficulty: Bronze → Silver → Gold → Platinum. All new participants start at Bronze and move up by scoring above a contest’s promotion cutoff. That cutoff varies from contest to contest — in recent seasons the monthly contests have mostly fallen around 650–750 out of 1000. A perfect score of 1000 promotes you immediately, and you may start the next division’s contest within the same window.
Each division draws on a different set of skills. Working through past USACO problems, which are freely available with full solutions, is one of the best ways to prepare.
The Divisions in Detail
Bronze
Difficulty: Entry level. Basic syntax and logic, simulation, sorting, and brute force.
Best for: Beginners with little or no prior experience, or students just starting with C++ or Python.
What it shows: That you can write and debug basic programs and complete a full olympiad contest — a solid first milestone and the foundation for the higher divisions.
Silver
Difficulty: Introduces common algorithms — greedy, binary search, prefix sums, and basic graph traversal (DFS) — with more code per problem.
Best for: Students with a basic programming foundation who want structured algorithm training.
What it shows: A working command of fundamental algorithms, which can add real substance to a STEM-focused application.
Gold
Difficulty: Mid-to-advanced. Dynamic programming, graph theory and shortest paths, and efficient data structures such as union-find.
Best for: Students with prior contest experience who want a substantial challenge.
What it shows: Solid algorithmic ability and serious preparation — a meaningful result for students pursuing computer science.
Platinum
Difficulty: The hardest division. Advanced modeling and algorithmic problem-solving with no fixed syllabus and no upper bound; segment trees and advanced dynamic programming are typical.
Best for: Experienced competitors aiming for the top level of the contest.
What it shows: Advanced algorithmic skill. It is a strong signal for students focused on computer science, though it remains one credential among many in an application.
Free USACO Preparation Materials
Scan the QR code below for free practice problems, study guides, and past-contest materials to help you get started.