The Complete USAAIO Prep Guide (2027 Cycle)
Everything a parent or student needs to know about the USA AI Olympiad — eligibility, format, syllabus, timeline, and how to actually prepare. Written by AIClub Research Institute PhD mentors.

What Is USAAIO?
The USA AI Olympiad (USAAIO) organizes the USA–North America AI Olympiad (USA-NA-AIO), a national competition in artificial intelligence and machine learning open to K–12 students across the United States and Canada. It's a relatively new olympiad, first held in 2024, alongside the launch of the International Olympiad in Artificial Intelligence (IOAI). Still, it already carries real weight: USAAIO is the official pathway that selects Team USA for three international competitions: the IOAI, the IAIO (International Artificial Intelligence Olympiad), and the IAI²O.
The United States is a founding country of all three.
Unlike a hackathon, a coding contest, or a science fair project, USAAIO tests two distinct skills at once:
-
AI theory: the math and reasoning underneath machine learning: probability, linear algebra, optimization, and the derivations behind the algorithms themselves.
-
Applied programming: implementing those same algorithms in Python, NumPy, and PyTorch, often from scratch rather than by calling a pre-built library function.
That combination is what makes USAAIO distinctive, and it's also why generic "learn AI" courses tend to under-prepare students. A student who can explain backpropagation on a whiteboard but has never implemented it in PyTorch will lose points. So will a student who can call model.fit() in scikit-learn but couldn't derive gradient descent by hand.
Why this matters beyond the competition itself:
USAAIO sits in the same category as long-established national olympiads. USACO for algorithms, USAMO for math, that selective universities recognize as strong, hard-to-fake signals of depth in a technical subject. That signal is worth more every year, as generic "AI experience" on a college application becomes common and admissions officers get better at spotting the difference between a resume line and real ability. An Honor Roll placement, a Round 2 qualification, or a Team USA selection is something a student earned under proctored, timed, individual conditions, not a certificate of course completion.
Team USA is already delivering results. At the 2026 IOAI in Astana, Kazakhstan (August 2–8, 2026), Team USA brought home two gold medals, three silver medals, and three bronze medals. This is a genuinely competitive, high-caliber program from its very first cycles — not a fledgling contest still finding its footing.
Vision
This is a Paragraph. Click on "Edit Text" or double click on the text box to start editing the content and make sure to add any relevant details or information that you want to share with your visitors.
Eligibility
Open to K–12 students in the United States and Canada.
Round 1 is open to everyone in this range. There's no qualifying exam or prerequisite course required just to register. Contestants must be under 20 years old on the first day of the international competition they'd represent Team USA at. Full-time university students are not eligible. No formal prerequisite coursework is required to register, but strong prior preparation in math and Python programming has a large effect on performance. See later in this page for what "strong prior preparation" actually means at each stage.
A note for families with younger or newer students: because eligibility is broad, a highly motivated middle schooler with strong math fundamentals can absolutely be competitive at Round 1, even without a formal computer science background yet. The gap that trips up younger or newer students isn't age. It's math and Python fluency, which is buildable with the right runway (see preparation sections later in this page).


Competition Format
USAAIO runs as a three-stage pathway over the academic year:
Round 1A: A proctored, in-person exam, taken at the student's school or a USAAIO-authorized test site (university, library, or testing center), combining theory questions (typeset in Markdown with mathematical notation) and programming problems in Python, using NumPy and machine learning libraries. All contestants nationally take it at the same time. Friday, February 19, 2027, 12:00–3:00 p.m. U.S. Eastern Time
Round 2A: A longer, more advanced in-person event for qualifiers, held at major universities (Harvard and MIT hosted the 2026 cycle), including plenary talks from researchers and an admissions information session. March or April 2027
USAAIO Camp: A multi-day, in-person program for Round 2 finalists, featuring team selection tests and lectures. Top performers are named to Team USA. June 2027
Registration for the 2027 cycle is open now and runs June 1, 2026 through January 31, 2027, at 11:59 p.m. EST.
Every round is individually proctored with screen and webcam monitoring where applicable. The use of AI assistance tools (ChatGPT, Copilot, and similar) during the exam is strictly prohibited. This is tested under real, supervised conditions, which is part of why it carries weight as a credential.
Advancement is competitive but realistic. In the 2025 cycle, roughly 393 students participated nationally, and about 19% advanced from Round 1 to Round 2.
Award tiers: Honor Roll, High Honor Roll, and Distinguished Honor Roll — recognize different score bands within Round 1, and the score cutoffs for each tier and for Round 2 qualification vary from year to year based on the difficulty of that year's exam and the overall applicant pool.
Vision
The Syllabus, Broken Down
This is the section most families actually need — a plain-English map of what's actually tested, not just a list of buzzwords.
Math foundations
USAAIO doesn't test math in the abstract. It tests exactly the math that underlies the ML algorithms in the rest of the syllabus, and it expects students to derive results, not just recognize formulas.
-
Linear algebra: vectors, matrices, and eigenvalues - directly relevant to Principal Component Analysis (PCA), which shows up explicitly in the syllabus.
-
Probability and statistics: Bayes' theorem and Hoeffding's inequality are both named, specific topics students are expected to know and apply, not just define.
-
Calculus and optimization: derivatives, gradients, and gradient descent — the mechanism that trains almost every model students will implement later in the syllabus.
Why this section matters most: students who skip straight to "building models" without this foundation can often get a neural network to run, but they can't explain why it works, why it fails, or how to fix it when it does — and that's exactly where Round 1's theory questions are designed to catch gaps.
Classical machine learning
This is the bulk of Round 1 for most students, and it's the layer where "from scratch" understanding really gets tested.
-
Supervised learning: linear regression, logistic regression, support vector machines (SVMs), decision trees, k-nearest neighbors, and ensemble methods. Students should understand both how to derive each method mathematically and how to apply it with scikit-learn.
-
Unsupervised learning: k-means clustering and PCA are both explicitly on the syllabus — expect both conceptual questions and implementation tasks.
-
Core supporting concepts: the bias–variance tradeoff, cross-validation, loss functions, and regularization. These aren't a separate topic — they show up embedded inside almost every other question, since they're how you evaluate whether any of the above methods are actually working.
Deep learning
The more advanced half of the syllabus, weighted more heavily in Round 2 but present in Round 1 as well.
-
Neural network fundamentals: forward propagation, backpropagation, and the intuition for how training actually adjusts a network's weights — tested both as a derivation on paper and as working code.
-
PyTorch implementation: building, training, and debugging real networks in PyTorch, not just describing them.
-
Advanced architectures: transformers, natural language processing (NLP), computer vision, and generative AI fundamentals round out the more advanced material, concentrated more heavily at the Round 2 and Camp stages.
Programming environment and tools
-
Python is the only programming language used throughout USAAIO. Fluency with syntax, data structures (lists, dicts, sets), functions, classes, and basic algorithmic thinking is a prerequisite for the ML content to make sense at all.
-
NumPy — critically, USAAIO problems expect students to implement algorithms from scratch using NumPy, not just call a high-level library function. This is one of the biggest gaps between "took an AI course" and "is actually ready."
-
scikit-learn for classical ML application tasks.
-
PyTorch (2.x) for deep learning implementation.
-
Google Colab, with theory answers typeset in Markdown and mathematical notation.
The core insight most self-study plans miss
USAAIO tests two skills most students only build one of — deriving an algorithm mathematically, and implementing it from scratch in code. A student who understands backpropagation only in code, without being able to derive the gradient by hand, struggles with the theory questions. A student who can prove the math but has never written a training loop in PyTorch struggles with the programming tasks.
Real preparation has to train both together, in the right order — math first, then classical ML from scratch, then deep learning — rather than jumping straight to the flashiest topic.
Vision


How to Prepare:
Every student's starting point is different. Here's a sample sequence that shows what would need to be covered. To save time and increase chances of success, the sequence should be tailored to what your student already knows and what areas they need to work on.
-
5+ months out (where most families starting today are): Lock down math foundations and Python fluency before touching machine learning at all. Linear algebra, probability, calculus, and comfort with Python's core data structures. Students who skip this stage and jump straight into "building AI models" hit a wall the moment a question asks them to derive something rather than just run a pre-built function.
-
3–4 months out: Classical machine learning, built from scratch. For every algorithm on the syllabus — linear regression, logistic regression, decision trees, k-means, PCA — implement it in raw NumPy before using the scikit-learn shortcut. This is tedious, and it's exactly what separates students who can only recognize the right function call from students who can actually answer a from-scratch implementation question under exam conditions.
-
2–3 months out: Deep learning and PyTorch. Neural network fundamentals, backpropagation derived by hand and then implemented in code, then a first pass at more advanced architectures (transformers, basic computer vision or NLP) as time allows.
-
Final 4–6 weeks: Timed practice under real exam conditions — Google Colab, typed theory answers with Markdown/math notation, a hard three-hour time limit. Released past USAAIO and IOAI problems are the best practice material available, since they match the actual format and difficulty far better than generic practice problems (official archive linked in Section 6).
Registration deadline: January 31, 2027. Round 1: February 19, 2027, 12:00–3:00 p.m. ET.
This timeline is generic — every student's actual starting point is different, and the right sequence depends on what they already know. A PhD mentor can build a plan matched to your child's real level in a free consultation.
Resources
-
Official USAAIO site (usaaio.org) — registration, rules, and the official topic outline.
-
Official past problems archive — released Round 1 and Round 2 problems from prior cycles, including problem design rationale. This is the single best practice material available, since it matches the real format exactly.
-
IOAI official site — for context on the international competition Team USA competes in.
-
Free tools: Google Colab (the actual exam environment), scikit-learn documentation, official PyTorch tutorials.
Where 1:1 mentorship tends to help most: not in explaining concepts a student could look up — but in catching the specific gaps in "why," not just "how," that self-study tends to plateau on, especially around the from-scratch implementation questions and the theory derivations that most online courses skip over entirely.


Free Practice Problems
Below are two sample problems in the USAAIO style — one theory, one implementation — with full worked solutions, to give you a real sense of the exam's dual format.
Sample problem (theory)
Bias-variance tradeoff. A model achieves 98% accuracy on its training set and 71% accuracy on a held-out validation set. Identify which regime this indicates, explain the underlying cause in terms of the bias-variance tradeoff, and propose two concrete techniques to address it.
Worked solution:
This gap — high training accuracy, much lower validation accuracy — is the signature of overfitting, i.e., high variance. The model has learned patterns specific to the training data (including its noise) rather than the underlying general relationship, so it generalizes poorly. Two standard remedies: (1) regularization (L1/L2 penalties, or dropout in a neural network) to constrain model complexity and discourage fitting noise, and (2) cross-validation combined with a simpler model or early stopping, to select model complexity based on validation performance rather than training performance alone.
Sample problem (implementation)
Gradient descent from scratch. Implement one step of batch gradient descent for linear regression using only NumPy (no scikit-learn). Given feature matrix X, target vector y, current weights w, and learning rate lr, write the update rule.
python
import numpy as np def gradient_descent_step(X, y, w, lr): n = X.shape[0] predictions = X @ w error = predictions - y gradient = (2 / n) * (X.T @ error) w_updated = w - lr * gradient return w_updated
Worked explanation:
The gradient of mean squared error with respect to w is (2/n) * Xᵀ(Xw - y). This is exactly the kind of "implement it from scratch" question that trips up students who've only ever called LinearRegression().fit() — the exam wants to see that you understand what that function is doing underneath.