The ACM International Collegiate Programming Contest (ICPC) is a multitier, team-based, programming competition operating under the auspices of ACM and headquartered at Baylor University.
The contest involves a global network of universities hosting regional competitions that advance teams to the ACM-ICPC World Finals. Participation has grown to several tens of thousands of the finest students and faculty in computing disciplines at almost 2,534 universities from over 101 countries on six continents.
The contest fosters creativity, teamwork, and innovation in building new software programs, and enables students to test their ability to perform under pressure. Quite simply, it is the oldest, largest, and most prestigious programming contest in the world.
The ACM International Collegiate Programming Contest, ICPC, traces its roots to a competition held at Texas A&M University in 1970 hosted by the Alpha Chapter of the Upsilon Pi Epsilon Computer Science Honor Society (UPE). The contest evolved into its present form as a multi-tier competition in 1977, with the first Finals held in conjunction with the ACM Computer Science Conference.
From 1977 to 1989, the contest included mainly teams from U.S. and Canada. Headquartered at Baylor University since 1989, with regionals established within the world’s university community, operating under the auspices of ACM, and with substantial industry support, the ICPC has grown into a worldwide competition with teams from 91 countries in 2013. Since the beginning of IBM’s sponsorship in 1997, contest participation has grown enormously.
The World Finals of the ACM International Collegiate Programming Contest World Finals, ACM-ICPC World Finals, is the final round of competition. Over its history it has become a multiple event held in the finest venues worldwide. UPE recognizes all of the regional champions at the event. Recent World Champion teams have been recognized by their country’s head of state and at the annual ACM Awards Ceremony.
During the contest, teams are given 5 hours to solve between 8 and 12 programming problems (with 8 typical for Regionals and 10 for Finals). They must submit solutions as programs in C, C++ or Java. Programs are then run on test data. If a program fails to give a correct answer, the team is notified and can submit another program.
The winner is the team, which correctly solves the most problems. If necessary to rank teams for medals or prizes among tying teams, the placement of teams is determined by the sum of the elapsed times at each point that they submitted correct solutions plus 20 minutes for each rejected submission of a problem ultimately solved.
Compared to other programming contests, the ICPC is characterized by a large number of problems (8 or more problems in just 5 hours). Another feature is that each team can use only one computer, although teams have three students from the same university. This makes the time pressure even greater. Good teamwork and ability to withstand pressure is needed to win.