About

The International Collegiate Programming Contest (ICPC) is the oldest and largest programming contest in the world. Each year, the ICPC attracts more than 10,000 teams around the world which compete in various regional contests in the Fall to earn one of the coveted 140 spots at the World Finals.

The University of Chicago competes in the Mid-Central USA Regional Contest, and is typically allocated three or four slots at the regionals. The University of Chicago Qualifying Contest is an official ACM/ICPC contest that determines the University of Chicago teams that will advance to the regional.

However, ICPC in general (and this contest in particular) is also a fun way for students to improve tbheir programming and problem-solving skills. Plus, since ICPC is a world-renowned competition, students who have participated in it (even if they didn’t make it to the World Finals) have usually had an easier time finding a job after graduation.

What exactly does a “programming contest” involve?

ICPC-style programming contests are five-hour on-site contests where each team (composed of three students) must solve 8-11 programming problems (for example, see the problem set from the 2017 tryouts). Each team has a single computer, with no access to the Internet and only limited access to reference materials. To perform well on a contest, teams must have not just strong coding skills but also a solid grasp of Algorithms, Data Structures, and other foundational Computer Science topics.

Throughout the contest, teams submit their solutions to an automated judging system that will automatically determine whether the team’s solution is correct or not (this system accomplishes this by running the team’s solution through a variety of automated tests). Teams are ranked first on the number of problems solved, and then on the time it took them to solve a problem (with time penalties applied for submissions of incorrect solutions).

Throughout the contest, teams can see a scoreboard showing each team’s rank and the problems that they have solved (for example, see the scoreboard from the 2017 tryouts). The scoreboard is an important part of the team’s strategy, as it allows them to see the problems that other teams are focusing on (e.g., if most of the teams have solved the same problem, that usually indicates that is an easy problem). An hour before the end of the contest, the scoreboard is frozen, which means teams won’t know the final ranking until the scoreboard is “thawed” at the closing ceremony, adding some suspense to the end of the contest.