Der Wahlpflichtinformatikkurs (WP2) der Klasse 10.5 an der Heinrich-Böll-Gesamtschule (HBG) in Lütgendortmund entwickelte ein Naviagtionssystem für ihr Schulgebäude. Das (serverbasierte) System ist eine Festinstallation der Schule und steht Besuchern der Schule über das Internet bei der Suche nach Räumen zur Verfügung. Eine Installation ist nicht notwendig – die Anwendung benötigt als Grundlage lediglich einen WAP 1.x-fähigen Internetbrowser. Die eigentliche Arbeit erledigt ein Python-Skript unter Nutzung der Module Networkx und WontoML.
»Mir gefällt es, dass […] ein Navi-System der HBG existiert [und dass] wir wirklich zum Ziel gekommen sind. Die Wege […] könnten zwar noch kürzer sein, wobei es super ist, dass das System überhaupt funktioniert« (Jasmin, 16).
»Ich find's cool, dass wir es gemacht und versucht haben« (Stefania, 16).
»Mir gefällt die Idee des Navigationssystems, da die Schüler an einem Elternsprechtag ihre Eltern nicht durch die Schule leiten müssen und die Eltern selbstständig durch die Schule gehen können« (Majbrit, 16).
Die Palette der Anforderungen an das entwickelte Navigationssystem für Mobiltelefone liest sich vor dem Hintergrund der Lerngruppe (ein zwar leistungsstarker, aber dennoch im Sekundarstufen I-Bereich befindlicher Wahlpflichtkurs im 10. Jahrgang) wie ein ganz schöner Berg: Grundlagen der Graphentheorie, objektorientierte Programmierung, Algorithmisierung, Effizienzanalyse und eine Markup-Sprache (WML). Dass es dennoch möglich und überaus motivierend sein kann, diese Themen von enormer informatischer Relevanz in Unterrichtsprojekt der Sekundarstufe I zu vermitteln, zeigt dieses aus Schülerwünschen hervorgegangene Beispiel. Nach einer anwendungsbezogenen Einführung in graphentheoretische Optimierungsprobleme (Knotenabdeckung am Beispiel einer optimalen Verteilung von Briefkästen über eine fiktive Stadt, angelehnt an eine Unterrichtsidee aus Computer Science Unplugged) entstand das Bedürfnis auf Schülerseite, die erörterten Prinzipien praxisnah zu erproben.
Ein Kontext war schnell ausgemacht: Herkömmliche GPS-basierte Navigationssysteme funktionieren innerhalb von Gebäuden nicht. Den Schülerinnen und Schülern offenbarte sich schnell die Möglichkeit, die Räume eines Gebäudes als Knoten eines Graphen zu sehen und brachten dies mit ihrem tatsächlich recht kompliziert aufgebauten eigenen Schulgebäude in einen möglichen Anwendungszusammenhang. Ein reales Informatikproblem im Originalkontext also, lediglich im Miniformat.
In einem – wenn auch ganz anderen – Miniformat musste denn auch die Umsetzung geschehen. Schließlich wäre ein auf Desktop-Rechner (sprich: herkömmliche Internetbrowser) beschränktes Navigationssystem recht nutzlos. Geräte zur Navigation, das kennt man vom Siegeszug der GPS-Navis aus dem Auto, sind vor allem aufgrund ihrer Charakteristik als mobiler Begleiter beliebt. Routenplanung allein gibt es auch kostenlos von zuhause aus. Zur »Mobilisierung« bot sich die ebenfalls vom Autor entwickelte pythonbasierte Schnittstelle WontoML, zum Aufbau eines Graphen des Schulegebäudes das vorgefertigete Pythonmodul Networkx, zu welchem jedoch eine (extrem einfach zu erstellende) objektorientierte Wrapper-Schicht entwickelt werden musste. Nach dieser Vorarbeit auf Lehrerseite ging es mit den Schülern an den Aufbau des Graphen und zur programmiersprchlichen Umsetzung eine Suchalgorithmus. Der Graphenaufbau selbst ist sehr einfach zu realisieren:
Zunächst der Graph selbst und die Räume als Knoten (Auszug): Anfang Kasten
... #Konstruktion des # HBG-Graphen G=OOGraph() EingangA=Node(G,"EingangA") SvA171=Node(G,"SvA171") A172=Node(G,"A172") A101=Node(G,"A101") ...Ende Kasten
Dann die Sichtverbindungen zwischen Räumen als Kanten (Auszug): Anfang Kasten
... E0=Edge(EingangA,SvA171) E01=Edge(EingangA,TreppeA) E1=Edge(SvA171,A172) E11=Edge(SvA171,A175) E2=Edge(A172,A101) E3=Edge(A101,A102) E4=Edge(A102,A103) ...Ende Kasten
Gefolgt von einer (gemeinsam mit den Schülerinnen und Schülern analysierten, modellierten und implementierten) Breitensuche und dem Schreiben des Ergebnisses in eine WML-Seite (mittels WontoML): Anfang Kasten
... Weg=G.BFS(Startraumknoten, Zielraumknoten) index=Weg.__len__() while index > 0: karte1.absatzHinzufuegen( wontoml.Absatz( Weg[index-1].getValue() ) ) index=index-1 ...Ende Kasten
Das Ganze dann noch garniert mit einer Eingabe von Start- und Zielraum, und fertig ist das schulinterne Navigationssystem. Benötigt wurde lediglich noch Python-CGI-fähiger Internet-Speicherplatz – der schließlich sogar kostenlos ausfindig gemacht wurde. Test, Fehlerkorrektur und Wartung des Systems liegt vollständig in Schülerhand. So absolvierten die Schülerinnen und Schüler des Kurses bereits zahlreiche Testläufe zwischen verschiedenen Räumen, um Schwachstellen ihrer Modellierung des Gebäudes aufzudecken und zu korrigieren.
Trotz der hohen Komplexität des Themas war die Motivationslage und das Verständnis der Schülerinnen und Schüler während des gesamten Projektverlaufs ungemein hoch, was sicherlich der Anbindung an einen interessanten Realkontext (Navigation) und der Verwendung von Mobiltelefonen als Element aus der täglichen Lebenswelt der Lernenden geschuldet ist. Mobiltelefone als vollständige Informatiksysteme im Informatikunterricht sind ohnehin seit längerem Thema in der Didaktik der Informatik. Der schnörkellose Zugang mittels Python tut sein Übriges zu einer möglichen – semantisch nicht veschleierenden – Umsetzung der theoretischen Grundlagen. Das Projekt und sein Anspruch zeigen abermals, dass komplexe informatische Thematiken sehr wohl bereits in der Sekundarstufe I möglich sind – sofern ein lebensweltlicher Bezug gesichert ist, der nicht durch programmiersprachenspezifische Überfrachtung gefährdet wird.
Das Navigationssystem »Navi 'Renn-Durch-Die-Schule'« (Namenswahl der
Schüler) ist zur Zeit verfügbar unter: themartin.110mb.com/cgi-bin/start.py
Zukünftig wird ein eingängiger URL angestrebt.
Die möglichen Raumnummern/-bezeichnungen können eingesehen werden unter: themartin.110mb.com/cgi-bin/HBGNaviRaumnummern.pdf
Wer kein Mobiltelefon mit WAP-Browser sein eigen nennt oder die Kosten scheut, kann das Navigationssystem auch mittels eines öffentlich zugänglichen WAP-Browsersimulators (gut geeignet ist z.B. www.wapsilon.com) testen.