Original mock contests

Two full USAAIO-style mock contests: a 90-minute tabular ML problem in the Round-1 style, and a 180-minute small-vision problem in the Round-2 style. Each mock has a self-contained problem page (constraints, data dictionary, submission format, scoring rubric) and a separate reference-solution page to open after you've sat the timer.

How to take a mock. Strict timer. Open the problem page only when the timer starts. Save predictions and notebook from a clean kernel when the timer rings. Then open the solution page and score yourself rubric-section by rubric-section — not on a single leaderboard number.

Mock A · Tabular ML (Round-1 style)

Time90 minutes
ComputeCPU only
Topic3-class classification on a small synthetic exam-outcome dataset (~500 rows, 4 features, ~8% missing). Preprocessing, baseline, feature engineering, model choice, write-up.
DataSynthetic, generated locally from a ~20-line numpy snippet on the problem page. No download required.
Submissionpredictions.csv with header id,label, labels ∈ {low, mid, high}.
MetricWeighted F1 across 3 classes (rubric is process-based, not leaderboard-based).
Points100 (preprocessing 20 · baseline 30 · feature engineering 25 · model choice 15 · write-up 10)

Open problem →   Open solution →

Mock B · Small vision (Round-2 style)

Time180 minutes
ComputeColab L4 GPU allowed (or local equivalent). No pretrained weights.
Topic5-class hand-drawn-shape classification on a 5 000-image synthetic dataset (64×64 grayscale). Data loader, CNN from scratch, augmentation, training stability, evaluation, theory.
DataSynthetic, generated locally from a ~30-line PIL + numpy snippet on the problem page. ~5 MB total.
Submissionpredictions.csv with header id,label, lowercase labels from the 5-class set, plus a 3-question theory short-answer.
MetricMacro accuracy (mean per-class accuracy).
Points100 (data loader 15 · baseline CNN 30 · augmentation 20 · training stability 15 · evaluation report 10 · theory 10)

Open problem →   Open solution →

After each mock

  1. Score yourself against the rubric, section by section. Do not just stare at the leaderboard number.
  2. For each rubric section you missed: write one sentence in your error log on what you'd do differently.
  3. For coding bugs (submission format, leakage, BatchNorm at inference, etc.): add a one-line checklist item to your “final 10 minutes” ritual.
  4. Re-attempt the lost rubric sections with no time limit before moving to the next mock.