2006 ACM Programming Contest Complete
prostoalex writes "World finals for 2006 ACM programming contest took place in San Antonio, TX this year, and the results are in. Russia's Saratov State University solved 5 contest problems in record time, followed closely by Altai State Technical University (Russia) with 5 problems solved as well. University of Twente (Netherlands), Shanghai Jiao Tong University (China), Warsaw University (Poland), St. Petersburg State University (Russia), Massachusetts Institute of Technology (USA), Moscow State University (Russia), University of Waterloo (Canada) and Jagiellonian University - Krakow (Poland) all completed 4 problems."
Woohoooooooo! Wait a minute...
...MIT stole Saratov State University's cannon.
This tagline is copyrighted material. Please send $10 for an affordable replacement.
As someone who has their school at the competition, and I'm on the programming team (though my team didn't make it this year). Those are the scores as of one hour left in the competition.
They don't update the scores during the last hour to keep suspence for the awards ceremony. So this isn't really news at all, and the post is going to be meaningless as soon as they update the standings. I'm expecting them to be posted soon though as I think the awards ceremony ended recently.
- Joe
It's always interesting to see how advanced these are. Most of the time, I'm really not impressed by the complexity of the assignments, although the optimalization work done by the teams can be pretty 'way-better-than-anything-I-could-ever-do".
2. If you ever see Russian State Universities at the top of anything, be very, very cautious. I studied at MGU (Moscow State University) for a little while, and it was frankly appaling. They were taught extremely specific skillsets, they knew exactly what they would be tested in in advance of tests and didn't study *anything* else. It was like a game of 'getting through Uni without learning *anything*' which outranked anything I've ever seen back home (or heard of in the US). The methology probably lends itself well to predefined, known tests, but it produces practically useless students.
(To be fair, here back home, the ones who really learn something are the ones with a real interest in the subject, and they learn most of it outside class. There were really bright people at MGU too. It was the mindnumbingly staggering uselessness of the average student there which amazed me. It was supposed to be a "Top University".. oh, and you had to bring your own toiletpaper if you wanted to take a dump :)
"" How about taking the safety labels off everything, and let the stupidity-problem solve itself? """
I like this quote from the story.... "When was the last time you heard someone say 'I need a piece of software in 10 minutes?" Ask my boss.... He needs it in 5.
It's generally unfair to judge ACM teams by the polish of their answers, since the only criteria is to solve the problem in minimum time. Similarly, problems are chosen with the time-constraint in mind, not out of any attempt to further science. If you want that, try the MCM.
What's impressive about the winning solutions is that they went from having nothing to implementing a working program from scratch, under stress in only a few minutes. While that is arguably not applicable to being a programmer in real-life, just as being an Olympic sprinter doesn't prepare you for any particular job, it is certainly a commendable intellectual achievement.
"The White House is not an intelligence-gathering agency," -- Scott McClellan, Whitehouse spokesman.
For those who want to know more about this contest in the form of actually attempting ACM questions, then I suggest heading over to their problemset archive which not only has ACM stuff from the last 5 years but a large number of non-ACM programming problems in the same vein. You can sign up with them and have your solutions to their problems checked for correctness.
Since the website's a design massacre, to get to the ACM problems you need to click on the link marked THE CII ICPC LIVE ARCHIVE !!! in the news bar, or just click on that one right there.
Your rant sounds like an angry ex post facto rationalization for losing.
I've spent many years involved in ACM programming contests, as a competitor, coach, and judge. And let me tell you, every team that considers it a hacking contest, and treats it like a hacking contest, LOSES. The teams that write well organized code, with simple straightforward solutions, win the day every time.
I'm not surprised you did poorly.
BTW, of course they compare output files. Would you really expect the judges to give an aesthetic judgment of each program in a five hour contest? "9.8 from the Russian judge..."
I object to that article, and to the next reply.
No, that's like saying the Olympics isn't a real contest of athletics because you're only testing how fast they can run 100 meters. The results don't show who was fastest at 10 meters, 50 meters, or who would be fastest at 150 or 1,000 meters. Recognizing this shortcoming, the Decathlon adds up the scores from multiple events to find the best all-around track and field athlete.
A programming contest is the equivalent of a single track and field event. There's nothing wrong with that, but we have to be careful what conclusions we draw from its results.
The truth is that you need both kind of people in software companies. And the other truth is that the people who write the nuggets do interesting work that is worthy of displaying publicly in a contest. And the rest do work that isn't.
Having said that, plumbing competitions aren't completely unheard of.
"The White House is not an intelligence-gathering agency," -- Scott McClellan, Whitehouse spokesman.
Here is a picture of our library taken during this exam period
Library
[I can picture a world without war, without hate. I can picture us attacking that world, because they'd never expect it]
As noted previously, the mentioned scores were from an hour before the contest's end. My sources give the actual, final medal results as the following:
1. Saratov State University (Russia) - 6 problems
2. Jagiellonian University - Krakow (Poland) - 6 problems
3. Altai State Technical University (Russia) - 5 problems
4. University of Twente (Netherlands) - 5 problems
5. Shanghai Jiao Tong University (China) - 5 problems
6. St. Petersburg State University (Russia) - 5 problems
7. Warsaw University (Poland) - 5 problems
8. Massachusetts Institute of Technology (USA) - 5 problems
9. Moscow State University (Russia) - 5 problems
10. Ufa State Technical University (Russia) - 5 problems
11. University of Alberta (Canada) - 4 problems
12. University of Waterloo (Canada) - 4 problems
Four teams each received gold, silver, and bronze (in the above order). For the same number of problems, the order is based on penalty minutes.
For many, it's like any sporting event -- just with lines of computer code instead of balls
... vivid!
Was this sporting event in prison!? Lines of balls
Yeah, dude, I know why it was "appaling". Because you couldn't handle studying there, that's why. Compared to education in the US, the situation in Russian higher education is completely the opposite of what you've described. Folks are being taught extremely broadly, perhaps with too little attention paid to practical applications of what is taught at times. And you can't narrow down the scope of your education because you _can't_ choose classes. You fucking WILL learn linear algebra, physics, differential calculus, discrete mathematics, etc., whether you like it or not.
It is expected of students to be able to figure out practical applications on their own. MGU in particular is one of the most hardcore Russian schools that is easily on par with _any_ Western college or university for which here in the US you'd be paying _through the nose_. MGU seems to be specifically designed to produce scientists and researchers, not engineers, though. MIFI, MAI, MSTU and NGU on the other hand focus on generating engineers that get shit done. The reason being, they produce most of Russia's engineers who work on weapons and high tech.
I am still angry to this day. The "judges" had the wrong answer to one of the problems. Of course, it was the problem that I took for my group. I had it right the first time, within a few minutes. Submit, wrong, time penalty. Hmmm... futz with it a little, submit, wrong, penalty, repeat. In the end, my team came in like third or fourth, due to these penalties. Turns out, the teams that came in ahead of us hadn't even submitted any answers for that problem. Of course, nobody in the competition got it right, and only one other team submitted an answer, I think. What *really* pissed me off, though, is that our fucking school administrators refused to take up the fight on our behalf to have the results changed. If we had hadn't had the penalties, I think we would have been 2nd, and if we'd been credited for the correct answer, we would have come in first. Either way, we would've gone to the next round or whatever. I don't know if this was standard everywhere or not, but they passed out the "official" answers when it was over, so we discovered how we'd been cheated on the way home, and it was trivial to verify that their answer was wrong.
However, I must agree with some of the other posters: it's not so much a programming competition. It's more of an algorithms and standard library memorization competition. I seem to recall that knowing *all* the ins and outs of the printf family of functions was pretty important. Looking at the site now, it looks like they provide docs for the standard libraries, I don't think this was the case where I went. Anyway, it's important that you know that Java has a regular expression parser as part of the std lib (and therefore usable in the contest) while C++ doesn't. In real life, if you need a regular expression parser, you go get one. Additionally, looking at last years problems, for example, one of them is a straightforward application of a shortest-path algorithm. Do I remember the inner workings of the common graph algorithms? No, I don't use them very often. But I have my reference book handy if I need it. 99% of the time, I'll just use boost::graph. That problem could be solved quite trivially in 20 minutes with boost::graph. If you want to test my knowledge of graph algorithms, that's fine. My algorithms textbook has many exercises which do just that. Just don't call it a programming test. Everything in my algo class was pen and paper. In fact, if you're a real progammer, and you didn't use boost::graph (or something similar) to solve that problem, you deserve to be fired. Writing your own from scratch is a horrible waste of time and a maintenance nightmare. In fact, the boost libraries probably trivialize a number of ACM problems, what with graph libraries, matrix libraries, parsing frameworks, regular expressions, state machines, and so forth. A programming contest would force you to use these well, not re-write them.