What do you get when you combine three students, one computer, five hours, and one problem set? For three University of Chicago students, it's a chance to compete in the finals of the world's oldest and largest programming contest — the ACM International Collegiate Programming Contest 2014.
The annual competition pits the brightest minds in computer science against one another, in teams of three, with each team working furiously around a single computer to complete a set of eight or more programming challenges. The UChicago students, Jeremy Archer, Jake Koenig, and Harrison Weigel, members of the programming team "Conjurers of Cheap Tricks," will travel to the competition — to be held June 22-25 in Ekaterinburg, Russia — to put their problem-solving skills to the test.
"Teams that make it to the World Finals really are the best of the best of the best," says Borja Sotomayor, the team's coach, associate director for technology and lecturer in computer science. Competitors in the World Finals are an elite group of 112 teams, selected from a pool of more than 10,000 teams from 94 countries. The UChicago team was one of only 19 U.S. teams to earn a spot in the finals.
In order to make it to the World Finals, the team had to prevail in a series of preliminary competitions. Each level of the competition is more challenging than the last, but the format is the same: three students, one computer, five hours.
The first round was the qualifying contest for UChicago teams, held in May 2013, in which Conjurers of Cheap Tricks took first place. The next level of competition was the Mid-Central USA Regional Contest, held in November, at which 138 teams vied for three slots at World Finals. Conjurers of Cheap Tricks came in second place, making this the sixth year in a row that UChicago has qualified for the World Finals of the ICPC.
The teams advancing to the World Finals also took part in the North American Invitational Programming contest, hosted at UChicago in Harper Library on March 28-30. Twenty-one teams participated in the competition, which serves as a practice run for the World Finals as well as a chance to win prizes and meet other students. By contest's end, Harper Library's Cathey Learning Center was peppered with brightly colored balloons — the ICPC's signal that a team has correctly answered a question.
The team members sacrificed precious weekend hours to practice for the competitions. Under the guidance of Sotomayor and assistant coach Denis Pankratov, graduate student in computer science, the team tackled problems from previous competitions, analyzing their performance and perfecting their techniques.
Problems posed in the competition tend to appear simple, but require meticulous planning to craft code efficient enough to solve the problem in a timely fashion — one of the requirements for receiving credit for a solution. "The problem is describing a way that you might solve them that doesn't require billions of computations," Koenig says.
Participating in ICPC has practical benefits for the students. It sharpens the students' programming skills and prepares them for careers in software development. "When students go off into the job market and have to find jobs, these are the kinds of skills that are actually pretty marketable," Sotomayor says.
But most importantly, the students say, competing in ICPC is just plain fun. "I sort of like the time pressure and the stress of working on these difficult problems in a limited amount of time," Koenig says. "What's not fun about taking a test with two friends?"