Need Help?

Need help finding the right class? Have a question about how classes work?

Click here to Ask AoPS!

USACO Bronze Problem Series

This course is a thorough exploration of algorithms and techniques that frequently appear in the USA Computing Olympiad at the Bronze level. By the end of the course, students will be comfortable applying strategies such as binary search, prefix sums, sliding windows, and greedy algorithms, and using data structures such as arrays, maps, and sets. The comprehensive content coverage and the dozens of unique practice problems provided help students master Bronze level problems as they work to advance to USACO Silver. Our (upcoming) Silver and (current) CodeWOOT classes can help them the rest of the way to Platinum (and perhaps the IOI training camp!)

12 weeks

Diagnostics

ARE YOU READY?
12 weeks ARE YOU READY?  

Schedule

Sunday
Jan 4 - Mar 22
7:30 - 9:00
PM ET
Jan 4 - Mar 22
7:30 - 9:00 PM Eastern
6:30 - 8:00 PM Central
5:30 - 7:00 PM Mountain
4:30 - 6:00 PM Pacific
Click here to see more time zones
$455 (~$38/lesson)
$455 (~$38/lesson)
CLOSED
Wednesday
Apr 8 - Jun 24
7:30 - 9:00
PM ET
Apr 8 - Jun 24
7:30 - 9:00 PM Eastern
6:30 - 8:00 PM Central
5:30 - 7:00 PM Mountain
4:30 - 6:00 PM Pacific
Click here to see more time zones
$455 (~$38/lesson)
$455 (~$38/lesson)
ENROLL
Monday
May 11 - Aug 3
7:30 - 9:00
PM ET
May 11 - Aug 3
7:30 - 9:00 PM Eastern
6:30 - 8:00 PM Central
5:30 - 7:00 PM Mountain
4:30 - 6:00 PM Pacific
Click here to see more time zones
$455 (~$38/lesson)
$455 (~$38/lesson)
ENROLL
Sunday
Jun 21 - Sep 20
7:30 - 9:00
PM ET
Jun 21 - Sep 20
7:30 - 9:00 PM Eastern
6:30 - 8:00 PM Central
5:30 - 7:00 PM Mountain
4:30 - 6:00 PM Pacific
Click here to see more time zones
$455 (~$38/lesson)
$455 (~$38/lesson)
ENROLL
Fall 2026This course will be offered in Fall 2026. Click here to join our mailing list to be notified when the course schedule is available.

AoPS Holidays

There are no classes May 23 ‐ 25, July 3 ‐ 5, September 5 ‐ 7, October 31, November 23 ‐ 29, and December 21 ‐ January 3, 2027.

Who Should Take?

There are three items to consider when signing up for the USACO Bronze Problem Series:

  • Language knowledge: Students should already be comfortable enough with C++, Java, or Python to write simple programs using basic concepts like arrays, maps/sets, if statements, and for loops. Our Introduction to Python course, for example, is sufficient preparation. Note that either Java or Python is viable for the USACO Bronze and Silver levels, but C++ is the assumed default language of competitive programming, and Python is too slow to solve many problems at the Gold level and above. It is fine to start your USACO journey in Python and pick up C++ later.
  • Competitive programming familiarity: This course is intended for students who have already tried solving at least one USACO Bronze problem, or a problem on another competitive programming platform such as Leetcode or Codeforces. Students should know how to read a problem statement, write a solution in their own preferred environment on their computer, submit the solution to the online judge, and interpret the judge's feedback. If you know a coding language but haven't tried a contest-style problem, you can satisfy this prerequisite with a few hours of exploring and experimenting.
  • Math background: Because computer science problems often boil down to math problems, the course also requires some algebraic fluency, as acquired in our Prealgebra course. For example, students should be able to solve a system of two linear equations and have a basic familiarity with functions.
If you are unsure, we recommend trying the diagnostic test above as a skills check.

Lessons

1 Simulation
2 Big-O and Complete Search
3 Further Complete Search
4 Sets and Maps, and Two Pointers
5 Precomputation, Prefix Sums, and Queries
6 Greedy Algorithms
7 Practice Contest 1 Review
8 Forced Decisions
9 Wrestling With The Unfamilar
10 Permutations and Puzzling Problems
11 Geometry
12 Intro to Binary Search

This was the best math course I have ever taken. I have always been very strong in math and have taken many challenging courses. Intermediate Algebra challenged me at a greater level. Writing problems are the main way that Intermediate Algebra challenged me at a new level. If I had not taken this course, I never would have known the complex proof methods I have learned. The writing problems have also made me more prepared to succeed at contests like the Mandelbrot Competition and the USAMO, as I have learned proof-writing strategies. I always like to know a lot about topics, especially topics that I have a passion for, like math. Intermediate Algebra fulfilled that desire. This was also a great help for preparing for contests like the AMC 12. All in all, this was an excellent course.