Slashdot Mirror


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."

5 of 243 comments (clear)

  1. well.. by toomin · · Score: 4, Informative

    My friend went to the International Biology Olympiad, which is basically the sister project of this one. She had loads of fun, so I wish all the best to the kids competing in this competition. One point to note, perhaps: The people who are in this coding competition are all kids in school. This is not determining the fastest coder in the world, it's determining the best young coders. Just thought I'd clear that up.. =)

  2. Some Insider Thoughts by Anonymous Coward · · Score: 5, Informative

    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.

  3. Re:Excellent contest for employers... by MadHobbit · · Score: 4, Informative

    The people who win these competitions are the people who have the best knowledge of algorithms and data structures, and who know their programming language fluently.

    The competition itself feels very non-competitive. Most participants are trying to win by performing their best, not by beating everyone else (if you catch my meaning). Outside of the actual coding sessions, everyone socializes (really!), swaps ideas and knowledge, and discusses the solutions that were used in the previous sessions. I saw people get together the next day, pool their knowledge, and come up with a better solution -- this is outside the competition, for the sheer joy of solving the problem.

    The IOI does not test teamwork and communication, either positively or negatively. Anyone who has attended an IOI (regardless of whether they won a medal) deserves your attention as an employer, because it's a safe bet that they are a -very- good programmer. You still have to apply all your normal filters (is this guy a jackass, is he a slacker, or is he good for the company), but from my experience at the competition I'd say there's more contestants that would be an asset than a liability.

  4. Re:Code fast or Fast Code? by doeth · · Score: 5, Informative

    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.

  5. USACO by Aerion · · Score: 4, Informative

    If you're an American high school or middle school student and are interested in participating in IOI in the future, you should refer to the USACO website. The American IOI team is picked from among the best performers on USACO.

    If you're not an American student, USACO is probably still worth checking out, as it permits all pre-university students to compete (although only Americans can be considered for the team), and anybody in the world can enter as an observer. In fact, the vast majority of USACO participants are not American.

    USACO is also working on making contest divisions that are more friendly to beginners, if you're worried about difficulty.