ACM International Collegiate Programming Contest
ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered competitive programming competition among the universities of the world. The contest is sponsored by IBM. Headquartered at Baylor University, with autonomous regions on six continents, the ICPC is directed by Baylor Professor William B. Poucher, Executive Director, and operates under the auspices of the Association for Computing Machinery (ACM).
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 84 countries in 2005.
Since the beginning of IBM's sponsorship in 1997, contest participation has grown enormously. In 1997, 840 teams from 560 universities participated. In 2007, 6,700 teams from 1,821 universities participated. The number of teams keeps increasing by 10-20% every year and future competitions may be even larger.
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 4-day 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.
Contest rules 
The ICPC is a team competition. Current rules stipulate that each team consist of three students. Participants must be university students, who have had less than five years of university education before the contest. Students who have previously competed in two World Finals or five regional competitions are ineligible to compete again.
During contest, the 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 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.
For example, consider a situation when two teams, Red and Blue, tie by solving two problems each. The team Red submitted their solutions to A and B at 1:00 and 2:45 after the beginning of the contest. They had a rejected run on C, but it was ignored since they didn't solve C. The team Blue submitted solutions to problems A and C at 1:20 and 2:00 after the beginning. They had one rejected run on C. Then, the total time is 1:00+2:45=3:45 for team Red and 1:20+2:00+0:20=3:40 for team Blue. The tie is broken in favor of Team Blue.
Compared to other programming contests (for example, International Olympiad in Informatics), 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. This makes the time pressure even greater. Good teamwork and ability to withstand pressure is needed to win.
2004 World Finals 
The 2004 ACM-ICPC World Finals were hosted at the Obecni Dum, Prague, by Czech Technical University in Prague. 3,150 teams representing 1,411 universities from 75 countries competed in elimination rounds, with 73 of those teams proceeding to the world finals. St. Petersburg Institute of Fine Mechanics and Optics from Russia won, solving 7 of 10 problems. Gold medalists were St. Petersburg Institute of Fine Mechanics and Optics, KTH - Royal Institute of Technology (Sweden), Belarusian State University, and Perm State University (Russia).
2005 World Finals 
The 2005 world finals were held at Pudong Shangri-La Hotel in Shanghai on April 6, 2005, hosted by Shanghai Jiaotong University. 4,109 teams representing 1,582 universities from 71 countries competed in elimination rounds, with 78 of those teams proceeding to the world finals. Shanghai Jiaotong University won its second world title, with 8 of 10 problems solved.  Gold medal winners were Shanghai Jiaotong, Moscow State University, St. Petersburg Institute of Fine Mechanics and Optics (Russia), and University of Waterloo (Canada).
2006 World Finals 
The 2006 ACM-ICPC World Finals were held in San Antonio, Texas, and hosted by Baylor University. 5,606 teams representing 1,733 universities from 84 countries competed in elimination rounds, with 83 of those teams proceeding to the world finals. Saratov State University from Russia won, solving 6 of 10 problems. Gold medal winners were Saratov, Jagiellonian University (Poland), Altai State Technical University (Russia), University of Twente (The Netherlands).
2007 World Finals 
The 2007 ACM-ICPC World Finals were held at the Tokyo Bay Hilton, in Tokyo, Japan, March 12–16, 2007. The World Finals was hosted by the ACM Japan Chapter and the IBM Tokyo Research Lab. Some 6,099 teams competed on six continents at the regional level. Eighty-eight teams advanced to the World Finals. Warsaw University won its second world championship, solving 8 of 10 problems. Gold Medal Winners were Warsaw University, Tsinghua University (China), St. Petersburg Institute of Fine Mechanics and Optics (Russia), and the Massachusetts Institute of Technology (United States).
2008 World Finals 
The 2008 ACM-ICPC World Finals were held at the Fairmont Banff Springs Hotel, in Banff, Alberta, Canada, April 6–10, 2008. The World Finals was hosted by the University of Alberta. There were 100 teams in the World finals, out of 6700 total teams competing in the earlier rounds. The St. Petersburg Institute of Fine Mechanics and Optics won their second world championship. Massachusetts Institute of Technology, Izhevsk State Technical University, and Lviv National University also received gold medals.
2009 World Finals 
The 2009 ACM-ICPC World Finals were held in Stockholm, Sweden, April 18–22, at the campus of the hosting institution, KTH - The Royal Institute of Technology, as well as at the Grand Hotel, the Radisson Strand, and the Diplomat Hotel. There were 100 teams from over 200 regional sites competing for the World Championship. The St. Petersburg Institute of Fine Mechanics and Optics defended their title, winning their third world championship. Tsinghua University, St. Petersburg State University, and Saratov State University also received gold medals. The 2009 World Finals pioneered live video broadcasting of the entire contest, featuring elements such as expert commentary, live feeds of teams and their computer screens and interviews with judges, coaches and dignitaries. The event was broadcast online, as well as by Swedish television channel Axess TV.
2010 World Finals 
The 2010 ACM-ICPC World Finals were held in Harbin, China. The host is Harbin Engineering University. Shanghai Jiao Tong University won the world championship. Moscow State University, National Taiwan University, and Taras Shevchenko Kiev National University also received gold medals.
2011 World Finals 
The 2011 ACM-ICPC World Finals were held in Orlando, Florida and hosted by main sponsor IBM. The contest was initially scheduled to be held in Sharm el-Sheikh, Egypt in February, but was moved due to the political instability associated with the Arab Spring. Zhejiang University took first place with the University of Michigan at Ann Arbor, Tsinghua University, and Saint Petersburg State University taking 2nd, 3rd, and 4th respectively each receiving gold medals.
2012 World Finals 
The 2012 World Finals were held in Warsaw, Poland. They were inaugurated on 15 May and are hosted by University of Warsaw. St. Petersburg Institute of Fine Mechanics and Optics won their fourth world championship, the most by any University at the time. University of Warsaw, Moscow Institute of Physics and Technology, and Shanghai Jiao Tong University took 2nd, 3rd, and 4th place respectively each receiving gold medals.
|4||Russia||Saint Petersburg State University of Information Technologies, Mechanics and Optics||2012|
|3||China||Shanghai Jiao Tong University||2010|
|3||United States||Stanford University||1991|
|2||Poland||University of Warsaw||2007|
|2||Russia||Saint Petersburg State University||2001|
|2||Canada||University of Waterloo||1999|
|2||United States||California Institute of Technology||1988|
|2||United States||Washington University in St. Louis||1980|
|Winner||Country||Most Recent Win||No.of Yrs Participated|
See also 
- International Olympiad in Informatics, a similar competition for secondary school students.
- Google Code Jam, another programming competition
- Facebook Hacker Cup, another programming competition
- ICFP Programming Contest, another programming competition
- Internet Problem Solving Contest, another programming competition
- Competitive programming, a type of mind sport involved in programming competitions
- Online judge, a type of service to practice for programming contests and run them online (Wikipedia article includes links to several apps/systems)
- ShareCode ACM Online Judge, The ACM Online Judge and Social Network for acm lovers.
- PC², the Programming Contest Control System in support of Computer Programming Contest activities (used at ICPC World Finals until 2008)
- Kattis, KTH automated teaching tool (used at ICPC World Finals since 2009)
- SPOJ, an online judge system
- TopCoder, a company that administers programming competitions
- UVa Online Judge, an online judge system
- Project Euler, a websited dedicated to computational problems
- "Information - ACM International Collegiate Programming Contest". Archived from the original on 16 June 2008. Retrieved 2008-06-10.
- "2008 ICPC Regionals Eligibility Decision Diagram" (PDF). Retrieved 2008-06-10.
- "Queen's grabs glory: more than 70 teams from 31 countries gathered for the International Collegiate Programming Contest in Prague, hosted by the Association of Computing Machinery. Canadian universities took top honours.". Computing Canada. 2004-04-23. Retrieved 2008-06-09.
- Sullivan, Laurie (2006-04-05). "Computing Students To Test Math, Programming Prowess". Information Week. Retrieved 2008-06-09.
- "A Red Flag In The Brain Game". Business Week. 2006-05-01. Retrieved 2008-06-09.
- "IBM and Association for Computing Machinery Announce Global "Battle of the Brains" Software Competition". 2007-09-12. Retrieved 2008-06-09.
- "ICPC 2008 World Finals Results". 2009-04-01. Retrieved 2009-04-13.
- "ICPC 2009 World Finals Results". 2009-04-21. Retrieved 2009-04-22.
- "Students from St. Petersburg won the IBM sponsored contest ACM-ICPC". 2009-04-21. Archived from the original on 30 May 2009. Retrieved 2009-06-23.
- "ICPC 2011 World Finals Results". 2011-05-30.
Official website 
ICPC Blogs 
- ACMSolver - maintained by Ahmed Shamsul Arefin 
- Igor's UVa - maintained by Igor Naverniouk 
- Andrian Kurniady's ICPC event blog - maintained by Andrian Kurniady
- Codeforces blogs
ICPC Training 
- Algorithmist - maintained by Algorithmist Team
- Steven Halim's Method to solve ACM UVa OJ Problems - maintained by Steven Halim
- The Stony Brook Algorithm Repository - maintained by Steven Skiena.
- Programming Challenges - maintained by Miguel Revilla
- Light Online Judge - maintained by Jane Alam Jan
- UVa Online Judge Board - maintained by Universidad de Valladolid Online Judge
- Caribbean training platform - maintained by the COJ Development Team (CDEVT)
- CodeChef - maintained by Directi Group