6/23/2020 12:11:04 PM
For the 11th time in the past 12 years, a University of Illinois team has qualified for the International Collegiate Programming Contest (ICPC) World Finals. Because of the pandemic, instead of traveling to Moscow this June for the competition, the Illinois Must Pass team members and coaches will log in an ICPC-sponsored forum to share problem-solving strategies and insights with other finalists, competition alumni, and industry representatives on June 27.
They will travel to Moscow in June 2021 to participate in the rescheduled ICPC World Finals. In the meantime, the team—Yen-Hsiang Chang, Zihan Wang, and Zhuolin Yang—have been sharpening their programming skills through online practices each week.
The ICPC World Finals is an intense five-hour contest that involves writing algorithms to solve 12 problems from a range of CS-related fields, including data structures, computational geometry, and combinatorial optimization. For example, teams could be tasked with helping a small, irregularly shaped island nation fit the longest possible runway across its limited land mass in order to increase tourism.
“At ICPC, you’re not told how to solve the problem at all,” explained Illinois CS faculty member Mattox Beckman, who serves as head coach for the team. “There may be three or four algorithms that could solve the problem, but only one of them will do it in the time constraints you are given.”
In addition, Beckman said, teams do not receive any feedback on wrong answers. “It either works or it doesn’t, and no one is there to tell you why,” he said. “This is what happens in the real world.”
The road to the 2020 finals included two rounds of qualifying competitions. Although the team’s 10th place finish in the North American championship earned them a spot at the finals, the team was not satisfied with its performance.
“We think there are a lot of things we can improve before the World Finals,” said Chang, an Illinois ECE junior. “For example, there were some math problems that we could not solve at the North American Championship, so we’re trying to improve our math skills.”
This past spring, Yang took combinatorial optimization and graph theory courses and looks forward to applying this new knowledge to next year’s competition.
“They were challenging and inspiring [courses],” said Yang, a first-year Illinois CS doctoral student. “I think they’ll help in 2021.”
According to Beckman, in the last few years the department has created a culture and infrastructure that supports competitive programming.
“It started with CS graduate student Uttam Thakore and fellow graduate students taking ownership of Illinois ICPC by starting a one-credit-hour class that taught algorithms students might see at competitive programming competitions,” said Beckman.
Since then, Beckman has enhanced and expanded the content, making it a three-hour-credit course, which about 20 students take each semester.
Another competitive programming preparation option for students is the Illinois Programming League (IPL), a student-run Association for Computing Machinery Special Interest Group that hosts weekly algorithmic programming contests and explains how to solve the problems. IPL is sponsored by Caterpillar.
“I participated in IPL since it was founded my freshman year,” said Illinois CS senior Wang, who serves as an IPL officer. “This was my first introduction to competitive programming, and it was very beginner-friendly. I started with little knowledge and learned a lot from it.”
According to Beckman, the course and IPL benefit all the students who participate—not just the few who qualify for the ICPC competitions.
“Students who participate report being more confident and faster with their programming,’ said Beckman. “When I started [as coach], I thought competitive programming was something people do for fun, but it actually improves the quality of the engineers we are releasing into the world.”
The competitive programming experience also comes in handy in students’ job search.
“I experienced several interviews and the interview algorithm problem seemed to be trivial after I [solved] so many competitive programming problems,” said Yang.
“The problems in ICPC or competitive programming, in general, help a lot in interviews,” said Wang. “Most companies recognize ICPC, so if you get good scores on it or good scores in similar competitive programming competitions—Google Codejam, Google kickstart, Facebook Hackercup, for example—it would be a plus on your resume.”
In addition to Thakore, graduate students Jingbo Shang, Zhengkai Wu, and Victor Gao have contributed to the success of the Illinois team by serving as coaches.