What is amazing about the IOIs is that the high school students who participate have a more broad and deep understanding of algorithms in graphs and networks, combinatorics, dynamic programming, recursion and number theoretics than pretty much any CS student in a college/university with exception of perhaps PhDs. Indeed, you don't find many CS students devouring Knuth's TAOCP just for fun!!! However back in the day when I also participated in Nationals and this sort of competitions I always favored Cormen's Intro to Algorithms over Knuth's, but that was just a matter of personal preference.
Overall kudos to this young man and I hope he keeps it up. And I also encourage everybody to take a look at past IOI problems (they are online) and their solutions and even attempt solving them, it is an amazing feeling when you are able to crack even one!
I have tutored some high school students in programming/algorithms, and I find it is definitely better to explain "NP-hard" after they take a crack at the problem. Classically educated CS students tend to see the true difficulty of the problem at hand, which typically results in their not being able to see potential solutions, and many times abandoning the problem completely. However, students without that level of "training" tend to come up with more novel solutions. I am always anxious to see what they come up with.
Overall, classic education just seems to put people into boxes. Even PhD candidates don't seem to deviate much from standard techniques. I just wish I had done something like IOI in my past; I feel it's much more effective at opening up your mind.
Thank you very much for your article. It brought back lots of fond memories of my younger days, spending hours and hours solving past year olympiad problems. I eventually got a silver medal in the Singapore National informatics olympiad. But it was not good enough to qualify for the IOI. I am 26 years old now, have my own startup and I still think about it :(
Wow, I'm so surprised to read this, just last week I got the news that I ended first in the Nederlandse Informatica Olympiade (Dutch Informatics Olympiad)...
My story is kind of the same except I started with knowledge in Python, C# and PHP. I will be participating in the CEOI http://ceoi.inf.elte.hu/ and the IOI.
I didn't try to participate in olympiads, but I started participating in competitions when I was 20. I practiced for ACM ICPC for 3 years, which was arguably my most enjoyable days in my life.
I stopped participating in programming competitions when I was about 24. But now I am 27 and I have started doing them again. I am not as strong as I was (or even close to it), but I am aiming to become strong again. One of my goals is to qualify to the GCJ finals next year (this year I was in Round 3, but couldn't make it to finals).
Joy of solving problems is the greatest joy I've ever experienced.
I know that feeling of the problems seeming impossibly hard all too well - it was the same at the Physics Olympiad, which was pushed pretty hard by one of the physics teachers at my high school (in Austria), who also happened to be one of the organisers of the state and national events. It helps to know that the problems are intended to be so hard that nobody gets full marks. I didn't realise this early on, but it's of course obvious in hindsight - you wouldn't want a draw, you want a nice, clean exponential distribution of scores. (unlike an exam, where a gaussian distribution is usually what you're after)
It sounds as if the IOI organisers (or at least the Danish organisers) provide possible solutions/approaches for the problems. This is great, it always pissed me off no end at the Physics Olympiad that everything was all hush hush and you had to try and find someone to explain the problems you failed miserably on as we never got to see the correct answers (let alone a breakdown of our scores by problem).
I think the national format varies from country to country, but in case it's of interest:
In our case, the Physics and, as far as I know, Maths & Chemistry Olympiads were split into school, state, and 2 stages of national competitions. I think each school sent up to 4 people (selection up to the school) to the state competition, which was standardised across the country and was half a day. The best 3(?) from each state, plus a selection of those with high scores then made it to the first round of the federal competition, which I think was a whole-day "exam". The best 15 or so from that then went for a 2-week intensive course held in different cities each year, with 4 different physics teachers teaching you new physics all day. It culminated in a 2-day competition, from which the top 5 got to go on yet another 1-week intensive course and the international competition.
(much to my surprise, I ended up qualifying for the IPhO 3 times, in 2000, 2001 and 2002 but only ended up participating once in 2001 [Antalya, Turkey] - for these events it helps to live in a country with a small population I guess)
I kind of wish I'd been sufficiently driven to self-study for the Informatics Olympiad at the time. (CS was nonexistant at my school; I'd only vaguely heard of the IOI, whereas Physics, Chemistry and Maths were encouraged - I probably tried the maths one too young, I was sufficiently intimidated not to try it again; the physics teacher was a lot more welcoming and better at keeping all ages making progress) I bet I'd be a better programmer for it now, and I had all the time in the world back then.
I participated on the National Olympiads in Informatics in Portugal, where I live. There was a first phase online, and then a second (final) phase in Porto. From the ~60 participants, only 30 qualified for the final. I got 10th.
At the final qualification though, I got 19th, and only the first 4 get to go to Italy this year, for the International Olympiads in Informatics. I can still participate next year, for a chance to go to Australia.
Even though it didn't go out that well this year, I learnt a lot, and it was a very amusing experience. Oh, and I learnt lots of stuff, like Dynamic Programming, Divide And Conquer, Kadan's Algorithm, DFS & BFS, etc. Highly recommend it!
I was on the Irish team of the IOI in both 2003 and 2004. I wasn't good enough to actually win anything :-( but the experience was amazing and I met some very very smart people!
Having participated in one informatics olympiad, not as a contestant but as a service engineer for the duration of the contest, I spent quite some time observing the contestants. It appeared to me that different teams had different preparation levels. I could see contestants from a few countrlies starting to type immediately after seeing the subject, when most countries teams struggled. My guess was that some countries had a more organized approach, when others were more based on personal effort and talent for the preparation.
10 comments
[ 2.8 ms ] story [ 32.1 ms ] threadWorth a visit a couple times a week, unless you are actually working on a hard problem yourself.
Overall, classic education just seems to put people into boxes. Even PhD candidates don't seem to deviate much from standard techniques. I just wish I had done something like IOI in my past; I feel it's much more effective at opening up your mind.
My story is kind of the same except I started with knowledge in Python, C# and PHP. I will be participating in the CEOI http://ceoi.inf.elte.hu/ and the IOI.
I stopped participating in programming competitions when I was about 24. But now I am 27 and I have started doing them again. I am not as strong as I was (or even close to it), but I am aiming to become strong again. One of my goals is to qualify to the GCJ finals next year (this year I was in Round 3, but couldn't make it to finals).
Joy of solving problems is the greatest joy I've ever experienced.
It sounds as if the IOI organisers (or at least the Danish organisers) provide possible solutions/approaches for the problems. This is great, it always pissed me off no end at the Physics Olympiad that everything was all hush hush and you had to try and find someone to explain the problems you failed miserably on as we never got to see the correct answers (let alone a breakdown of our scores by problem).
I think the national format varies from country to country, but in case it's of interest:
In our case, the Physics and, as far as I know, Maths & Chemistry Olympiads were split into school, state, and 2 stages of national competitions. I think each school sent up to 4 people (selection up to the school) to the state competition, which was standardised across the country and was half a day. The best 3(?) from each state, plus a selection of those with high scores then made it to the first round of the federal competition, which I think was a whole-day "exam". The best 15 or so from that then went for a 2-week intensive course held in different cities each year, with 4 different physics teachers teaching you new physics all day. It culminated in a 2-day competition, from which the top 5 got to go on yet another 1-week intensive course and the international competition.
(much to my surprise, I ended up qualifying for the IPhO 3 times, in 2000, 2001 and 2002 but only ended up participating once in 2001 [Antalya, Turkey] - for these events it helps to live in a country with a small population I guess)
I kind of wish I'd been sufficiently driven to self-study for the Informatics Olympiad at the time. (CS was nonexistant at my school; I'd only vaguely heard of the IOI, whereas Physics, Chemistry and Maths were encouraged - I probably tried the maths one too young, I was sufficiently intimidated not to try it again; the physics teacher was a lot more welcoming and better at keeping all ages making progress) I bet I'd be a better programmer for it now, and I had all the time in the world back then.
In any case: good luck Simon!
At the final qualification though, I got 19th, and only the first 4 get to go to Italy this year, for the International Olympiads in Informatics. I can still participate next year, for a chance to go to Australia.
Even though it didn't go out that well this year, I learnt a lot, and it was a very amusing experience. Oh, and I learnt lots of stuff, like Dynamic Programming, Divide And Conquer, Kadan's Algorithm, DFS & BFS, etc. Highly recommend it!
Some of the problems were fiendishly hard though!