Flocking to Russia from around the globe, teams battle to prove they're the most elite in their fields. Many competitors, who have trained tirelessly, dream of being snapped up by the pros. If this scenario makes you think of the Sochi Winter Olympics, think again: the International Collegiate Programming Contest (ICPC) also draws competitors from many countries. It's where budding computer scientists aim for programming glory.
This year's ICPC World Finals will take place June 22-26 at Ural Federal University in Ekaterinburg, Russia, with 122 teams competing. And once again, a team of UW-Madison computer sciences students and a recent graduate will enter the fray. Andrew Morgan (B.S.'13, Computer Sciences and Mathematics), Hongkai Pan and Baasanbat Purevjal (who call their team "Connecting the Dots is NP-hard") will make the trek to Russia.
Professor of Computer Sciences Dieter van Melkebeek coaches this crew of tech-savvy Badgers. He's proud to note that UW-Madison is the only school in North America to have advanced from regional to international competition in each of the last 13 years — an impressive streak.
"I enjoy working with the students. They're very motivated. It's a serious time commitment for them," says van Melkebeek, an expert in the theory of computing and computational complexity who has coached UW-Madison teams for this competition since 2001.
"I'm hoping we can be the best among the U.S. teams" in the 2014 world finals, he says.
Computer sciences alumnus Scott Diehl (Ph.D.'08) and current graduate students Jay Yang and Saurabh Aggarwal have helped van Melkebeek train the programming team during the 2013-14 academic year.
Diehl, who taught for two years at Siena College in New York, returned to Madison to become a software developer for Google's Madison offices. While teaching at Siena, he coached its programming teams, and he was happy to become involved with the UW-Madison team again at van Melkebeek's invitation. Diehl had both competed on a team and helped coach during his time as a UW-Madison student.
Training for competition helps students grow their skills in a number of areas, says Diehl. They learn how to communicate effectively, work as a team and hold up under pressure. They also develop as computer scientists.
"It's a really great opportunity for students to develop algorithmically — and to write high-performance code that doesn't just work, but works quickly," says Diehl. "We definitely have algorithm courses [in the department], but often they don't have a sizable component that requires [students] to write a large volume of code that exercises those algorithms in an efficient way."
Morgan, a December 2013 graduate, is excited about his team's upcoming international trip. He plans to begin graduate school in the fall, and the competition will certainly keep his skills sharp. "I enjoy problem solving," says Morgan.
Competing in the ICPC is also a prestigious item to include on one's résumé. It is the oldest, largest and most famous of programming competitions, existing in its current format since 1977. It was begun by the Association for Computing Machinery (ACM), the leading professional organization in computing.
More than 30,000 students worldwide have participated in the current competition cycle. These students represent more than 2,000 universities in 94 countries on six continents. A system of regional contests narrows down the field of competitors advancing to the world finals.
One part of the regionals for north-central North America — the region including Wisconsin — was held in November at Epic Systems Corporation in Verona, Wis. UW-Madison teams took third, fourth and 12th place among 260 teams in the region, and all UW-Madison teams placed in the top third of competitors. Epic will support the team advancing to the world finals by funding its travel to Russia.
Tech-industry employers often take note of student participation in competitions like the ICPC.
"Companies often look for participation, and doing very well in these kinds of contests is seen as a good marker for being likely to succeed in the industry," says Diehl. "It gets recruiters' attention and the types of problems you learn to solve quickly are similar to some of the problems that are popular in technical interviews at companies."
Indeed, Morgan has already found this to be true.
"In an interview, one person asked me to solve a really simple problem, but without the primary tools you usually use. You had to go back to the fundamentals of CS to know how to do it, and apparently a lot of people don't remember that!" Morgan says with a laugh. "Training for the ICPC has helped me remember those fundamentals."