Workshops 2020/21

Samuel at workshops

Attention: This page is about the workshops from 2020. We will put up the information about the workshops for 2021 later.

The registration is currently only available for the Zurich workshop. Due to the ongoing coronavirus pandemic this is the only currently confirmed location and may be canceled on short notice if cases increase rapidly. Wearing a mask will be obligatory as well. Additionally there are only limited places, so sign up as soon as possible.

Learn everything you need to know for the first round at our workshops

This year there are online workshops as well. Find the detailed description here.

We invite you to two single day workshops. They serve as an opportunity to get started with algorithms and competitive programming. No prior knowledge is required, though being good at maths and having some experience with programming can be an advantage.

This year we will carry out the workshops in two seperate tracks: Beginner and Advanced. In the Beginner track the focus will be on setting up C++ and the syntax of C++. While in the Advanced track the focus will be on algorithms used in the first round and solving theoretical tasks.

  • Part One:
    • Beginner: We cover basic concepts needed to solve the first round in C++, such as: Input / Output, data types and control flow.
    • Advanced: A short presentation on graph representation and DFS. The main focus will be on independently solving DFS related tasks, together with coaching from leaders.
  • Part Two:
    • Beginner: A presentation on more useful C++ concepts from the standard library. Afterwards we analyse and solve old SOI tasks. During this time leaders will be available to help whenever you get stuck.
    • Advanced: A presentation on Dynamic Programming and theoretical tasks. Here we will practice solving theoretical tasks. The main difference between practical and theoretical tasks is that in theoretical tasks, a proof is needed for both the validity and runtime of an algorithm.
Coding at our workshops


There are two parts and we recommend you go to both.

Part One:

  • 24.10: MNG Rämibühl (held in German)
  • 25.10: MNG Rämibühl (held in English)

Part Two:

  • 1.11: MNG Rämibühl (held in German)
  • 7.11: MNG Rämibühl (held in English)

During all of these weekends, you can talk to us in German, French or English. The tasks will be available in all three languages. Even if you are not so fluent in, say, French and attend a French workshop, you probably will be able to follow most of it just fine.

Daniel at the Workshops


Q: I am already very experienced in programming, does it make sense to attend?
A: Definitely. Don’t worry, there are a lot of tricky tasks and we are sure you will learn something new. However, you might skip part one.
Q: I am already very experienced in programming, should I skip part one?
A: If you already got more than 200 points in the first round and feel fluent in C++, then you can only come to the second part. While you will not learn as much, we are sure it will be a fun experience so we recommend you to attend anyways. Until we have decided, just sign up for the both parts.
Q: I have never programmed before in my life, will it be too hard?
A: It will be challenging, but you can do it if you are motivated. The first workshop is intended to serve as a head start. To profit the most for the second workshop, expect to put in some more time between the two workshops to catch up with the rest.
Q: Is the content available online somewhere?
A: For the theory, you can read our Wiki. We will publish most of the task set of the workshops late September.
Joel at the workshops
Q: Does it make sense to come to the workshops if I can read up everything online?
A: Of course! You have the unique opportunity to:
  • meet like-minded people from all over Switzerland,
  • learn those topics from experts and let them help you debug your code and
  • enjoy a friendly but competitive atmosphere.

Besides the lectures and tons of time for coding and solving problems, we will also have some quizzes and card games.

Q: What do I have to pay?
A: Nothing! We reimburse the train tickets (up to half-tax fare), provide you with food and offer you an overnight stay for free. We are able to do this because we (mostly students) organize SOI in our free time, and our partners cover the expenses.
SOI participants at their training session


As said, we do not expect any prior knowledge from you. But you will profit the most if you have learned the basics in some programming language before. We teach C++ even though C++ is not the easiest language to start with.

If you are completely new and want to get started as fast as possible, we recommend that you refer to the training page.


We will later put a form here where you can register. The registration has not opened for the moment.

Interested? Then please fill in the registration form:

The number of spots is limited and we will consider registrations by order of registration date.

The registration is closed.

For questions ask us on

We are looking forward to seeing you in Zurich, Lausanne and/or Bern!