Subscribe

Programmed to win

Hundreds of computer science students take part in the International Collegiate Programming Contest in Russia. (Photo/Victor Zavyalov)

More than 100 teams. Ten problems. Five hours. Three team members. One computer. Ready, set, code!

Earlier this month, USC Viterbi School of Engineering computer science PhD students Rongqi Qiu, Zheng Cao and Yu Cheng competed in the 37th annual world finals of the Association for Computing Machinery’s International Collegiate Programming Contest (ICPC) in St. Petersburg, Russia.

The USC team placed 21st overall and third in North America behind Carnegie Mellon University and the Massachusetts Institute of Technology. Given the fierce competition, this was a significant achievement.

Student coaches Jing Huang and Kai Song — who previously took part in the contest — along with faculty advisers David Kempe and Sven Koenig from the computer science department provided the team with support throughout the training and competing process.

The showing in Russia was the culmination of a year’s worth of work for the gifted USC students.

The work began last fall when USC Viterbi hosted an internal competition, the USC Programming Contest, to select teams of three programmers each that would compete in the ICPC’s Southern California regional competition. Facing off against the California Institute of Technology, Harvey Mudd College, the University of California, San Diego, the University of California, Los Angeles, and others, USC took first place and advanced to the world finals for the second consecutive time.

In St. Petersburg, the USC team took on 119 other universities from around the world in a tense competition of speed and programming acumen.

“For college students, this is the contest you want to win if you want to show that you’re really good at hacking quickly and thinking on your feet algorithmically,” Kempe said.

The USC team attempts to complete its programs. (Photo/Randy Piland)

The contest itself consisted of 10 real-world problems that the team must write computer programs to solve. Teammates worked quickly to tackle each challenge, outlining requirements, designing test beds and building software that solved each scenario.

“This competition is not really about programming,” Koenig said. “It’s about problem-solving. And not just how we solve it, but how we solve the problem efficiently.”

A panel of expert judges with a confidential list of acceptance criteria decided whether the submitted solution was correct. Each incorrect submission to the panel resulted in a time penalty.

For the first four hours of the contest, a leader board displayed the statistics of all teams. For the final hour of competition, however, the board was dark, and no one knew the rankings until the results were announced at the event’s culmination.

To win, a team had to solve the most problems in the fewest attempts with the least cumulative time.

Explaining his team’s strategy, Qiu said: “Before the competition, we set up the goals to solve six problems: each of us solving two problems. And we actually did.”

Meanwhile, the next season of the ICPC will begin soon.

In September, interested students under the age of 23 can compete in the USC Programming Contest for a coveted spot on the university’s team. But Kempe emphasized that not making the team on a first try should not discourage anyone. In the past, students who struggled at the USC competition as freshmen participated in weekly trainings and later went on to represent USC as juniors and seniors.

“We want to thank our student coaches Jing Huang and Kai Song,” Cheng said, “and our faculty coaches David Kempe, Sven Koenig and Liang Huang. Without them, we would never have advanced to the world final in 2012 and we would not have advanced to the world final this year.”