Listen to KTBYTE students discuss their USACO experiences:
The USA Computing Olympiad, more commonly known as USACO, is a series of annual competitions aimed at high-school aged students. The competitions are online and are usually taken from home. Four competitions take place every year, starting with the Bronze entry-level competition and progressing to Platinum.
The competitions measure two broad skills – algorithm testing and implementation. Once a student succeeds in a lower level, they gain access to the next level, both in that year and beyond. In a panel with KTBYTE, students with various levels of USACO success discussed the competition, minimum requirements, tips for success, benefits, and their personal experiences.
Each competition is completed over the course of four hours, apart from USACO-Platinum which allows five. USACO is not a general test of computer science knowledge or overarching computational themes. Instead, students are given a generous time-frame to answer three specific problems, testing their ability to generate a solution using algorithmic programming skills.
“The goal of USACO is always to find the most efficient algorithm.”
For each problem, participants are given a prompt to solve, a set of inputs, and some test cases. They must figure out a fast, accurate algorithm that attains a working output. While there are multiple ways to achieve correct answers, final scores are based on how many test cases work with participants’ algorithms, meaning some answers may be superior to others.
All participants start at USACO-Bronze, which focuses on a base understanding of language-coding. When asked about suggested age and experience levels, one student said, “It doesn’t really matter what your age is, if you’ve done programming you can probably make it through Bronze.” In USACO-Silver problems, participants must normally implement one standard algorithm, usually something like a binary search. In USACO-Gold, it can be one or two algorithm implementations that are more complex, such as dynamic 2D/3D programming.
As for USACO-Platinum, panelists described the questions as “insanely hard” – hopeful participants require a broad and sharp understanding of algorithms. This is for good reason: the best USACO participants are chosen to represent their country in the IOI (International Olympiad in Informatics). To decide who is chosen, USACO chiefs read the submissions of the top-scoring applicants, the best of whom go to a camp where they experience rigorous further competition.
By specifically testing problem-solving skills, USACO differs from broader computer science competitions like ACSL. Panelists said that the amount of syntax needed to complete USACO is also lower than ACSL. Despite this, potential participants should not be fooled into thinking it’s easy. Its reliance on algorithms means that the panelists found it more difficult than, say, AP Computer Science exams.
“The biggest difference with USACO is that it’s a lot harder than other competitions.”
While this makes the competition more challenging, the panelists agreed that it also made it more fun. The authors take steps to keep USACO enjoyable, the panelists shared a laugh when recalling some recurring characters: “One of the [problems] was about farmer John being into classical architecture and wanting to build a circular barn… they have weird hobbies in these problems.”
Problem solving is not easily revisable, so there’s less preparation needed than in other academic competitions. This is especially true of the lower levels. The panel estimated 15 minutes per day would be fine for Silver. For Gold, participants need to deal with more complex topics, but “as long as you have a firm understanding of [algorithms], you can do pretty well in the contest”.
“If you want to make it to Silver or Gold, you don’t need that much time commitment.”
On a similar note, participants don’t need to be math geniuses, as long as they know enough to grasp the algorithms: “The math knowledge you need for USACO is a lot less heavy than you would need for other dedicated competitions in these areas.” There is no need to study calculus or trigonometry – time would be better spent growing more comfortable with the basics.
While acknowledging that the competition was “very different to anything you’d learn in standard computer science classes”, panelists stated that USACO hopefuls would be wise to take a specialized class. Their classes not only taught them useful tips but also helped them recognize “traps”. Two panelists compared experiences of their first competition attempts. One answered, “I took a class before even attempting USACO […] so I did very well in my first competition”, whereas the other had not, and ended up “really confused”. So he went away, took a class, and repeated the competition more successfully the following year.
“If I hadn’t taken the class, even if I’d studied online, I definitely wouldn’t have had an idea of the tricks I’d need to be applying to actually succeed in the test.”
Beyond classes, the panelists recommended that potential applicants review past USACO problems in their online archive. Doing so helped the applicants to recognize similarities between questions: “You can say, oh hey, that looks like the one from 2012 that had something about cows in space.” Conversely, they didn’t find USACO’s online training courses useful, adding that they weren’t very beginner-friendly.
The students had plenty of advice for the competition itself. They said that while the competition can be completed in a multitude of coding languages, it’s recommended that participants don’t use Python because it’s slow. Similarly, they advised against Java’s Scanner.
“I learned a lot through KTBYTE’s class and other online resources.”
On a less technical level, students recommended taking short breaks for coffee, a snack, or a brief walk. This gave their brains a well-needed reprieve and allowed time for subconscious processing. They also cited subconscious processing as a reason to read every question very carefully at the beginning of the allotted time-slot. Furthermore, to help visualize problems, having paper to hand is essential (“unless you’re really great at using Paint!”).
All the students spoke fondly of USACO, both for the enjoyment of the competition and for its real-life consequences. One spoke of the thrill of solving computer science problems against the clock. Another spoke of the thrill every time she attained a green check mark, indicating test-case success. A final panelist added that while these two feelings were great, nothing compares to the feeling of advancing to the next level.
“It trains you to learn the fastest way to solve a problem.”
The practical benefits of USACO are substantial, especially for computer science careers. Panelists compared the problems tested in USACO to those facing major tech companies, giving the example of the Google search algorithm’s ability to instantly provide billions of results ranked on individual appropriateness.
One student had already found a practical application for what he had learned; the development of a navigation system for his high-school using the pathfinding algorithms he’d honed in USACO Silver.
We are proud to share with you the accomplishments of our student, Jason Zhao, one of KTBYTE’s advanced teaching assistants. Jason moved from China to […]
In a panel discussion, a group of current and previous KTBYTE students heading to Cornell, Harvard, Johns Hopkins, MIT, Princeton, and Yale answered questions about learning […]