Five uninterrupted hours spent coding in front a computer can be gruelling at the best of times. Now try doing it in front of an audience, while competing with some of the most talented programmers in the world.
Students from Russia’s St. Petersburg State University know what it’s like to be called the best. At the 25th annual ACM (Association for Computing) International Collegiate Programming Contest, held last month in Vancouver, they have proven it’s possible for lightning to strike twice in the same place. St. Petersburg is only the second team to ever win the contest more than once – Ontario’s University of Waterloo is the other – and the only team to win on two consecutive years.
This year’s contest boasted 64 teams of university students from six continents. The contestants’ courses of study varied greatly from computer science to engineering, physics, mathematics and even medicine. Teams of three were given eight programming problems, and five hours to solve them. This is equivalent to about a semester’s worth of work in a typical programming course, according to William Poucher, long-time director of the contest and computer science professor at Waco, Tex.-based Baylor University.
Poucher gave the example of one team who solved about 300 problems in preparation for the world finals. “Eight gets you an A in a computer science course in university,” he bellowed. “Right? They do 300, and they don’t even get a grade!”
The students competed in a large open room filled with different coloured balloons. These were not festive decoration, but rather colourful markers of progress. Every time a team solved a problem, it raised a balloon. Each colour represented a specific problem. The first balloons to go up were the yellows, the reds and the oranges. Only later did a few green ones appear. In the end, only a handful solved the blue problem, and no one got a white or a purple.
To watch the students competing, it wasn’t readily apparent that this was a stress-laden task. Many were laughing and joking around at first. But as the day wore on, some seemed to lose their cool. Arguments would break out quietly, students were rubbing their eyes, banging their heads softly on the desks, chewing pencils, rubbing their hands through their hair. Tables were littered with pop cans, half-eaten muffins and coffee cups. Contestants darted back and forth between the tables with quick, sparse movements, driven by caffeine, sugar and adrenaline. A well-stocked buffet table sat virtually ignored in the corner.
The audience was tiny in the beginning. After all, watching a bunch of people write code for hours on end could be “as exciting as watching paint dry,” according to one observer. But as the clock ticked down and the view of the ceiling became obscured with colourful balloons, the tension and excitement was almost palpable.
Suddenly, it was standing-room only. The audience helped count down the last 10 seconds. When time was up, some teams cheered, some slumped in despair. One young female contestant burst into tears.
Obviously, stress is a big part of the equation – the trick is to stay focused as much as possible, said contestant Donny Cheung, a pure mathematics student at Waterloo.
“I think the main part of the pressure comes right at the beginning of the contest. A lot of athletes think that the way they start is really, really important… it’s the same in this case. The moment we start we sort of grab at the questions, we divide them up…and the first one of us that sees a problem (that) we think we can do jumps at the computer, and the rest of us jump out of the way and keep reading. So we have some stressful starts.”
As the pressure builds, personality conflicts can sometimes get in the way of team dynamics, according to Cheung.
“We’ve had teams (in the past) who have done well that have been almost at the point of hurting each other,” he said. Waterloo is starting to give more consideration to team dynamics now, but “traditionally we’ve just taken our top three students and thrown them onto a team and hope that they don’t try to kill each other before the contest,” he laughed.
Waterloo finished fourth this year. It actually solved as many problems as the big winners, just not quite as fast. Last year it came in second, and the year before that it was first. Other Canadian teams also placed well: the University of Toronto and the University of Alberta were tied for fourteenth place overall.
IBM Corp. was the sole-sponsor of the event for the fourth consecutive year. According to Hershel Harris, IBM’s vice-president of WebSphere application server development and director of the company’s Toronto Software Laboratory, the contest is one of many on-campus programs the company supports. IBM even had human resource representatives on hand who were prepared to recruit contestants directly off the contest floor. Though, according to Cheung, he’s involved in the contest “mostly for fun.” Winners received “bragging rights to the world’s smartest trophy,” IBM ThinkPads, as well as software and scholarships.
“It’s important for us to understand that the value of this competition is not so much what [the contestants] are going to do, but the fact that the challenge forces them to prepare and to find out what their potential is. Because you know you don’t find out what your potential is until you hit the wall,” Poucher said.