IOI is the crown jewel of the CS competitions, but there are quite a few other competitons one has to know about.
Other high-school olympiads. Several regional olympiads have been created, modelled after the IOI. The ones I know are:
- CEOI (Central European)
- BOI (Balkan)
- BOI again (Baltic)
Policies for who goes to these olympiads vary from country to country and from year to year. Typical policies (Romania has tried all of them in different years):
- send the top 4 to prepare them for the IOI
- send younger kids (nonseniors) who haven't qualified to the IOI, so that they get experience for next year
- send people on places 5-8 out of fairness (to allow other good students to get medals and build up a CV)
CEOI, in particular, is insane. It includes only the best countries from Europe, plus USA as a special guest (these countries typically get only gold and silver at the IOI). Getting a medal at CEOI is often likened to being among the top golds at the IOI.
Post high-school. Like the Putnam in mathematics, there are some olympiads for college students, but they are somewhat different in flavor:
- the ACM Programming Contest: teams of 3 people try to solve 8 problems in 5 hours. By design, some problems are meant to have easy algorithms but painful implementation (the prototypical examples are from computational geometry).
- TopCoder: individual contest over a long period of time, with many rounds conducted online. Huge prizes (in the 100K range). Each round is short (1 hour) so you have to be insanely fast at implementation.
- IPSC (Internet Problem Solving Contest): teams of 3, working from home. You don't submit code, only answers to some truly massive problems.
In Eastern Europe, where most tenured faculty haven't heard the word research and attending classes is outright depressing, these competitions may be the only opportunity for students to not let their university years go to waste. (The other option is to work a full-time job as a programmer, for one of the miriad outsourcing companies.)
Unfortunately, the contests are less telling as to algorithmic skills than the high school olympiads. They rely on lots of coding under time pressure, so many pure algorithmists feel turned off. The fact that teams matter so much also makes results harder to interpret. (The successful teams typically include a very fast coder, and a theoretician who doesn't code... But who's who?)
Personally, I am an outsider (by choice) to these contests. With my slow coding and problems dealing with authority in teams, I would have been hopeless :)