We can highly recommend the following material for you to train for our olympiad:

SOI participants at their training session

First steps

If you are just getting started you should take a look at our chapters for the first round in our Wiki. It answers questions like How do I learn how to program? and What is an algorithm?.

To the Wiki

If you want to solve your first SOI tasks, then please take a look at our tasks from former first rounds. You can find them in our task archive. Here are for example the tasks of the first round 2018.

Always in October and November (during the first round), we offer our Introductory Workshops.


Reading and Learning

To dive deep into our challenging topics, we recommend that you read the chapters in our Wiki. They are grouped by the rounds of our contest.

For the concepts in C++ that are most relevant to solve our practical tasks, you can find a Tutorial (PDF, in German) here (and all the source code as well).

If you want to go deeper into the theory, here are some book recommendations:

We also have a list of SOI-relevant algorithms, that roughly summarizes the official syllabus of the IOI.


Train, train and train

Real training cannot be replaced by anything. We recommend that you try to solve as many of our old tasks in the archive as possible! For many of those you can also find master solutions there.

There are plenty of websites with thousands of tasks. Many of them also hold regularly live contests:

To make the training more interesting, we put together a few Ladders. If you solved enough tasks, you can exchange them for interesting books and other prices.

To the task archive To the Ladders