The United States of America Computing Olympiad (USACO) is a computer programming competition aimed primarily at secondary school students in the United States. Participants of the USACO submit programs in one of four languages, C, C++, Java, and Pascal, to various competitions held throughout the year. There are currently three divisions of the USACO: Bronze (easiest but requires some programming ability), Silver, and Gold (hardest). Participants advance through the divisions by performing well in their current division, or in a qualifying round which is usually held in November. The USACO is currently maintained by head coach Rob Kolstad.

Parts of the USACO

The Training Pages

The USACO contains several training pages on its website which are designed to develop one's skills in programming solutions to difficult and varied algorithmic problems at one's own pace. In addition to around 100 problems, there are texts on programming techniques such as greedy algorithms, dynamic programming, shortest path, and many others. Enthusiasts find the training pages so useful that people from other countries use them to prepare for their own national Olympiads; those from other countries in fact outnumber U.S. participants.

The Internet competitions

There are six Internet competitions held each year, each of which consists of three or four problems to be completed in a time span of three hours. These competitions are unproctored; however they are monitored strictly and users caught attempting to cheat are banned for life.

In addition to testing solutions based on correctness of answers, additional restrictions include runtime and memory usage. Scores are computed based on number of correct answers, with weighted values; harder problems and test cases are given more weight than easier ones. Overall these contests are designed to be very hard, and as such have a low average score compared to other programming competitions. This way, the top scorers can be more easily distinguished.

US Open

In addition to the six internet competitions, a seventh competition called the US Open is held annually in late Spring. The competition is touted as 'the USACO's flagship tournament' and is a four-hour proctored competition consisting of three or four questions. Like the internet competitions, the US Open is divided based on divisions, from Level 1 to Gold. The US Open is similar in difficulty to the Internet competitions and is scored in the same manner. Performance in the US Open is one of the key elements in determining the invitees to the USACO training camp, although a solid performance in the internet competitions also plays a major role.

The Training Camp

The USACO training camp is a week-long program held to determine which four students will represent the American team at the International Olympiad in Informatics (IOI). Around 15 people are invited to the camp, which is usually held in late May or early June in Colorado Springs, Colorado.

To qualify, one must have scored highly on the Internet contests and/or the US Open, and be far along in the training pages. At the camp, contests are held in the morning, followed by discussion of solutions. In the afternoon, the students engage in various recreational activities. There are also a few lectures on different areas of computer science and programming. At the conclusion of the camp, there is a ceremony recognizing the participants, and in particular those who are selected for the delegation to the IOI.

Past Contests

October 2007
November 2007
December 2007
Special Chinese Contest - December 2007
January 2008
February 2008
March 2008
Open 2008

October 2008
November 2008
December 2008
Special Holiday Contest 2009
January 2009
February 2009
March 2009
Open 2009

October 2009
November 2009
December 2009
Holiday Bonus Contest 2010
January 2010
February 2010
March 2010
Open 2010

October 2010
November 2010
December 2010
January 2011
February 2011
March 2011
Open 2011

November 2011
December 2011
January 2012
February 2012
March 2012
Open 2012


Training Pages
Contest Gate

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License