Workshops 2019

Samuel at workshops

This page is referring to the workshops of October/November 2018. We’ll soon be updating it with the registration for Oktober/November 2019.

Learn everything you need to for the first round at our workshops in EPF Lausanne, Uni Bern and ETH Zürich. Register now!

(The registration link is at the bottom of this page, but please take your time to read through it first.)

We invite you to two of our five workshop-weekends. 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.

Since there is a lot of material to cover, we split the workshops up into two parts.

  • Part One: competitive programming in C++. We start with the very basics of C++ and move on to some more advanced language features. A lot of time is allocated for training on tasks that are of similar difficulty as the first two tasks of the first round. With some tricks and the help of the C++17 standard library you will be able solve those kinds of tasks in very little time.
  • Part Two: running time analysis, graph algorithms and dynamic programming. This time we cover more theoretical topics and show how they can be applied to solve tasks. At SOI the main focus lies in algorithmic thinking rather than coding and this second part is very similar to our training camps. With this you have all the tools required to tackle the first round.
Coding at our workshops


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

Part One (Saturday, Sunday):

  • October 13–14: EPF Lausanne (held in French)
  • October 20–21: ETH Zurich (held in German)
  • October 27–28: Uni Bern (held in English)

Part Two (Friday, Saturday, Sunday):

  • November 2–4: EPF Lausanne (held in English)
  • November 9–11: ETH Zurich (held in German)

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 prepared for the evenings. Some rumors have it there will also be a scavenger hunt across the city in one of the workshops.

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.


Interested? Then please fill in the registration form:

To the registration form

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

For questions ask us on

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