Training

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

SOI participants at their training session

First steps

If you live close to Zürich and understand German, we recommend the course for high school students: Clevere Algorithmen programmieren

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 do not have much programming experience we can recommend Edabit. For the first round you can use any programming language. For later rounds you will have to use C++.

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.

book

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.

Training

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.

To the task archive

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