Dieses Schuljahr durfte ich gemeinsam mit Kollegen in einer Oberstufenklasse Anwendungsentwicklerinnen unterrichten. Mein Job war es, mit ihnen die Shell-Programmierung zu üben. Das haben sie sehr gut hingekriegt. Chapeau! Anlässlich der AP2 am 28.4. haben sie sich dann noch gewünscht, dass ich ihnen die Algorithmen in Sachen Suchen und Sortieren aufdröseln möge. Nächsten Donnerstag gibt es nun die Gesamtsicht dazu. Grund genug, dieses Paket allen anderen schon jetzt anzubieten:
Lösung
Die Methode dafür war (fast) dieselbe, wie bei der Shellprogrammierung1: Wieder habe ich Idee und Details eines jeden Algorithmus als Kommentar in einer Sourcecodedatei beschrieben. So konnten die Schülerinnen ihre Version gleich dahinein implementieren. Allerdings ging es jetzt nicht mehr um Shellskriptdateien, sondern um Python. Zudem habe ich für jede Aufgabe zur Such- oder Sortierung selbst eine Lösung implementiert und daneben gelegt. So konnten die Schülerinnen ihre Ideen mit meinen vergleichen. Denn es gibt ja — wie so oft im Leben — mehrere Lösungen.
Diese Übungsdateien stelle ich nun im Rahmen von proTirone gerne allen zur Verfügung2:
- sose-00-sequential-search.[sol]py
- sose-01-binary-search-iterative.[sol]py
- sose-01-binary-search-recursive.[sol]py
- sose-02-insertion-sort.[sol]py
- sose-03-selection-sort.[sol]py
- sose-04-bubble-sort.[sol]py
- sose-05-quick-sort.[sol]py
- sose-06-merge-sort.[sol]py
Hintergrund
Noch wichtiger aber ist, dass ich jeden Algorithmus visualisiert habe. In der Präsentationsdatei sbj-01.sort-search-zenprese.pdf. Denn viele meiner Schülerinnen tun sich leichter, wenn sie die Ideen gesehen haben. Was die Algorithmen ausmacht, wie sie funktionieren, beschreibt auch das entsprechende Tonspurdokument sbj-01.sort-search-oraltrack.pdf. Und gleich am Anfang habe ich in beiden Dateien die Laufzeitproblematik und Algorithmusbewertung auseinanderklamüsert. Denn diese OH-Notation ist ja wirklich knifflig.3
So sollte es — meine ich — klappen. Jedenfalls wünsche ich allen, dass sie damit, wenn dazu eine Frage kommt, sicheren Boden unter den Füßen haben.
Drum wie immer für alle: Happy learning, happy coding, happy reusing
Und was ist der größere Zusammenhang?
Auch unser Projekt proTirone beginnt mit dem wohin und wozu, gefolgt von einer kleinen Reorg und einer Generalisierung des Namens aus Anlass der OER-Konferenz 2026. Für das jeweilige Lernfeld den Scope zu klären, ist wichtig. Beim Unterricht heißt das nur anders, nämlich Curriculum. Die Lernfeldsystematik erlaubt es sogar, das Lernfeld 3 in den Lernfeld-9-Stunden für die AP1 zu wiederholen, systematisch und im Schnelldurchgang. Und es erlaubt AP2 spezifische Infos bereitzustellen, für die FIAE, die FIDV und die FIDP.
Im Übrigen: Männer sind mitgemeint.
- Unter https://github.com/protirone/protirone.lessons/tree/main/fachinformatik/lf.11a/sbj-00.sh2go-snp.sh2go stelle ich im selben Ordner auch die Materialien zum Lernen der Shellprogrammierung bereit. [↩]
- Siehe dazu https://github.com/protirone/protirone.lessons/tree/main/fachinformatik/lf.11a/sbj-01.sort-search-snp.sose [↩]
- Beim Insertion-Sort habe ich die Details dazu einmal hergeleitet. [↩]