SOI Camp 2020
29 participants from Switzerland and Sweden met in Sarnen to train together for one week (08.02.2020 - 15.02.2020). In many lectures, contests, and other activities they sharpen their skills in algorithms and practice to apply them in challenging problems. Each day, one of the participants writes about their experience.
Saturday (08.02.2020, Organizing Team)
In the late afternoon we all assembled in Sarnen, to start an interesting week of lectures, contest, and fun activities. We first started out with a few games to get to know each other, followed by a short introduction about the camp. After dinner we had some free time to play the first games.
Sunday (09.02.2020, Josia John)
Um 7:00 Uhr gab es Frühstück. Wir sind pünktlich um 6:57 aufgestanden… Wieso sollte man sich mehr Zeit nehmen? Hat doch gereicht. Naja, nach dem Frühstück konnten wir kurz Zähne putzen und unseren Schreibblock holen, um danach um 7:40 das Warm-up zu schreiben. Das lief relativ gut, ich kam schnell zu einer Lösung und konnte sie gut auf dem Papier umsetzen. Nach 40 Minuten harter Arbeit wurden uns dann die Lösungen präsentiert und zu meiner Überraschung waren meine Lösungen beinahe gleich schnell. Danach gab es Lectures über Graphen, bei welchen ich gut mitgekommen bin, da ich mich schon mit den Aufgaben der 2H auf das Camp vorbereitet habe. Mit dem Wissen aus den Lectures konnten wir dann selbst Übungsaufgaben lösen. Nach dem stärkenden Mittagessen durften wir uns schon in einem Trainings Contest batteln. Ich habe zwar nicht so gut abgeschnitten, aber ich denke, das liegt einfach daran, dass ich erst seit kurzem in C++ programmiere und zum ersten Mal teilnehme. Nach dem Contest wurden uns auch dazu Lösungen präsentiert. Wieder konnten wir uns über ein warmes Essen freuen. Nach dem Essen haben wir dann noch etwas weiter gecodet, geplaudert und gespielt. Ich habe dann entschieden relativ früh ins Bett zu gehen, was sich für den nächsten Tag definitiv ausgezahlt hat.
Monday (10.02.2020, Priska Steinebrunner)
Der Tag begann um 7 Uhr mit dem Frühstück und wie schon am Tag zuvor gab es nebst dem Standard-Lager-Morgenessen (Brot und Müsli) auch noch Pancakes. 7:40 begann die Arbeit des Tages mit den Warm-Ups: Zwei theoretische Aufgaben und 50 min Zeit, diese zu lösen. Danach wurden die Aufgaben besprochen. Das Thema des Montags war DP (Dynamic Programming). Ab 9 Uhr gab es, aufgeteilt in zwei Tracks, Theorieinputs und Aufgaben zu lösen und um 13 Uhr, mit einer leichten Verspätung, Mittagessen. Am Nachmittag fand ein Contest über 3 Stunden statt. Vor, und dann vor allem nach dem Abendessen, hatten wir freie Zeit, in der Spiele gespielt, Diskussionen geführt und/oder weitere Aufgaben gelöst wurden.
Tuesday (11.02.2020, Lea Wallimann)
Never would I have guessed that we would do something without a laptop in the informatics camp. I thought that we were going to spend all the time on the computer. But I was proven wrong. Tuesday was No-Laptop-Day where everybody tried to solve theoretical informatics tasks on paper. We were put into randomly assigned groups of three to four. We all had to give our best to get as many points as possible because there was going to be a small prize.
You had to apply the theory you had learned the previous days on much more complicated tasks where some almost gave up. But since we were in groups we could help one another. This allowed us to solve some of the tasks we thought could never be solved alone. In the afternoon we did an image-hunt where my expectations were once again proven wrong:
Going outside definitely wasn’t an activity I had expected here. But it still was a lot of fun. The goal of the image hunt was to go to specific places in and around Sarnen. In every location we would take a funny picture of the group. There we could let our creativity take its course, as the goal was to make our pictures stand out.
You couldn’t have imagined the many different approaches to this task. The most unique picture was of three people skiing down a hill, with only their outlines visible. While some pictures looked very similar, there were some pictures I could have never thought of coming up by myself. Some people even illustrated an entire story.
Going back to the camp house proved to be more difficult than anticipated. Because we were soaking wet and freezing due to the cold and rainy weather. Thankfully nobody got sick because as soon as we had arrived at our camp house we would run to the kitchen to get some hot soup.
Wednesday (12.02.2020, Jonas Meier)
Around seven o’clock in the morning, we started our day with warm pancakes for breakfast. A great way to start the day and an even better source of calories. Calories that we would definitely have a need for later, so that our minds would not desert us during the hard warmup tasks. Today, the two tasks that were stated in the warmups proved to be quite difficult. You had to pay close attention to detail. Afterwards, we learned about different applications of the binary search algorithm. Never had I imagined binary searching over floating points. We also got introduced to the world of segment trees. This is going to be very useful to deepen my understanding of competitive programming. We learned about different ways on how to apply and modify this advanced data structure. For lunch we had a delicious combination of Hörnli and minced meat. To make such a tasty meal for this many people has got to be very difficult but they certainly managed to shine. I don’t think you could distinguish it from a restaurant. After lunch we had a contest, to prove our newly acquired skills. I almost had to cry while trying to debug my segment tree. But in the end, I could present my solution to the grader and solve the task. I’d never got points on a segment tree task in a competitive setting before. After the contest was over we all were exhausted. Going into the evening, we discussed the ideal solutions to the tasks from today’s contest. As always, we felt quite stupid to not have come up with the solutions by ourselves. Today, the contest was way more implementation-heavy and I have to say that this was a welcome surprise. For dinner we had Polenta with Ratatouille. Unfortunately we were forced to bid goodbye to our beloved pancake chef Fabian. After that we played a game where you have to present some slides you’d never seen before. We modified the game by using our own presentations and giving them to someone else who was then going to present it. In total, there were three presentations held. Caspar went first and after quite a short while, we decided to let him present Raphael’s maturity paper about the classification of leukocytes using convolutional neural networks. To tell you the truth, it was a lot funnier than I had expected it to be. For the following presentation Raphael insisted on holding a presentation himself. In the end he ended up with a presentation Caspar had made about his grandfather. I’m not going to lie but this presentation was a bit more difficult because of its repetitive nature. The last presentation was more difficult and even longer due to the complexity of the topic, which was on provability. After that we came up with the great idea to hurt all readers of this text, because we spent four hours creating this blogpost so we can hide a secret message. I hope you will find and appreciate it.
Thursday (13.02.2020, Lukas Münzel)
Thursday started with the regular nutritious breakfast at seven o’clock in the morning. Approximately one and a half hours later we sat in the train for an excursion to Lucerne.
But what could 29 learning and a few learned computer scientists do in Lucerne? A foxtrail of course. A Foxtrail is a team challenge through the town. In order to succeed a group has to solve various riddles en route. Arriving in Lucerne we split into groups of six people and killed time until our group could start by playing games such as Codenames and Werewolves. The foxtrail per se was interesting and lasted for about three hours.
Returning home there was delicious dinner after some free time. Afterwards we could acquire new knowledge in various computer science topics, from quantum computing to proofing that the runtime of a certain operation in the union find algorithm is the inverse of the Ackermann function.
Friday (14.02.2020, Gian Dubach)
Nach einem ausgedehnten Spieleabend ist man normalerweise etwas müde, doch an diesem Morgen liess sich keiner etwas davon anmerken. Man merkte, dass alle wussten, dass um Acht der 5-stündige I-Cup beginnt. Alle wachten noch final auf und stärkten sich für den Contest. Darauf richtete sich jeder den Platz ein und der Contest begann. Ich begann die erste Aufgabe zu lesen und starte nach der Hälfte der Beschreibung noch einmal oben, weil ich das Problem noch nicht ganz verstanden habe und es mir schwierig für die Erste Aufgabe vorgekommen ist. Ich überlegte, wie dieser Contest werden wird, wenn mir bereits bei der Ersten Aufgabe kein direkter Lösungsweg einfällt. Deswegen habe ich mit dem Zweiten Problem befasst und mir ist bei den Limits aufgefallen, dass ich einen Lösungsweg für 50 Punkte habe und das ziemlich schnell lösbar ist. Nach diesen Startschwierigkeiten merkte ich, dass die Erste Aufgabe eine der schwersten war, was sich am Nachmittag bei der Aufgabenbesprechung bestätigte. So nahm der Contest seinen Lauf. Als der Contest fertig war streckten sich alle mal in alle Richtungen und stürzten sich hungrig zur Essensausgabe. Der Nachmittag wurde dann entspannter mit der Aufgabenbesprechung und viel Freizeit, um Spiele zu spielen. Viele befassten sich auch noch einmal mit den Contest-Aufgaben, weil man davon viel lernen kann. Der Tag ging zu Ende mit einem gemeinsamen, gemütlichen Abend, der das ganze Lager abrundete.
Saturday (15.02.2020, Organizing Team)
After the closing evening we spent a long time into the night playing games, discussing or exploring the village. Sooner or (mostly) later most people still decided that it would probably be a good idea to get some sleep. On Saturday the only thing left to do was to pack our stuff and clean the house. Thanks to the help of everyone this went quite smooth and soon after everyone was on their way home. With this, another interesting and educational SOI camp came to an end.
We wish all the participants good luck in the future rounds and we hope they can apply what they learned during the week.