The United States of America Computing Olympiad is a competition testing various programming skills, according to junior Matthew Ho.
“It is an online programming competition that tests people’s knowledge of algorithms and data structures,” Ho said. “It is held four times a year at several different levels.”
Every month from December to March, high schoolers are able to compete against each other in coding competitions throughout the country. Each competition tasks participants with creating their own code that is tested for accuracy.
“In each competition, you solve three programming problems within four hours (you can pick any four-hour slot from a four-day period),” junior and president of Paly’s USACO club Franklin Wang wrote in an email. “Whenever you submit a solution for a problem, their (USACO’s) servers will run your code on a set of test cases and your score for that problem is how many of those test cases you got right. And your solution is a program written in any of their supported languages (most people use C++ or Java, however).”
USACO offers competitions of varying levels of difficulty in order to ensure students of all levels can participate. Students can earn their way into more difficult levels of competition by reaching certain scores.
There are four divisions: Bronze, Silver, Gold, Platinum (in order of increasing difficulty). For each division, there is a different set of problems. When you first do USACO, you start out in Bronze. Then, if you get a high enough score, you are promoted to Silver and then in the next competition, you would compete in the Silver contest. And if you get a good enough score on Silver you will be promoted to Gold and so on. ” wang said.
According to Wang, there are two main components a student must feel comfortable performing for the competition.
“There are essentially two aspects to solving USACO problems, besides knowing how to program,” Wang said. “First, learning algorithms, and second, learning when and how to apply those algorithms.”
According to sophomore Raj Bapat, the competitions can take a significant amount of time to prepare for in order to succeed.
I usually spend 10 to 12 hours per week. Although now it is more like seven to eight because sophomore year takes up way more time than freshman year,” Bapat said.
According to Wang, the more a student practices, the easier it gets. Wang said participants may start to notice cues that indicate when to apply a certain algorithm.
“For harder divisions, oftentimes you need to make an ‘observation’ that simplifies a problem to make it easier to solve,” Wang said. “This observation-making skill just takes a lot of practice to develop. Last month I think I practiced five to eight hours per week.”
Wang said it is beneficial to have a club dedicated to the USACO, as members are able to practice and bounce ideas off each other.
“Usually we either go over some algorithm/topic or a previous problem,” Wang said. “We usually don’t have enough time to actually code it up on a computer, so we draw out the algorithm or solution on the whiteboard.”