Over the next two days I'll be blogging live from St. Petersburg, Russia, the site of the 37th Annual IBM-Sponsored ACM ICPC World Finals. But before diving right into the contest, let's take a step back and see we got here . . .
The ACM International Collegiate Programming Contest (ICPC) traces its roots to a competition held at Texas A&M in 1970 hosted by the Alpha Chapter of the UPE Computer Science Honor Society. The idea quickly gained popularity within the United States and Canada as an innovative initiative to raise the aspirations, performance, and opportunity of the top students in the emerging field of computer science.
The contest evolved into a multi-tier competition with the first Finals held at the ACM Computer Science Conference in 1977. Operating under the auspices of ACM and headquartered at Baylor University since 1989, the contest has expanded into a global network of universities hosting regional competitions that advance teams to the ACM ICPC World Finals.
Since IBM became sponsor in 1997, ICPC participation has increased by more than 1,100%. This year, ICPC participation included 29,479 of the finest students and faculty in computing disciplines from 2,322 universities from 91 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 annual event is comprised of several levels of competition:
Local Contests — Universities choose teams or hold local contests to select one or more teams to represent them at the next level of competition. Selection takes place from a field of over 300,000 students in computing disciplines worldwide.
Regional Contests (September to December 2012) — 29,479 contestants from 2,322 universities in 91 countries on 6 continents competing at over 300 sites have been certified as of December 27, 2012. A total of 35,383 students competed in the ICPC and ICPC assisted contests combined. This year will have record participation.
World Finals (June 30 – July 4, 2013, St. Petersburg, Russia) — Hosted by St. Petersburg National Research University ITMO, one hundred and twenty (120) world finalist teams will compete for awards, prizes and bragging rights. These teams represent the best of the great universities on six continents - the cream of the crop.
The contest pits teams of three university students against eight or more complex, real-world problems, with a grueling five-hour deadline. Huddled around a single computer, competitors race against the clock in a battle of logic, strategy and mental endurance.
Teammates collaborate to rank the difficulty of the problems, deduce the requirements, design test beds, and build software systems that solve the problems under the intense scrutiny of expert judges. For a well-versed computer science student, some of the problems require precision only. Others require a knowledge and understanding of advanced algorithms. Still others are simply too hard to solve — except, of course, for the world's brightest problem-solvers.
Judging is relentlessly strict. The students are given a problem statement — not a requirements document. They are given an example of test data, but they do not have access to the judges' test data and acceptance criteria. Each incorrect solution submitted is assessed a time penalty. You don't want to waste your customer's time when you are dealing with the supreme court of computing. The team that solves the most problems in the fewest attempts in the least cumulative time is declared the winner.
The World Finals will take place from 10:00 a.m. to 3:00 p.m. local time on July 3. Before then, however, students will partake in numerous activities in St. Petersburg as they explore the city's rich culture and prepare for the intense competition.
Keep on stopping by for more!
Chas Kurtz is CACM's on-site blogger at ICPC.