Subscribe to our newsletterWe’ll send you our favorite blog posts, tutorials, events, and more!
USACO Training & Competition Results
The USACO December and January contests were recently held on December 14-17, 2018 and January 18-21, 2019. Congratulations to these students at Juni Learning who have been promoted into the Gold Division:
- Arnav Jain, The Harker School, Los Gatos, California (2022)
- Benny Sedlacek, Homeschooled, Northville, Michigan (2021)
- Shiva Oswal, Seven Springs Academy, Cupertino, California (2022)
And congratulations to these students who have been promoted into the Silver Division:
- Jerry Xia, Greene Middle School, Palo Alto, California (2023)
- J. Lee, The Lawrenceville School, Lawrence, New Jersey (2020)
- Irika Katiyar, Saratoga High School, Saratoga, California (2021)
- Irith Katiyar, Saratoga High School, Saratoga, California (2021)
- Vivian Nguyen, Foothill High School, Pleasanton, California (2020)
Benny received a perfect score on the January 2019 Silver contest. Benny, Jerry, J. Lee, Irika, Irith, and Shiva all received perfect scores on the December 2018 Bronze contest.
What is USACO?
USACO stands for the USA Computing Olympiad. In the US, students are eligible to compete in a series of math and science Olympiads that test topics typically well beyond the standard high school curriculum. There is the USAMO for mathematics, USABO for biology, USNCO for chemistry, USAPhO for physics, and USACO for computer science. These contests are not only used to recognize students for the achievement in these subjects, but also to select the members of team USA in international competitions.
The USACO is divided into four divisions: bronze, silver, gold, and platinum. There are four online contests per year in December, January, February, and March, where participants download the problems and submit solutions online. Each contest poses three problems that each require a program be written to compute the correct answer for a collection of test cases. The score for each problem is calculated based on the number of test cases that the program correctly computes within the time and memory bounds allowed. Programming can be done in Python, Java, C++, C, or Pascal.
All students start in the Bronze division and are promoted based on their contest scores. There are approximately 5,000 pre-college students who take each contest, but only about a fifth of these students achieve Gold or Platinum level.
How to prepare for USACO
At Juni, our USACO Training Program is by invitation only after the student has completed Python Level 3: Data & Algorithms Master or AP Computer Science A in Java. Based on instructor recommendation, we look for students who demonstrate a high degree of independence with the fundamentals and basic data structures in Python or Java, and who have the motivation to pursue more challenging algorithmic topics.
Our USACO classes are 1:1 classes with a private instructor, using our USACO curriculum. Emphasis is placed on the algorithms, data structures, and problem solving skills required at that level. We teach using a lot of practice problems from past contests and the USACO training portal. It typically takes at least 1 year to prepare for each level.
What is USACO Bronze?
Students who start in our USACO Bronze course should already be very comfortable with the following concepts:
Thus, the bulk of preparation for Bronze is adjusting to the format of USACO-style problems and learning how to tackle and debug problems with mostly brute force or greedy algorithm approaches. Depending on the student, we also spend time on reading comprehension for complex problems and time management for test taking. Our USACO Bronze course is offered in Python or Java.
What is USACO Silver?
Our USACO Silver course covers these algorithms, techniques, and data structures:
- Graphs and trees
- Stacks, queues, and priority queues
- Binary search
- Depth-first search and breadth-first search
- Sliding window
- Prefix sums
Additional emphasis is placed on time and memory complexity analysis to ensure that our programs run within the time and memory bounds for each test case. Our USACO Silver course is offered in Java or C++.
What is USACO Gold?
Our USACO Gold course covers these topics:
- Dynamic programming
- Shortest path algorithms
- Minimum spanning trees
- Disjoint set
- String algorithms
- Geometric algorithms
Our USACO Gold course is offered in Java or C++.