10 Best Resources to Study for USACO

Computer science has become one of the most popular and valuable majors across several universities. If you’re a high school student interested in computer science, programming, showcasing your coding skills, and building a solid profile that will help with college admissions and future careers, the USA Computing Olympiad is something you should definitely participate in.  

What is the USA Computing Olympiad (USACO)?

The United States of America Computing Olympiad (USACO) is known as one of the world’s most prestigious and well-known competitive programming competitions for high school students. Each year, the USACO brings together thousands of young programmers from all around the world and challenges them to solve complex programming problems that cover topics such as data structures and algorithms, matrix exponentiation, binary jumping, and combinatorics, to name a few. 


Why Should You Participate in USACO?

Participating in USACO offers high school students interested in computer science valuable benefits. It develops programming skills, fosters critical thinking under pressure, and prepares students for coding competitions. USACO achievements alone do not guarantee admission to top universities*, however, pairing a USACO Gold/Platinum award with solid grades, test scores, and other computer science extracurriculars and achievements helps you create a strong profile that gives you a good shot at selective colleges, and opens doors to scholarships and career opportunities.

* You should keep in mind that qualifying for the USACO National Camp, IOI, or EGOI is a significant achievement, and we believe that it makes admission likely to schools that value these olympiads, such as MIT, when paired with superb grades, extracurricular activities, other awards, and strong essays. For reference, of the eight students who participated in IOI 2020 and IOI 2021, 6 attend MIT, and 2 attend Harvard!

Who is Eligible for USACO? 

The USA Computing Olympiad is completely free and open to everyone in the world, including college students! This makes it quite accessible for any potential participant, but you can expect the challenge to be quite hard since it is also open to undergraduate students. 

However, only pre-college students in the USA are eligible for selection as finalists to attend the USACO National Camp and to contend for membership on the USA IOI or EGOI team. Both the IOI and EGOI teams consist of the top-performing students at the USACO National Camp, and these students represent the United States in the International Olympiad in Informatics (IOI) or the European Girls Olympiad in Informatics (EGOI), the most prestigious international programming competitions.

Now that we’ve covered some background information about the USACO, let's dive into some of the best resources available to study for the world-renowned computing olympiad! These resources are great for beginners and those who may already have experience with competitive programming. They were selected based on their ease of understanding, technical rigor, and applicability to USACO challenges and other coding competitions. Note that many, if not all, of these resources assume prior coding experience. 

1. USACO Guide

Cost: Free

Time Commitment: Self-paced, but we recommend spending 5-10 hours per week reviewing the material.

The USACO Guide is a free online platform specifically designed to assist you in your preparation for the USA Computing Olympiad. Created by the CP Initiative, former USACO Finalists, and 2x IOI winner Benjamin Qi, the USACO Guide provides hundreds of problems, solutions, and videos separated by topics such as binary searches, hashing, matrices, maps, permutations, and they list how frequently each topic appears on the USACO. The guide also provides access to unofficial USACO forums and groups, so you can meet other students preparing for the USACO. 

Note that with this resource, there is no formal instructor. While there are pre-recorded videos and forums, the quality of help in these forums is lackluster compared to the support you would receive from an instructor. Furthermore, there is no set schedule, so you may lose motivation if attempting to self-study, whereas, by taking classes, you’re forced to stay on track.

Lastly, since this guide was developed primarily by former USACO Finalists and IOI winners, some of the solutions are not very beginner friendly, and they may be challenging to understand if you have little to no competitive programming experience. However, given that this platform is completely free and offers a wide array of support and practice problems, we still believe it is one of the best resources available to study for the USACO.

2. USACO Training Gate

Cost: Free

Time Commitment: Self-paced, but we recommend spending 5-10 hours weekly on practice problems. 

The USACO Training Gate is an online platform and resource the United States Computing Olympiad provides to help students prepare for the competition. It offers a vast archive of contest problems, an online grader for immediate feedback, practice contests, tutorials, and progress tracking. The Training Gate provides a structured approach to practice and access to official USACO problems, helping students develop their programming and problem-solving skills. 

We highly recommend the USACO Training Gate to students who already have experience with competitive programming, as this is an intensive dive into competitive programming compared to Codeforces, and it can be quite tricky for beginners to navigate. Additionally, the USACO has increased in difficulty over the past few years, so we would not recommend doing problems past 2018 because they may not accurately represent the problems you may encounter in the 2023/2024 exams. 

3. Codeforces

Cost: Free

Time Commitment: Self-paced, depends entirely on your level of commitment and prior experience. Contests are typically 2-3 hours long. 

Codeforces is considered a valuable platform for preparing for the USACO and competitive programming in general. Codeforces provides a vast collection of practice problems across various difficulty levels. Alongside forcing you to learn your programming language better because the problems are shorter and mainly focus on a few topics in-depth, Codeforces holds many contests to help you prepare for the USACO. Additionally, Codeforces provides a competitive environment where you can compete against other participants, track your progress, and compare your solutions with top-performing coders. This can be beneficial for developing the speed and accuracy needed in coding competitions like USACO.

While Codeforces can be an excellent resource for any student looking to hone their competitive programming skills, we still recommend complementing your preparation with dedicated USACO-specific resources, such as the official USACO Training Program, USACO guide, and past contest problems, after you have become proficient with the content on Codeforces.

4. CP Initiative

Cost: $100 per class (each class has 9 sessions). Financial aid is available. 

Time Commitment: 2 hours of instruction per week for 9 weeks + 2 hours of (optional) office hours.

The Competitive Programming Initiative (CP Initiative or CPI) is a nonprofit organization that promotes competitive programming among students through resources, classes, outreach, and contests. CPI classes are generally created and taught by USACO Finalists (though some are taught by USACO Gold and USACO Platinum students), offering beginner and intermediate-level courses. This resource is highly affordable and is perfect for newcomers to the USACO. CPI offers classes that cover the necessary topics for the USACO Bronze and Silver divisions, such as prefix sums, sorting algorithms, Ad Hoc problems, and data structures. They also offer office hours every Tuesday and Thursday from 5-6 PM PT for students to ask for help from instructors. 

Overall, CPI is a resource that offers affordable access to quality instructors, and it is one of the best resources for beginners. However, you should know that CPI does not provide classes for students past the USACO Silver division, and classes tend to fill quickly.

5. An Introduction to USACO by Darren Yao

Cost: Free

Time Commitment: Self-paced, but we recommend spending a few hours going through the content.

This short but detailed book by Darren Yao, a USACO Platinum competitor, and junior at MIT, covers all the essential information needed to advance through the USACO Bronze and the USACO Silver divisions. Available in Java and C++ programming languages, “An Introduction to USACO” is one of the most beginner-friendly resources and assumes introductory-level coding experience. Alongside covering topics such as graph theory, binary searches, prefix sums, and modular arithmetic, which will help students solve the most common questions in the USACO Bronze and Silver divisions, Yao provides plenty of practice problems to help reinforce the material learned in each chapter. 

While this resource lacks formal instruction and places a great deal of responsibility on the reader to complete practice problems and take notes on the content, we still recommend this book to any beginner interested in studying for the USACO who may not have extensive programming knowledge. 

6. CodeChef

Cost: Free

Time Commitment: 2-4 hours per week, depending on your level of commitment and number of contests available per week.

CodeChef offers various coding contests and problems that cover multiple topics and difficulty levels. With its weekly contests and competitions, CodeChef continues to be a valuable resource for students studying for the USACO to practice their programming and problem-solving skills. 

While CodeChef offers numerous problems of varying difficulty (ranging from levels 1-7), some of the challenges seen on CodeChef misrepresent what you may see on the USACO, so we suggest using CodeChef as a supplement to Codeforces and the USACO Training Gate. 

7. Competitive Programmer’s Handbook by Antti Laaksonen

Cost: Free

Time Commitment: Self-paced, but we recommend reviewing the content for ~5 hours per week.

The “Competitive Programmer’s Handbook” by Antti Laaksonen covers the USACO topics in more depth and thoroughly introduces competitive programming. Like Yao’s book, Laaksonen assumes the reader has some prior programming experience but no experience with competitive programming or the USACO. Here’s what you can expect from the handbook - deep dives into topics that appear frequently on the USACO, such as data structures, complete searches, graph traversal, tree algorithms, and much more. These topics not only appear frequently on the USACO, but they are also fundamental to building a stronger computer science background and could assist with building a career in computer science. 

While this resource is lengthy and lacks formal instruction, we still recommend highly-motivated students, especially those new to competitive programming, to skim through this book and apply the information presented to complete programming problems. 

8. AlphaStar Academy

Cost: $800-3200, depending on hours of instruction per session and location (online vs. in-person at Mission College, Cupertino, or AlphaStar Academy Main Office)

Time Commitment:
15-30 hours of instruction per week for 3 weeks + 15-16 hours of homework.

AlphaStar Academy is an educational institution that provides advanced training in science, technology, engineering, and mathematics (STEM) subjects and can be utilized to prepare for competitive programming and prestigious math competitions. AlphaStar has a strong history of success, boasting 306 USACO Platinum contestants, 65 USACO Finalists, and a remarkable 13 IOI Medalists over the past decade. Former USACO Finalists and IOI Medalists teach the academy’s courses, and they offer tons of resources and practice material, ranging from over 15 2-hour-long sessions and tests to thousands of analyzed USACO problems and tips to succeed. Throughout the academy, you will learn topics such as recursion, data structures, graph algorithms, and dynamic programming, which are fundamental for success on the USACO. 

However, the classes are relatively small (~30 students), so registration fills up quickly. In addition, there have been a few incidents where some instructors prioritized the stronger and “more-knowledgeable” students in the class over those who were somewhat struggling. Nonetheless, the academy continues to improve yearly, and they have a strong reputation in the realm of the USACO. Despite the relatively high cost of participation, the amount of resources and support offered by AlphaStar Academy makes it a fantastic resource for you if you’re looking to not only study for but also succeed in the USACO. 

9. V Planet Coding

Cost: $5500

Time Commitment:
7 weeks and includes self-paced guides

Founded and run primarily by Riya Arora, an MIT alum, 3x USACO Finalist, and 3x USACO National Camp coach, V Planet Coding takes a different approach to the USACO. They focus on teaching problem-solving skills rather than focusing on teaching purely content. Often referred to as “the ticket to platinum,” V Planet Coding offers 1-on-1 support and classes with USACO Finalists, and it covers all the topics necessary to succeed at the USACO and eventually make it to the USACO National Camp. 

Unfortunately, V Planet Coding is very expensive, costing upwards of $5500. Furthermore, the program only works with students who have already advanced to the USACO Silver division. Therefore, we only recommend this program if you have prior experience with competitive programming, have made it past the USACO Bronze division, and are highly motivated and interested in the olympiad. 

10. LeetCode

Cost: Free, but some features and solutions require a premium plan starting at $35/mo or $159/yr.

Time Commitment: Self-paced, but we recommend a few hours of practice per week, depending on your prior coding experience and familiarity with computational problems.

LeetCode provides a simple introduction to competitive programming and computer science, focusing on topics such as data structures and algorithms, which are helpful for the beginner stages of the USACO. In addition, LeetCode hosts weekly and biweekly contests to practice your programming and problem-solving skills. While this choice may be surprising to some, LeetCode offers an excellent introduction to competitive programming and allows beginners interested in studying for the USACO to get a feel for programming in timed environments. 

While LeetCode is a valuable platform for practicing coding and algorithmic problem-solving, it may not be the most natural resource for preparing for the USACO. Traditionally, LeetCode has been a platform for preparing for coding interviews rather than the USACO, so the problems tend to be shorter and test more of your critical thinking abilities. That being said, LeetCode can still be beneficial for improving your problem-solving skills, coding efficiency, and familiarity with various algorithms and data structures. Many of the algorithms and data structures covered on LeetCode are relevant and useful for USACO as well, and completing LeetCode problems and contests can help you practice coding in multiple languages and gain experience in solving algorithmic problems efficiently, which are valuable skills to possess in the USACO.  


The United States Computing Olympiad (USACO) is a challenging competition designed to promote and identify talented young programmers and foster their interest in computer science. It’s completely normal to struggle while preparing for and participating in the competition, so you should embrace a positive mindset, take frequent breaks, and stay confident in your abilities. With that being said, here are a few tips to help you study for the USACO:

1. Start early: The USACO covers a wide array of topics, so be sure to give yourself plenty of time to cover the material. We recommend you start studying at least a few months before the competition begins so that you can have adequate time to utilize the resources listed above fully. 

2. Practice: Practice, practice, practice, and then practice some more. Complete as many practice problems as you are comfortable with and participate in contests on Codeforces, LeetCode, and CodeChef to build a strong foundation and get a feel for programming under pressure. Through extensive practice, you will be able to more easily recognize patterns and come up with solutions to complex problems more effectively and efficiently.

3. Collaborate: Collaborate with other students interested in USACO and seek help from experienced programmers. Through online USACO forums, such as the ones available on the USACO Guide, you can review others’ work and share your work, allowing you to find and fill knowledge gaps, answer your questions, and make new connections. 

Veritas AI 

In the ever-evolving world of technology, it’s important to stay up-to-date with AI and its future uses. If you’re interested in learning the fundamentals of AI and applying it to real word projects, consider applying to the Veritas AI program. Students also get a chance to work on individualized, unique projects at the intersection of computer science. Last year, we had over 1000 students apply to learn AI with us and work on hands-on projects! You can find the application form here.

If you’re looking to build unique projects in the field of AI/ML, consider applying to Veritas AI! 


Veritas AI was founded by Harvard graduate students, and through the programs, you get a chance to learn the fundamentals of AI and computer science while collaborating on real-world projects. You can also work 1-1 with mentors from universities like Harvard, Stanford, MIT, and more to create unique, personalized projects. In the past year, we had over 1000 students learn data science and AI with us. You can apply here!

Image Source: USACO Logo

Waseem Ahmad

Waseem Ahmad is a rising first-year at Harvard University, interested in studying Computer Science and Statistics. He is passionate about artificial intelligence, mathematics, and helping students get into their dream colleges. In his spare time, he loves to read, surf the web, and play video games with his friends.

Previous
Previous

15 Computer Science Internships for High School Students

Next
Next

10 Best Computer Science Research Programs for High School Students