Geek Olympics Code for Gold
Haydn Fenton writes "Wired has a recent article on the16th annual IOI (that's International Olympiad in Informatics), taking place in Athens from Sept 11th to Sept 18th. The 304 programmers from 80 countries will be competing in 7 marathon programming sessions to determine the world's fastest coder. The computers are being supplied by Altec and contestants will have a choice of using either Windows XP or RedHat 9.0. More information can be found on the IOI Website."
Just don't make them play beach volleyball..
*shudder*
Do the female Geeks get to wear those hot outfits like the Olympic Vollyball teams???
__________ Leave me alone I'm compiling a RPG II program on my S/36...Thanks to metamucil I'm a Regular Meta Moderator
How sweet would it be to have cheerleaders for this kind of thing?
A programming contest that doesn't include MacOS X? Crazy! All of the best engineers I know have been moving to MacOS X as their native platform ever since MacOS X 10.2. It lets you use all those wonderful open source tools, and still have a nice friendly GUI, and work on a beautiful laptop, all at once. It's a thing of beauty.
And Apple's development tools rock!
Enable 3D printed prosthetics!
"I use FreeBSD you insensitive clods!"
written on his back ran onto the floor and shoved the leader's chair into the crowd. Scooting the chair back into place cost the leader precious seconds and momentum which dropped him eventually to third place.
Somehow, unlike the "Athletic" Olympics, I don't think they're gonna need to hand out condoms.
Just personal lubricants...
Personally, I think embarassing posts are more pathetic than posting emabarassingly. But that's because I don't write posts that convey no meaningful information in a transparent attempt at gaining karma.
The safest way to approach lava is to have another person with you and he goes first.
Back in the day (2000), I actually got into the final of the British Informatics Olympiad. I'm not sure what the format is elsewhere, but basically they sent out a self-administering test to schools (all the schools in the UK, I think) and had them run it locally, seeing how much of a few interesting puzzles you could write in three hours or so - you can find out more on the site. All programming, no justification, you were scored on results (in that round), which I thought was the way it should be - after all, results are what matters in real life!
;-)
;-)
All the cool people were using C or Pascal. I used QuickBASIC! And yet I got the right results for enough of the questions (the C guy got his output board the wrong way up), and so I was invited to Cambridge. The best part about the first round was that I hadn't even done the last round right - I just said "yes, that's right" to the sample case and "No, impossible" to everything else.
Anyhoo, I got to Cambridge (for you USAians, one of our old "Ivy League" colleges) where I learnt to my relief that they had installed QuickBASIC especially for the two of us who had actually got in with it (15 finalists total) - they were shocked at having to, I can tell you! Of course, I was pretty sure at that stage that I wasn't actually going to win, and so I had a great time and zero stress. The tests itself were a) more of the same, but b) there was also an easay paper. Having not read much about the subject formally, I imagine I did dismally on the latter - I think I got about one and a half on the programming at best. Didn't know how to do efficient sorting! Still, it was great fun, and really set my mind on becoming a programmer.
The best part was, we got room, board and tours around Cambridge absolutely free (I guess they were looking to recruit a few of us to Cambridge). I even saw Stephen Hawking whizzing around on his motorised wheelchair! We got given two books at the end of it - Programming Pearls and Introduction to Computer Algorithms. Both darn good books, although I admit to reading the first more closely than the second.
I actually participated in the IOI for two years and won two silver medals. Anyway, I can attest that the contest is neither about speed nor coding. It's about coming up with algorithms to solve hard problems. Similar to the International Mathematics Olympiad, if anyone's heard of that. If you can come up with a brillant algorithm and prove to yourself that it works on all possible test data in time, then you'll have plenty of spare time to code it in. If you can't do that, then you might get at most a bronze medal (half the people get *some* type of medal). Of course you do need to know your way around whatever language you use to program your solutions, but none of the programs will be more than a couple pages of code (we're not writing a Linux kernel here), and you have 5 hours to solve 3 problems. At the point where you can get most of the algorithms, it's much more important to have good debugging and testing skills than to be able to code quickly.
In fact I've found that the best strategy is to just turn off the monitor altogether and think about the problems for a while. Your most useful tools in the IOI are the pencil and pad of paper they give you.
The ACM programming contest is sort of similar to the IOI in that you have similar time limits and similar amounts of problems per person (8-10 problems for a 3-person team, with 5 hours). However, it's a lot more frantic since you're fighting for terminal time, whereas in the IOI you can take things slowly or run detailed tests. TopCoder (the other big programming contest) is also more speed- and debugging-intensive, although problem solving skills can help a lot if you're able to start with the Hard problem every time for instance.
As a former competitor in the IOI, I wanted to correct some misconceptions regarding the competition format and scoring presented thus far. The competition consists of two rounds with fixed 5 hour time limits. In each round, a contestant is asked to solve three algorithmic programming tasks.
For grading solutions, the only criteria are program correctness and efficiency. To do this, a judge presents the contestant's solutions for each problem with a set of test input cases. For every test case in which the contestant's solution gives the correct output under the allowed program running time, the contestant receives a fixed number of points.
As the test cases vary in their size/difficulty, they allow the judge to evaluate both program correctness and efficiency (only the most efficient programs will be able to solve all the test input cases given by the judge for a particular problem). In some recent IOIs, contestants are given an optimization problem to solve, and a contestant's program is graded based on the optimality of their generated solutions as compared to those solutions generated by programs of other contestants.
In none of these cases is grading ever based on the length of the code or coding speed (unlike the ACM or more recent TopCoder contests). Thus, the IOI is primarily an algorithm design contest rather than a coding competition.