Textuelle Programmierung mit 5.- und 6.-Klässlern, kann das funktionieren?
Einblicke in ein Modellprojekt mit sieben Schulen aus der Städteregion Aachen
Katja Bach8, Nils Springob9
Abstract: In diesem Beitrag wird über ein Modellprojekt aus dem Bereich „Programmieren lernen“ für die Sekundarstufe I berichtet. Es wird zunächst kurz auf die Entstehung eingegangen, anschließend wird der Ablauf und die Umsetzung des Projekts beschrieben. Nach der genauen Darstellung des Aufbaus der einzelnen Tutorials wird auf die Strategie zur Motivierung der Schülerinnen und Schüler eingegangen. Abschließend wird ein kurzes Fazit gezogen.
Keywords: Einstieg in die Digitale Welt, Textuelle Programmierung, Sekundarstufe I, digitale Aufklärung
1 Einleitung
Von Januar bis Juni letzten Jahres haben sich sieben Schulen, 14 Lehrerinnen und Lehrer und 223 Schülerinnen und Schüler einer ganz besonderen Herausforderung gestellt: Ohne Vorkenntnisse bauen die Schüler10 in ein bis zwei Doppelstunden einen eigenen kleinen Roboter zusammen und programmieren ihn anschließend textuell in C/C++. Kann das überhaupt funktionieren? Macht den Schülern das Spaß? Lernen sie auch tatsächlich etwas? Darauf waren wir wirklich sehr gespannt und haben alle Schulklassen bei der Durchführung begleitet.
Das Modellprojekt sollte validieren, ob sowohl der Zusammenbau einer elektronischen Schaltung als auch der textuelle Einstieg in die Programmierung mit einem interaktiven Tutorial im regulären Klassenverband mit bis zu 30 Schülern umsetzbar ist.
2 Entstehung des Lernkonzepts
Die Entwicklung des Lernkonzepts fand über mehrere Iterationen statt. Inspiriert von Seymour Paperts Aussage zur konstruktionistischen Didaktik „learning is most effective when part of an activity the learner experiences as constructing a meaningful product.“ [Pa87] vermitteln wir seit über zehn Jahren Kindern den Einstieg in Informatik und Technik anhand mobiler, programmierbarer Roboter zusammen mit digitalen Lernkonzepten. Die mobilen Roboter werden von den Lehrern ca. ab Klasse 9 bis in die Oberstufe, hauptsächlich im Rahmen von AGs, eingesetzt. Zunächst wurden für die Roboter klassische, statische Lernmittel in Textform erarbeitet11. Aus diesen Lernmitteln sind vor einigen Jahren Arbeitsblätter für den Unterricht entstanden und aus diesen wiederum ein interaktives, auf Selbstlerneinheiten basierendes, Programmier-Tutorial12. Für das Tutorial wurde eine komplett neue Web-Oberfläche erarbeitet, in die ein Eingabeeditor, ein Compiler, strukturierte Lerneinheiten in Textform, aufbauende Aufgabeneinheiten und Wissensabfrageeinheiten integriert sind. Sobald der Schüler einzelne Einheiten abgearbeitet hat, werden die nächsten Einheiten angeboten. Die Oberfläche reagiert auf Benutzereingaben, zum Beispiel durch Fehlermeldungen beim Compilieren oder auch durch das direkte Feedback der ausgewerteten Abfrageeinheiten oder Einblendungen von Tips und Hinweisen. So steht der Schüler im direkten Dialog mit der Oberfläche und kann die Lerneinheiten in individuellem Tempo bearbeiten. Dieses interaktive Tutorial stieß sowohl bei Lehrern wie auch bei Schülern auf großes Interesse.
Da seitens der Lehrer der Wunsch nach einem Konzept für den Anfang der Sekundarstufe I bestand, bei dem der Schwerpunkt auf der Programmierung liegt und der Zusammenbau ca. eine Doppelstunde dauern sollte, wurde BOB3 als einfaches Mikrocontroller-System in Form eines kleinen Roboters entwickelt, bei dem auf die Verwendung von mechanischen Komponenten verzichtet wurde.
Das interaktive Tutorial wurde passend zur BOB3-Hardware von Grund auf neu entworfen. Nach der Fertigstellung einer technisch funktionierenden Version wurde es in den ersten Monaten in mehreren Durchläufen mit einzelnen Kindern und mit Kleinstgruppen getestet. Die Handlungsstrategien der Kinder beim Lösen der Aufgaben wurden genau analysiert. Problematische Stellen in der Benutzerführung wurden verbessert und angepasst. Beim erneuten Testdurchlauf wurde dann verifiziert, dass diese Änderungen auch zielführend waren. Gleichzeitig wurde dabei auch die Akzeptanz bei verschiedenen Altersgruppen der Sekundarstufe I getestet.
Nachdem sichergestellt war, dass der erste Teil (Intro I) des Programmier-Tutorials in der Regel selbstständig von allen Kindern bearbeitet werden konnte, wurde das Konzept mit vier siebten Klassen an einem Gymnasium auf Praxistauglichkeit hin untersucht. Dabei zeigten sich zunächst noch einige Verbesserungsmöglichkeiten im Zusammenhang mit der inhomogenen Rechnerausstattung und in der zu erwartenden unterschiedlichen Internetanbindung von Schulen, die alle gelöst werden konnten, indem noch konsequenter auf eine möglichst niedrige erforderliche Internet-Datenrate bei der Durchführung der Tutorials gesetzt wurde: Bei einem Wechsel zum nächsten Kapitel werden jetzt nur noch ca. 10 kB Daten übertragen, bei einem Kompiliervorgang sind es ca. 25 kB. So kann die aktuelle Version des Tutorials auch problemlos an 30 Schülerarbeitsplätzen in einem Schul-WLAN durchgeführt werden.
3 Ablauf und Umsetzung des Modellprojekts
Zu Beginn des Modellprojekts wurde ein Workshop mit den teilnehmenden Lehrern durchgeführt. Der Workshop war genauso aufgebaut, wie auch der spätere Unterricht umgesetzt werden sollte: Den Teilnehmern wurde zunächst eine kurze Einführung in die handwerkliche Tätigkeit des Lötens gegeben. Direkt im Anschluss hat jede Lehrkraft selbstständig einen eigenen, kleinen Roboter zusammengebaut. Nach einer kurzen Inbetriebnahme konnten die Teilnehmer direkt mit dem selbsterklärenden Tutorial starten und ihre Roboter eigenständig programmieren.
Der Zusammenbau der Roboter mit den Schülern hat in der Regel eine Doppelstunde benötigt. Mittels mehrerer großformatiger Detailvideos von einem erfolgreichen Lötvorgang lernten die Teilnehmer, wie sie eine gute Lötstelle erkennen und selber umsetzen können. Alternativ hierzu kann der Lehrer selber am Lehrertisch eine Lötstelle vorführen und mittels Dokumentenkamera projizieren. Nicht bewährt hat sich das ,Löten lernen' nach dem Trial and Error Verfahren.
Für eine effiziente Umsetzung beim Bau hat sich ein Betreuungsverhältnis von 15:1 als optimal erwiesen, wobei jeweils zwei Schüler einen Arbeitsplatz gemeinsam verwenden und sich so gegenseitig unterstützen können.
In der folgenden Doppelstunde lernten die Schüler die Programmierumgebung des Tutorials kennen und bedienen. Hierbei zeigte sich, dass die IT-Kenntnisse der Schüler stark variierten. Während einige noch mit dem Starten des Web-Browsers und der Eingabe der URL beschäftigt waren, setzten sich andere schon mit konkreten Aufgaben aus dem ,Intro I' Tutorial auseinander. Da es jedoch an Motivation nicht mangelte, waren auch die langsameren Schüler spätestens ab der zweiten Programmierstunde mit den Aufgaben aus dem ,Intro I' Tutorial beschäftigt. In den folgenden Wochen haben die Schüler in über 10-12 Unterrichtseinheiten die verschiedenen Tutorials bearbeitet. Hierbei empfiehlt sich der reguläre Betreuungsschlüssel von 30:1.
4 Aufbau des Programmier-Tutorials
„Im Informatikunterricht ist die Problematik, dass Schüler unterschiedlich rasch lernen und unterschiedlich rasch vorankommen, gravierender als in anderen Fächern.“ [HNR07] Aus dieser Überlegung heraus wurde das Tutorial so entwickelt, dass es von den Schülern in individueller Geschwindigkeit bearbeitet werden kann. Die Grundlagen sollen von allen Lernenden bearbeitet werden, die Vertiefungen sind zur inneren Differenzierung für leistungsstarke Schüler konzipiert. Dazu ist das Programmier-Tutorial, wie in Abb. 1 zu sehen, in Sub-Tutorials unterteilt.
Abb. 1: Struktur des Programmier-Tutorials
Das anfängliche Tutorial ,Intro I' vermittelt den Schülern zunächst den grundlegenden Umgang und die Bedienung der Lernoberfläche. Um möglichst schnell zu einem Punkt zu gelangen, an dem die intrinsische Motivation der Schüler die weitere Bearbeitung der Aufgaben sicherstellt, werden die ,Basics' (Kompilieren, Übertragen, nächstes Kapitel) im Sinne des Imitierens gelernt.
In den folgenden Kapiteln wird das Verständnis für die Details sukzessive auf ein höheres Lernniveau angehoben, indem die Schüler zunächst die Aufgabe bekommen, kleine Änderungen an den Programmtexten durchführen. In späteren Kapiteln werden diese Aufgaben umfangreicher und auch in ihrer Art komplexer. Dabei geht es in diesem Tutorial um das Verständnis der informatischen Grundkonzepte Sequenz, Aktion und Verzögerung.
Das ,Intro II' Tutorial startet mit Verzweigungen und Vergleichsoperatoren. Die Schüler setzen sich dabei mit dem Konzept der Bedingung auseinander. Anschließend lernen sie die Verwendung einer Variablen zur Zwischenspeicherung eines Sensorwertes kennen. In Kombination mit der Verzweigung programmieren sie daraus einen Algorithmus zur Detektion eines Hindernisses. Zum Abschluss erlernen die Schüler das Konzept einer Schleife. Dabei...