Individueller Stundenplanersteller für Jahrgang 12

Als ich vor ein paar Wochen in Jahrgang 12 kam, wurde ich bereits am ersten Tag mit der Nachricht überrascht, man solle seinen Stundenplan anhand der gegebenen Kurslisten und der Stundenplanvorlage selber erstellen. Da das natürlich viel zu lange dauert, die einzelnen Kurse alle herauszusuchen und in die Stundenplanvorlage einzutragen, dachte ich mir, ich tüftle ein bisschen rum und schreibe ein kleines Skript in Python, welches für mich meinen Stundenplan erstellt. Am Ende hat mich das zwar mehr Zeit gekostet als das manuelle Raussuchen der Kurse, aber nun kann ich auch von anderen Schülerinnen und Schülern meines Jahrganges blitzschnell den Stundenplan herausfinden.

Vorbereitung

Bevor wir den Stundenplan erstellen können müssen, wir uns zunächst die Kurslisten PDF-Datei in eine Text-Datei umwandeln lassen und sie in unserem Python-Code verlinken:

Code-Aufbau

Wie bereits oben schon erwähnt, habe ich mich für die Umsetzung dieser Idee für die Programmiersprache Python entschieden, da sie eine einfache und minimalistische Syntax hat und ich mit ihr sehr gut zurechtkomme. Hier ist ein Teilausschnitt des Codes:

Der Code unterteilt sich in drei Funktionen (eine Funktion in Python ist ein geschlossener Code-Block, der eine bestimmte Aufgabe erfüllt):

  • def kurse_extrahieren() — Extrahiert Kursdaten, wie Schüler-, Lehrer- sowie Kursnamen, aus der Kurslisten-Datei und erstellt eine Liste von Kursobjekten
  • def suche_kurse_von_schueler(schueler_name, kurs_daten) — Findet die Kurse der Schülerin/des Schülers in zuvor extrahierten Kursdaten
  • def fuege_kurse_in_stundenplan(gefundene_kurse, stundenplan) — Fügt die gefundenen Kurse der Schülerin/des Schülers in die Stundenplanvorlage.

Stundenplan erstellen

Wir lassen die ersten beiden Funktionen außen vor und schauen uns zunächst nur die Letzte der drei genauer an.

Die Funktion setzt sich in drei for-Schleifen zusammen, die Kurse, Tage und Variablen in der Stundenplanvorlage durchgehen, um passende Kurse im Stundenplan zu finden und zu aktualisieren. For-Schleifen in Python ermöglichen, dass bestimmte Codeblöcke beliebig oft wiederholt und iterierbare Objekte nach und nach durchlaufen werden können.

Die äußere Schleife (for kurs_name, kurs_leiter in gefundene_kurse) durchläuft alle gefundenen Kurse und deren jeweiligen Lehrer in den zuvor gefundenen Kursen des gesuchten Schülers. Hinter dem Doppelpunkt folgt dann, was für jeden Kursnamen sowie Kursleiter gemacht werden soll, also die Anweisung.

Die mittlere Schleife (for tag, faecher in stundenplan.items()) durchläuft in der, über der Funktion stehenden, Stundenplanvorlage jeden Wochentag und die darin enthaltenen Fächer bzw. Variablen und ermöglicht es dadurch, die gefundenen Kurse den richtigen Tagen zuzuordnen.

Die innerste Schleife (for i, fach in enumerate(faecher)) durchläuft schließlich jedes Fach in der zuvor erstellten Liste der Fächer des aktuellen Tages. Ich habe hierbei die enumerate-Funktion verwendet, um den Index i jedes Fachs in der Liste zu erhalten. In der innersten Schleife werden zudem die einzelnen Bestandteile des Faches, also das, was in der Stundenplanvorlage zwischen den “ ” steht, in einzelne Strings zerlegt. Aus dem Fach “1./2. (Woche B) F” wird [“1./2.”, “(Woche”, “B)”, “F”]. Dies geschieht durch fach_parts = fach.split(). Anschließend wird der letzte String unter fach_name gespeichert, in unserem Beispiel wäre das “F”. Nun weisen wir mit einem einfachen if-Statement den Kursen ihre jeweiligen Fächer zu bzw. Variablen zu. Mit kurs_name.endswith(fach_name) prüft das Programm nun, ob der letzte Buchstabe oder die letzte Ziffer der jeweils gefundenen Kurse einer Variablen bzw. Fach(fach_name)  gleich ist. Ist das so, wird der jeweilige Kurs in das entsprechende Feld des Stundenplans eingetragen.

Wie ist nun mein Stundenplan?

Um meinen Stundenplan herauszufinden, führe ich das Programm aus und gebe meinen Namen ins Input Feld ein.

Wow, jetzt weiß ich endlich meinen Stundenplan und kann den von anderen innerhalb von Sekunden herausfinden 😊

P.S.: Falls du dir den Code noch etwas genauer anschauen möchtest oder es selbst mal ausprobieren möchtest, findest du den Code auf meinem GitHub: https://github.com/w0tas/stundenplan

Das könnte dich auch interessieren …