Breakout Mentors prides itself on personalizing coding education for each student’s interests and abilities. This can be 8 year-olds doing Scratch drag-and-drop programming, but also high school students who have been coding for years.
This year we are providing one-on-one training to a dozen high school students in USACO programming competitions. This is perfect if your son or daughter has been coding for years and is up for a fun challenge.
What is USACO?
USACO stands for United States of America Computing Olympiad, and it is a series of contests ultimately used to select high school students to represent the USA in international competition. However, any age can participate and advance the prestigious levels from Bronze, Silver, Gold, to Platinum. Only a few thousand US high school students each year reach Silver and only a few hundred reach Gold!
If you are familiar with the IMO (International Mathematics Olympiad) or the AMC contests (American Mathematics Competitions) USACO is the equivalent for programming. It is an impressive measuring stick to prove your coding and Computer Science knowledge to colleges and internships.
What is a Programming Contest?
Programming contests have various formats and flavors. USACO is an algorithmic contest, more commonly known as the broader term “competitive programming”.
Competitive programming consists of a wide variety of topics that test knowledge of algorithms and data structures. You are given a set of problems to solve, for example:
- Given a list of numbers, output the number of even numbers.
- Given a ledger of strings denoting the name of a voter, and the name of a candidate, output which candidate has the most votes.
- You are given a list of pairs of names that denote friendships of people. If person A is friends with person B, and person B is friends with person C then person A is also friends with person C. Answer a list of Q questions of the form, given two people X and Y, are they friends.
As these puzzles become harder, you face the challenge of creating a program that can give the answer fast enough. Almost any problem can be solved with a brute force solution — but you must learn how to analyze the speed of your program and ensure it will pass in a time limit by using more efficient algorithms like binary search.
These contests are exhilarating to compete in, and are fun to collaborate with friends on solving interesting problems. There’s no better feeling than seeing the green “Accepted” result come back after hours of thinking and coding!
Overview of USACO
There are 4 USACO contests each year which can be done online in the comfort of your own home. The first 3 are “monthlies” and are in December, January, and February. Each contest is 4 hours long, and usually consists of 3 problems to solve. The 4th contest is called the “US Open” and is in March. The only difference with this contest to the others is that it is 5 hours long, and the 3 problems are slightly harder.
Trying It Out
If these kinds of puzzles seem interesting to you and you enjoy being part of a tight knit community with tons of contests, give it a try. We prepared a list of problems specifically for people who have never tried a competition before.
- Create a Codeforces account. Codeforces is another online platform that has thousands of problems, learning materials, and live contests a few times a week.
- Email email@example.com your Codeforces username. This is so that we can invite you to try out some custom problems we’ve put together!
- You will receive an email once you’ve been given access. The email will contain a link to the contest.
- Click ‘Enter >>’ to view the list of problems. Click on a problem to read and then submit a solution in any programming language.
- If you get stuck or have issues, please email firstname.lastname@example.org.
The first USACO contest is coming up in December. If you’re interested in really diving in, we have excellent mentors for Bronze through Platinum.
Breakout Mentors will also run our own free mock contest in November to help you be ready. Join our email list to receive the announcement.