By Katherine Connor
A team of UC San Diego computer science students has qualified to compete in the World Finals of the International Collegiate Programming Contest (ICPC), the world’s preeminent programming and coding competition. The students clinched a spot when they placed sixth in the ICPC North American Championship in August 2021.
Computer science PhD student Zihan Wang, master’s student Shuxin Chen, and undergraduate Haihao Sun will represent UC San Diego at the World Final, tentatively scheduled for March 2022.
During an ICPC competition, teams of three students are given a set of 10 to 13 algorithmic programming problems. They have five hours, and one computer, to solve as many problems as they can in the shortest amount of time.
“It really has some strategy to it,” said Wang. “We have to divide the problems amongst ourselves and find the most useful problem for each person to work on. And we need to help each other debug; some people may be even better at debugging than at other types of problems. And there’s just one computer so we also need to divide the time, since some people may need to brute force code, and others may need to use their time to debug their code, so we need to plan it out.”
Though the North American Championships were held remotely, removing some element of that strategy since all three team members had access to a computer, the students say the competitions are both exciting and nerve-racking.
“This competition is rewarding and very exciting,” said Wang. “In our mind this kind of competitive programming is really like a sports competition. We’re very excited, our main goal is to get the highest rank we can.”
The students train together every week, allotting three to five hours to work through a sample problem set similar to what they might encounter in a competition. At UC San Diego, there is an ICPC club, where as many as 20 students will participate weekly in these practice sessions. The club holds selection contests to help students form teams, and decide which teams will get to compete at various challenges.
While some members of the ICPC club are competitive programmers, like Wang, Chen and Sun, many others use the practice problems as a way to strengthen their programming skills for internship or job interviews. During club meetings, there are always problems at a variety of skill levels, to support both groups of participants.
“The skills I’ve picked up in the competition have helped me learn programming and development skills very quickly,” said Sun. “As a participant in ICPC, I think I’ve learned to write code and debug more quickly than other people.”
Wang said having this student club as a resource is hugely beneficial; many schools don’t have an ICPC club, and students are left to find their own teammates, register for competitions and train on their own. Having an organized structure to facilitate these connections not only gives the students more time to actually train, but also helps foster a tighter community.
“The community at UC San Diego really is a great community which cultivates a lot of great engineers, great problem solvers,” said Sun.
Jingbo Shang, a professor in the Department of Computer Science and Engineering and the Halicioglu Data Science Institute, joined the leadership of the campus ICPC club in 2020. Since then, he’s also begun offering a for-credit computer science course-- Introduction to Programming Contests-- to help support students wanting to improve these skills.
“ICPC has long been regarded as a competition of the world’s smartest collegiate computer programmers,” said Shang. “The World Finals sets the stage for the world’s smartest trophy."