April 2017
Wir müssten lernen
Ich muss für eine Klausur lernen und weiß, dass es eigentlich aussichtslos ist. Für das schwerste Fach meines Informatik-Studiums (Approximationsalgorithmen) habe ich während des Semesters fast gar nichts getan, ich bin (wie alle meine Freunde) durch die Erstklausur gefallen und es ist drei Tage vor der Zweitklausur.
C., der die Klausur auch schreiben muss (oder möchte, es ist ein Wahlpflichtfach, dessen endgültiges Nichtbestehen keine Konsequenzen hat, außer dass man etwas anderes dafür belegen muss), bemerkt beim wiederholten Durchgehen der Themen, dass sich die Inhalte in drei Kategorien aufteilen lassen: Allgemeine Definitionen, abstrakte Probleme (wie das Bin-Packing) und Algorithmen zu deren Lösung. Je weiter die Vorlesung voranschreitet, desto besser wird der Approximationsfaktor der Algorithmen, aber die gleichen Probleme werden immer wieder aufgegriffen. C. schreibt die Zusammenhänge auf und sieht, dass Begriffe erwartungsgemäß mehrfach vorkommen – also zum Beispiel verschiedene Algorithmen zur approximativen Lösung des Traveling Salesman Problem.
Er erklärt uns, dass das Lernen ganz einfach wäre, würde man nur das ausführliche Skript der Dozentin in eine Form überführen, in der diese Relationen offensichtlich sind. C. beginnt in Django (weil er damit kurz vorher in seinem Job gearbeitet hat) eine Web-App zu schreiben, die diese Idee umsetzt. Über eine Web-Oberfläche lassen sich Texte eingeben, die den oben genannten Kategorien zugeordnet werden können. Dann lassen sich «Zeilen» generieren, als Einheiten von Oberthema, Definition, Algorithmus und Problem. Diese kann man durchblättern und den Links zu den jeweiligen Definitionen folgen. Später kommt noch eine Volltextsuche. Ich entgegne, dass das Ganze auch in ein Wiki eingetragen werden könnte, C. entgegnet verschiedene «ja, aber!».
Einen ganzen Tag (den vorletzten) verbringen wir bei mir daheim zum «Lernen». Während C. immer weitere Features einbaut und das Ganze immer Wiki-ähnlicher macht, versuche ich, kleine Häppchen aus dem Skript in eine verständliche Form zu bringen. Ich bin sehr beeindruckt, wie schnell und – von außen betrachtet – einfach Django solche Projekte ermöglicht und wie gut C. das alles kann.
Weil wir keine Ahnung von Web-Servern haben, läuft die App immer auf dem Test-Server, der explizit nicht für den Dauergebrauch empfohlen ist (so sagt C.). Dieser Server läuft auf seinem Notebook, und ich kann auch von meinem Notebook darauf zugreifen. Nachdem wir halbherzig ein paar Definitionen in die Datenbank eingetragen haben fällt uns auf, dass ich nicht weiterarbeiten kann, wenn C. daheim ist. Man müsste es also hinkriegen, die App auf meinem Raspberry Pi, der per DynDNS immer erreichbar ist, zu starten. Dafür wäre aber Python 3.5 nötig, das hat der Raspberry aber nicht, vieles geht schief, und wir wissen beide nicht so ganz genau, was wir tun. Am nächsten (letzten) Tag läuft es schließlich auf dem Raspberry, aber nur, so lange die SSH-Sitzung, mit der es gestartet wurde, nicht geschlossen wird – die genau dann, als C. von daheim arbeiten möchte, abbricht. Da es inzwischen so spät ist, dass an ein Lernen des Aufgeschriebenen sowieso nicht mehr zu denken ist, ist das nicht mehr so wichtig.
Als C. das Programm zur Klausureinsicht der Dozentin vorführt, ist sie zwar gerührt, empfiehlt aber, in Zukunft doch einfach zu lernen. Natürlich sind wir beide durchgefallen.
(Franz Scherer)














