Preparation for the Olimpiada Informatyczna
Olimpiada Informatyczna is the hardest and most prestigious computer-science contest in Poland — and one of the harder informatics olympiads anywhere. It is for secondary-school students and runs in three stages: a long remote round, a regional round, and a multi-day final.
You can see the level in what happens to its medallists. Polish OI laureates regularly go on to BOI (the Baltic Olympiad in Informatics) and IOI (the International Olympiad in Informatics), and at university to ICPC (the International Collegiate Programming Contest). It is the same road — just the next floors of it.
I put the most weight on the second stage, and that is not arbitrary. Reaching the final guarantees free admission to any university in the country. Everything else in the preparation is arranged around that one threshold.
There is an enormous amount of material to get through. You cannot cover it in a few months, and you cannot cover it without genuine curiosity — the student has to be truly fascinated by this. Ideally they already have OIJ or another contest behind them.
The course list is the same one I use for OIJ. The difference is not which topics, but how far down each one goes: here every topic goes considerably deeper, and the problems we practise on are in a different league.
One thing worth knowing: OI currently cannot be written in Python — a Python solution will not score full marks. That is why I run OI preparation in C++ from the very start.
I have been a member of the Olimpiada Informatyczna Jury for two years.
The route
Each row is a step, in order. Where a row is marked “or”, those are alternatives — pick one. Everything else in a row you do.
- 1
- 2
- 3
-
4
OI — stage 1
- 5
-
6
OI — stage 2
- 7
-
8
OI — stage 3
Explain, demonstrate, then you solve.
I explain the topic and work a few examples through with you. Then the real work: a set of problems, chosen for where you actually are, and I read every solution you send. Approved, sent back with notes, or worked through together — nothing is marked by a machine.