Short learning diary by Joël Huber

In einem Lerntagebuch erzählt Joël Huber, Finalist der SOI 2018/2019, was er während der Olympiade gelernt hat.

Joël Benjamin Huber
News

Dieser Artikel erschien ursprünglich im Magazin UniAktuell der Uni Bern

Der 17-jährige Gymnasiast Joël Huber hat im Mai 2019 die Informatikolympiade an der Universität Bern gewonnen. In einem Lerntagebuch erzählt er, was er während der Olympiade gelernt hat – und weshalb ihn die Informatik immer mehr fasziniert.

Erste Hürde: der Einsteiger-Workshop an der ETH Zürich

Wie an jeder Olympiade gibt es auch an der Wissenschafts-Olympiade mehrere Qualifikationsrunden, die man überstehen muss, um das Final zu erreichen. An die erste Hürde wage ich mich beim Einsteigerworkshop an der ETH Zürich am 20. Oktober 2018.

Als ich in Zürich eintreffe, bin ich erleichtert, unter den Teilnehmerinnen und Teilnehmern ein bekanntes Gesicht zu entdecken. Sollte ich aufgeschmissen sein, bin ich immerhin nicht ganz alleine, denke ich mir. Vor ein paar Wochen habe ich mich für den Kurs angemeldet. Ich kann zwar schon programmieren, weil ich gerne Spiele entwickle. Viel über Informatik weiss ich allerdings noch nicht und ich habe keine Ahnung, was mich bei der Olympiade genau erwartet.

https://live.staticflickr.com/65535/47946599747_151ec8dc16_k.jpg

Joël (rechts) mit zwei seiner drei Teamkollegen, die sich für die Internationale Informatikolympiade qualifiziert haben.

Zum Glück lerne ich schnell die anderen Jugendlichen kennen. Wir lösen Aufgaben in Gruppen und haben viel Spass beim Spielen in den Pausen. Ich konzentriere mich auf das Entwickeln von Algorithmen. Leider muss ich schnell erkennen, dass ich davon nicht die geringste Ahnung habe. Ein Beispiel: Wir sollen herausfinden, ob es in einer Liste ein majorisierendes Element gibt − also ein Element, das mehr als die Hälfte der Liste ausmacht. Das Problem: Die Zahlen in der Liste können sehr gross werden. Ich kann also die einzelnen Elemente nicht einfach zählen und eine Liste führen. Wie ich später erfahre, kann dieses Problem mit verschiedenen Strukturen einfach umgangen werden. Aber als Anfänger weiss ich das noch nicht. Ich versuche es also mit sogenannten Stacks und einem guten Algorithmus. Ich scheitere. Doch die Lösung, die mir der Workshop-Leiter später erklärt, beeindruckt mich: Es ist ein simpler Algorithmus, der das Problem auf eine andere Art betrachtet und löst. Nach dem Workshop bin ich fasziniert und motiviert, mich weiter an den Aufgaben der ersten Runde zu versuchen.

Vorbereitung: Informatik-Lager in Sarnen

Zu meiner grossen Überraschung habe ich mich beim Einsteigerworkshop für das Lager in Sarnen vom 10. – 16. Februar 2019 qualifiziert. Es war nicht mein Ziel, die geplanten Skiferien zu streichen und eine ganze Woche in einem Informatiklager zu verbringen. Aber ich bin inzwischen so angefressen, dass ich mich schliesslich entscheide, doch nach Sarnen zu gehen. Ein wichtiger Grund für meinen Entscheid war, dass auch die Teams aus Rumänien, Israel und der Slowakei beim Lager mit dabei sind.

Während der Woche finden Vorlesungen mit unterschiedlichem Schwierigkeitsgrad statt. Ich beginne bei den Einsteigern, kann aber rasch zu den Fortgeschrittenen wechseln. Ein Thema, das wir behandeln ist die Binary Search. Im Prinzip geht es darum, in einer sortierten Liste ein bestimmtes Element zu finden. Ich lerne gleich zwei wichtige Dinge. Erstens: Man kann eine Vergleichsfunktion durch andere Funktionen ersetzen. Zweitens: Man soll sich immer vorstellen, was der geschriebene Code ganz genau macht. Ich stelle für mich eine weitere Regel auf: Ich will meinen Code so schreiben, dass ich ihn auch nach langer Zeit wieder durchlesen kann und genau verstehe, was er macht. Diese Grundregel hilft mir − seit ich sie formuliert habe, habe ich keine Schwierigkeiten mehr beim Umsetzen der Algorithmen.

https://live.staticflickr.com/7813/46517071134_7bdfb28563_k.jpg

Pause im Informatik-Lager in Sarnen.

Zweite Runde: Theorieprüfung an der ETH Zürich

Die zweite Prüfung der Olympiade steht an. Der Theorieteil findet am Samstagmorgen am 9. März 2019 in Zürich statt und dauert fünf Stunden. Wir müssen Käse kombinieren, Granatäpfel transportieren, Erz aus einer Miene fahren und Lichterketten steuern. Ich beginne mit der Käse-Aufgabe. Leider finde ich aber keine vollständige Lösung. Das Lichterketten-Problem verstehe ich nicht wirklich und auch meine Lösung zur Minenaufgabe ist alles andere als optimal.

Bleibt noch die Granatapfel-Aufgabe: Gegeben ist ein Netzwerk aus Strassen, über die man nur fahren kann, wenn das Gewicht des Lastwagens kleiner ist als ein (pro Strasse individueller) Wert. Ich muss herausfinden, wie viele Granatäpfel der Lastwagen von A nach B bringen kann, wobei er nicht zu lange brauchen darf. Von allen vier Aufgaben finde ich diese am einfachsten – ich habe rasch einen Lösungsansatz: Gewichte ausprobieren und herausfinden, wie lange man braucht, wenn man nur die Strassen nimmt, die das jeweilige Gewicht erlauben. Ich finde aber das optionale Gewicht nicht effizient heraus. Doch da erinnere ich mich plötzlich an die Lesung in Sarnen: Man kann Binary-Search verwenden, um eine optimale Lösung zu finden. Schnell überprüfe ich das Nötige − und tatsächlich, ich kann es anwenden! Hastig muss ich so vieles durchstreichen und zwischen den Zeilen ergänzen, dass ich dem Korrigierenden in Gedanken viel Glück beim Entziffern wünsche! Und tatsächlich schaffe ich es in die nächste – es ist die letzte – Runde der Wissenschafts-Olympiade.

Es gilt ernst: Finale an der Universität Bern

Am 17. Mai 2019 ist der erste grosse Finaltag. Dank meiner guten Leistung bei der praktischen Prüfung der 2. Runde habe ich mich fürs Finale qualifiziert. Ich hatte in den letzten Wochen sehr viel trainiert und war sogar in einem weiteren Lager in der Slowakei dabei. Ich fühle mich gut vorbereitet und freue mich auf das Finale. Es besteht aus vier Prüfungen an zwei Wochenenden, einmal bei Siemens in Wallisellen und einmal an der Universität Bern. Ich denke immer wieder daran, dass ich es vielleicht an die Internationale Olympiade schaffen kann. Dann sage ich mir aber sofort, dass mir noch die Erfahrung fehlt. Dass ich noch nicht lange genug dabei bin und deshalb meine Chancen eher gering sind. Ich setze mir das Ziel, besser zu sein als Achter. Aber eine Stimme in meinem Kopf sagt mir immer wieder: Die Internationale Olympiade ist machbar. Kurz vor dem Contest verscheuche ich alle Gedanken. Ich leere meinen Kopf, singe innerlich eine Melodie und dann höre ich: «Contest has started».

https://live.staticflickr.com/65535/47946639851_f65f9bfd5c_k.jpg

Joël beim Lösen der Finalaufgaben.

Ich kann es kaum glauben: Nach den letzten beiden Finaltagen an der Universität Bern halte ich am 25. Mai 2019 eine Goldmedaille in den Händen − mein Ticket an die Internationale Informatikolympiade! Dass ich es gleich in meinem ersten Teilnahmejahr schaffen würde, hätte ich nie geglaubt. Hätte mir das jemand am Tag des Einsteiger-Workshops gesagt, ich hätte ihn für verrückt erklärt. Ich habe in diesem Jahr sehr viel gelernt. Aber es gibt noch viel, viel mehr zu lernen.