United States of America Computing Olympiad
Encyclopedia
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 five languages, C
, C++
, Java
, Pascal
, and Python
, 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 October. The USACO was founded in 1993 by Don Piele and is currently maintained by head coach Rob Kolstad.
which are designed to develop one's skills in programming solutions to difficult and varied algorithm
ic problems at one's own pace. In addition to around 100 problems, there are texts on programming techniques such as greedy algorithm
s, 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.
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 run time 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.
ed prior to that). Like the internet competitions, the US Open is divided based on divisions, from Bronze 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.
(IOI). Around 15 people are invited to the camp, which is usually held in late May or early June. The training camp was held at the University of Wisconsin–Parkside for many years; it was held at Colorado College from 2005-2007, and then moved to Clemson University
in 2010.
To qualify, one must be a secondary school student in the U.S., 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, in particular those who are selected for the delegation to the IOI.
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...
competition aimed primarily at secondary school
Secondary education
Secondary education is the stage of education following primary education. Secondary education includes the final stage of compulsory education and in many countries it is entirely compulsory. The next stage of education is usually college or university...
students in the United States
United States
The United States of America is a federal constitutional republic comprising fifty states and a federal district...
. Participants of the USACO submit programs in one of five languages, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
, and Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, 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 October. The USACO was founded in 1993 by Don Piele and is currently maintained by head coach Rob Kolstad.
Training pages
The USACO contains several training pages on its websiteWebsite
A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet...
which are designed to develop one's skills in programming solutions to difficult and varied algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
ic problems at one's own pace. In addition to around 100 problems, there are texts on programming techniques such as greedy algorithm
Greedy algorithm
A greedy algorithm is any algorithm that follows the problem solving heuristic of making the locally optimal choice at each stagewith the hope of finding the global optimum....
s, dynamic programming
Dynamic programming
In mathematics and computer science, dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems exhibiting the properties of overlapping subproblems which are only slightly smaller and optimal substructure...
, shortest path
Shortest path problem
In graph theory, the shortest path problem is the problem of finding a path between two vertices in a graph such that the sum of the weights of its constituent edges is minimized...
, 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.
Internet competitions
There are six InternetInternet
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...
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 run time and memory usage
Computer storage
Computer data storage, often called storage or memory, refers to computer components and recording media that retain digital data. Data storage is one of the core functions and fundamental components of computers....
. 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.
US Open
In addition to the six internet competitions, a seventh competition, the US Open, is held annually in late Spring. The competition is touted as 'the USACO's flagship tournament' and is a four-hour competition consisting of three or four questions. The US Open has been unproctored since 2009 (it was proctorProctor
Proctor, a variant of the word procurator, is a person who takes charge of, or acts for, another. The word proctor is frequently used to describe someone who oversees an exam or dormitory.The title is used in England in three principal senses:...
ed prior to that). Like the internet competitions, the US Open is divided based on divisions, from Bronze 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.
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 InformaticsInternational Olympiad in Informatics
The International Olympiad in Informatics is an annual computer science competition for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgaria....
(IOI). Around 15 people are invited to the camp, which is usually held in late May or early June. The training camp was held at the University of Wisconsin–Parkside for many years; it was held at Colorado College from 2005-2007, and then moved to Clemson University
Clemson University
Clemson University is an American public, coeducational, land-grant, sea-grant, research university located in Clemson, South Carolina, United States....
in 2010.
To qualify, one must be a secondary school student in the U.S., 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
Ceremony
A ceremony is an event of ritual significance, performed on a special occasion. The word may be of Etruscan origin.-Ceremonial occasions:A ceremony may mark a rite of passage in a human life, marking the significance of, for example:* birth...
recognizing the participants, in particular those who are selected for the delegation to the IOI.
See also
- Central European Olympiad in InformaticsCentral European Olympiad in InformaticsThe Central European Olympiad in Informatics is an annual informatics competition for secondary school students. Each of the parcitipating central European countries sends a team of up to four contestants, a team leader and a deputy team leader. The contestants compete individually, i.e...
- International Olympiad in InformaticsInternational Olympiad in InformaticsThe International Olympiad in Informatics is an annual computer science competition for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgaria....
- International Science OlympiadInternational Science OlympiadThe International Science Olympiads are a group of worldwide annual competitions in various areas of science. The competitions are designed for the 4-6 best high school students from each participating country selected through internal National Science Olympiads, with the exception of the IOL,...
- Canadian Computing CompetitionCanadian computing competitionThe Canadian Computing Competition is a national programming competition for secondary school students in Canada. Sponsored by the University of Waterloo, the CCC takes place once a year. Stage 1 is a written at high schools and can be written in the programming language of the students' choice,...