[This is one of those rare posts in English, since the main audience for this topic is English-speaking. — Este es uno de esos pocos posts en inglés, ya que está dirigido principalmente a gente de la universidad, y la mayoría no entiende español 🙂 ]
The 2009 World Finals of the ACM International Collegiate Programming Contest took place last Tuesday (April 21st) in Stockholm and, for the first time since 2002, the University of Chicago was there. The valiant undergrads in our team were first-year Louis Wasserman, second-year Ian Andrews, and third-year Lauren Ellsworth, pictured here on the contest site (left to right: Ian, Lauren, Louis):
The ICPC World Finals were a spectacular event. The immensity of this event didn’t really hit us until we actually got there. I have to tip my hat to the organizers (ACM and Baylor University), the sponsor (IBM), and the host (KTH Royal Institute of Technology) for doing such a remarkable job. We were placed in luxury hotels, shown around Stockholm (which turned out to be a simply awesome city), fed excellent food, and participated in lots of great events. However, there were two events that were particularly awe-inspiring.
First of all, the reception for all the teams took place in the Blue Room of Stockholm’s city hall, the same room where the Nobel Prize dinner is held. Each team walked down the main staircase down to the Blue Room, while a full orchestra played along:
This is us at the staircase, where he had our official photo taken with Doug Heintzman (IBM ICPC sponsorship coordinator) and Dame Wendy Hall (President of the ACM):
Then, there was the awards ceremony, which took place at Stockholm’s Concert Hall, where the Nobel Prizes are awarded. Even though the concert hall itself turned out to be a bit underwhelming, we were promptly reminded that this was the exact same place where Marie Curie, Albert Einstein, and so many others had received their Nobel. Awesome.
Here’s some photos from the awards ceremony:
By the way, the ceremony included a small talk from Stephen Bourne. Yes, Bourne. As in “creator of the Bourne shell”. Yes, that shell. /bin/sh, bitches. Here’s a photo:
So, basically, when you get here, it really does hit you that this is not just a programming contest; it is the programming contest.
So what is the contest like? Well, first of all, let’s cover what you have to do during the contest: solve eleven programming problems that range from difficult to insanely hard in 5 hours using a single computer. The actual contest site was the KTH library, which had to be closed for a few days for the contest:
This video shows the countdown to the start of the contest:
In case you’re wondering how the solutions are graded, the contest uses a system called PC2 that allows students to submit problems over the network to the contest judges, and also allows the judges to quickly test the submission using test cases. So, the code doesn’t usually get “graded” in the traditional sense during the contest (if you pass the automated tests, which are pretty exhaustive, your solution is accepted), although I think that the contest medallists do have their code checked (after the contest) to make sure there’s nothing fishy in it. The judges are located in a separate, tightly controlled, room (we were only allowed to see it from a balcony):
And how did the contest end? Well, our team only managed to get an Honorable Mention, which is the polite way of saying that we ranked in the bottom third of the teams. In fact, our team didn’t manage to solve a single problem during the contest. However, let me add some perspective to this result: WUSTL and UIUC (the two teams that ranked higher than us in the regionals) only solved one and three problems, respectively (and UIUC only had one problem solved for the first four hours of the competition). In fact, half of the teams only managed to solve three or less problems (out of eleven!). So now you know what I meant when I said the problems ranged from “difficult to insanely hard” 🙂
Were we bummed out by the result? Abso-frakkin’-lutely not. When I met the team outside the contest site, we were happy, cheering, and hi5-ing each other. Here we are, poking fun at our result:
Why? Because we made it that far. Our attitude towards ICPC has always been that we do it because we love coding and have fun solving interesting problems. We don’t train rigorously for the contest and have a “just for fun” approach when we go to the regionals or meet to solve problems together. And yet, we made it all the way to the World Finals of the programming contest. On top of that, we had tons of fun and met lots of interesting people from other teams along the way. And, if you ask me, tying for 90th place amongst a field of more than 7,000 teams is a pretty darn good result.
Of course, now we know a lot more about the contest, what a World Finals team should be like, what are our strengths and weaknesses, etc. We come out of this experience even more motivated to rock next year’s regionals and to qualify again for the World Finals.
Finally, a couple of links to more photos: