News
Zurück zur Übersichtsseite

#Informatik

26.01.2020

Fit für BwInf

13.00 Uhr. Potsdam. Jugendherberge. Langsam aber stetig wächst die Menge an schweigenden Schülern, Schülerinnen und Studierenden in der Lobby. Nach kurzer Zeit des Schweigens und Gedankenlesens ist klar: Alle sind aus dem selben Grund hier. Das "Fit-für-BwInf-Camp", welches sich als Ziel gesetzt hat, die 30 eingeladene SchülerInnen und Studierende auf die nächsten Runden des Bundeswettbewerbs Informatik vorzubereiten. Mit immer mehr anwesenden Personen wächst nun auch langsam die Gesprächsbereitschaft. Kommunikationen über Namen, Lieblingsprogrammiersprache und Lieblingsalgorithmus beginnen.

if (conversation.contains(interestingTopic)) {
talk();
}

Nach dem Einchecken in die Zimmer um 14.00 Uhr geht es mit der S-Bahn zum Hasso Plattner Institut, wo das Camp zu großen Teilen stattfinden wird. Auf eine kurze Einführung und Vorstellung der Betreuenden folgt eine Führung über das Gelände und durch die Gebäude des HPIs. Dabei gibt es schon die ersten kurzen Fachvorträge der einzelnen Fachbereiche und wir beobachten nicht nur eine Vorrichtung beim durchgängigen Balancieren eines Gewichts auf einem langen Stab durch Regelungen und Steuerungen, sondern hacken uns kurzerhand in ein WLAN-Netz, um die dortigen Geräte zu kicken, ihre Kommunikation mit dem WLAN-Netz zu beobachten und dadurch an das WLAN-Passwort zu gelangen. An dieser Stelle sei gesagt: Achtung! Illegal! Nicht nachmachen!

if (!isNullOrEmpty(password)) {
yayNotSaved();
} else if (password.IsKnown()) {
beHappy();
} else {
hackIn();
}

Die erste längere Vorlesung behandelt das Thema Approximationsalgorithmen für das TSP - das Traveling Salesman Problem. Dieses Optimierungsproblem beschreibt den Sachverhalt, dass eine Menge von Orten genau einmal besucht werden soll und die Reisestrecke dabei möglichst gering gehalten werden soll. Außerdem soll der letzte Ort derselbe wie der erste sein. Im ersten Moment klingt dieses Problem vielleicht trivial, brachtet man jedoch allein alle 2053 Städte Deutschlands ist die Lösung des Problems alles andere als einfach geschweige denn schnell (unter einem Jahrhundert) zu finden, da es so viele verschiedene mögliche Verbindungen zwischen den einzelnen Städten gibt. Ein Approximationsalgorithmen löst ein Optimierungsproblem, wie das TSP, näherungsweise. So ist es der Menschheit bis jeher nur gelungen eine 1.5 Approximation des TSP zu berechnen. Bei einem komplexen Problemen dieser Art erhalten wir also zumeist nicht den kürzesten Weg, sondern einen, der 1.5-fach so lang ist. Die wundervollen mathematischen und informatischen Hintergründe würde hier an dieser Stelle wohl aber den Rahmen sprengen.

if (you[understandingTheContentOfText] == true) {
listenCarefully();
} else {
sneakAway();
}

Zum Ende des Tages gibt es für jeden eine an den momentanen Wissensstand angepasste Einführung in die Programmiersprache Java. Nachdem wir am späten Abend die Jugendherberge wieder erreicht haben, können noch Spiele gespielt werden. Das bekannteste Spiel für große Gruppen dürfte wohl Werwolf sein. Da die normale Variante davon aber jedem bekannt ist und es auf Dauer dann doch eher eintönig wird, bringen wir mit der Informatiker Version von Werwolf einige interessante Neuerungen in das Spiel. Somit gibt es keine Wölfe, sondern die Manager, die sich jede Nacht heimlich einigen, wen sie feuern, und Product Owner, die Manager mit mehr Einfluss sind - also quasi wie Werwölfe, die vom Seher - in diesem Fall dem Datenbankadmin - nicht erkannt werden können.

switch (character) {
case „Product Owner“:
firePeopleAtNight();
pretendBeingNice();
break;
case „Datenbankadmin“:
spyOnPeople();
break;
case „Manager“:
firePeopleAtNight();
break;
}

Als wir am nächsten Tag das HPI erreichen, beginnen wir in 6er Gruppen mit einem kleinen Warm-up: Es gilt in 15 Minuten mithilfe von rohen Spagetti und Klebeband den höchsten Turm zu bauen. Mit sehr interessanten Komplexen erreichten manche Gruppen eine Höhe von über einem Meter.

{
buildHigher();
} while (!tower.collapse)

Während des gesamten Tages soll es sich nur um die geheimnisvolle Programmier-Challenge gehen. Nach einer Einteilung in Gruppen von 7 bzw. 8 Personen und deren räumlicher Trennung wir uns nun endlich eröffnet, was deren Inhalt sein wird: Wir spielen den gesamten Tag über eine selbstprogrammierte Variante des Spiels Plants vs. Zombies. 2 der vier Gruppen spielen als Zombies gegen die anderen beiden Gruppen als Pflanzen. Das Platzieren von Pflanzen oder Zombies kostet jedoch Coins und diese Coins müssen wir uns durch das Lösen komplexer Programmierprobleme erarbeiten. Je schwerer eine Aufgabe, umso mehr Punkte gibt es für die korrekte Lösung. Da ein Team immer nur 4 Aufgaben gleichzeitig bearbeiten darf, heißt es nun für den Rest des Tages: Unter Zeitdruck möglichst komplexe Programmierprobleme in Teamarbeit lösen und gleichzeitig das Spielfeld von Plants vs. Zombies im Blick behalten.

for(int i = 0; i < all; i++) {
solveProblem();
getCoins();
winGame();
}

Jede Gruppe hat zwischen 15 und 20 Aufgaben gelöst. Jeder Einzelne hat dabei sicher sehr viel gelernt. Mittlerweile ist es 21 Uhr. Nachdem wir gemeinsam über die Sinnhaftigkeit mancher Programmieraufgaben diskutiert haben (eine Oma, die Weihnachtskarten an 2046 Personen schreibt, ein Auto, dass mit 10-facher Lichtgeschwindigkeit geblitzt wird, oder der Weihnachtsmann, dessen Lagerhäuser anscheinend eine so große Fläche einnehmen, dass die einzige Möglichkeit für seinen Wohnraum in unserem Sonnensystem wohl die Sonne wäre, von der er über ein dreiviertel der Fläche mit seinen Lagerhäusern einnimmt (ihr solltet eure Wunschzettel in Zukunft also zur Sonne - nicht zum Nordpol - adressieren)), sitzen wir nun gemeinsam mit 4 Korrektoren und ehemaligen, erfolgreichen Teilnehmern des BwInfs zusammen und haben die Möglichkeit Fragen zu stellen. Jede Unklarheit wird beseitigt und wir lernen viel darüber, wie unsere Arbeiten kontrolliert werden. Den Rest des Abends beginnen wir mit Kartenspielen. Bis um 1 Uhr sitzen wir noch in der obersten Etage des HPIs und spielen Kahoot. Danach geht es zurück zur Jugendherberge.

if (!values.AreMeaningful) {
task = programmingTask;
}

Der letzte Tag bricht an. Am heutigen Tag sollen wir speziell auf die Endrunde des BwInfs vorbereitet werden. Das bedeutet eine Stunde Zeit, um sich erneut in eine Aufgabe des vergangenen Tages einarbeiten und eine Präsentation des Lösungswegs und der Algorithmik vorzubereiten. Anschließend werden die Ergebnisse im größten Hörsaal des HPI präsentiert. Nachdem nun jeder Teilnehmer einen speziellen Algorithmus erläutert hat, zeigen uns Studenten und Mitarbeiter des HPI einige Lösungen und Ansätze für Aufgaben, an denen wir am gestrigen Tag sehr lang gesessen oder nur sehr ineffiziente und langsame Lösungen gefunden hatten.

{
tryOtherSolution();
} while (task[neededTimeToGetSolution] > big);

Zum Abschluss des Camps nutzen wir nun parallelisierte Bubble-Sort Algorithmen, um uns auf einer Steinmauer stehend nach Alter, Größe und Länge der Schlafenszeit in der vergangenen Nacht zu ordnen.

if (you[age] > personOnYoureLeftSide[age]) {
goLeft();
}

Nach dem Camp sind wir nicht nur auf die nächsten Runden des Bundeswettbewerbs Informatik vorbereitet, sondern haben viele neue Verfahren kennengelernt, komplexe Probleme zu lösen. Außerdem haben wir in unserer Zeit im Camp viele Methoden zur effektiven Arbeit im Team an Programmieraufgaben entdeckt, die uns auch in Zukunft weiterbringen werden.


Aktuelle Ereignisse am Siemens


Logo DigitalPakt Schule Logo Mint-EC Logo Siemens Logo OvGU Logo MDCC Logo SoRSmC

Stendaler Straße 10, 39106 Magdeburg, 0391/2537945
Diese Seite wurde von Schülern des Werner-von-Siemens-Gymnasiums erstellt und wird ebenfalls von ihnen betreut.
© 2023 Werner-von-Siemens-Gymnasium Magdeburg