Point well taken. As a former competitor in the IOI, however, I can vouch that the contest is NOT a speed programming contest. In fact, contestant scores are based solely on the performance of compiled code in terms of correctness and efficiency.
While it is true that the contest is given with a fixed time limit for program development, a significant portion of that time is spent on algorithm design rather than coding. For most competitors, the differentiating factor is not the ability to finish writing a program in the allowed time but rather the ability to come up with the optimal algorithm for solving the problem. This is pretty different from some of the more recent programming contests such as the ACM or TopCoder in which coding speed is paramount.
The winners of the IOI are those individuals able to successfully design and implement the best algorithms for solving the presented tasks. As a caveat, it is true that correct and efficient code may not always be particularly readable or maintainable. Elegance of program design is not a criterion for IOI grading but is an element in some of the more recent TopCoder competitions.
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.
Point well taken. As a former competitor in the IOI, however, I can vouch that the contest is NOT a speed programming contest. In fact, contestant scores are based solely on the performance of compiled code in terms of correctness and efficiency. While it is true that the contest is given with a fixed time limit for program development, a significant portion of that time is spent on algorithm design rather than coding. For most competitors, the differentiating factor is not the ability to finish writing a program in the allowed time but rather the ability to come up with the optimal algorithm for solving the problem. This is pretty different from some of the more recent programming contests such as the ACM or TopCoder in which coding speed is paramount. The winners of the IOI are those individuals able to successfully design and implement the best algorithms for solving the presented tasks. As a caveat, it is true that correct and efficient code may not always be particularly readable or maintainable. Elegance of program design is not a criterion for IOI grading but is an element in some of the more recent TopCoder competitions.
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.
but as a friend once told me (quoted from somewhere?), even I can beat it at checkers.