2 Strategie zum Lösen eines Problems
Erstes Ziel der Unterrichtsstunde ist, bei den Schülerinnen und Schülern Verständnis für die Tatsache zu erzeugen, dass komplexe Abläufe aus einer Reihe von elementaren Einzelschritten erzeugt werden können.
Dies kann anschaulich und einprägsam gestaltet werden, indem in Form eines kurzen Rollenspiels ein Schüler die Rolle des Roboters übernimmt. Ein zweiter Schüler bekommt die Rolle des Befehlsgebers, er muss unter Beschränkung auf den vorhandenen Befehlssatz den Roboter leiten. Die gestellte Aufgabe lautet etwa:
"Der Roboter steht zwischen den Tischen des Klassenzimmers und soll bis zur Tür gehen."
Den Lernenden ist von vornherein klar, dass der Roboter diese Aufgabe nicht direkt erfüllen kann, sondern dass Roboter a) ihre Handlungen aus Einzelaktivitäten ihrer Komponenten (Aktoren, Sensoren) zusammensetzen und b) dass es nötig ist, diese Aktivitäten durch Anweisungen auszulösen, die die Geräte verstehen, d.h. verarbeiten können. Die Menge dieser Anweisungen wird Befehlssatz des Roboters genannt.
Der Befehlssatz in diesem Rollenspiel wird an die Tafel geschrieben und besteht aus 4 Anweisungen:
- Gehe x Schritt(e) vorwärts
- Gehe x Schritt(e) rückwärts
- Drehe dich um 90 Grad nach rechts
- Drehe dich um 90 Grad nach links
Zur Verdeutlichung der rein ausführenden Funktion des Roboters können diesem die Augen verbunden werden. Die Erfahrung der Praxis zeigt, dass beim Rollenspiel sowohl Befehlsgeber als auch Roboter sich im Spieleifer nicht an den vorgegebenen Befehlssatz halten. Dem kann man entgegensteuern, indem ein dritter Schüler die Einhaltung der Formulierungen überwacht. Er wird mit einer Hupe ausgestattet und interveniert, sobald eine unzulässige Anweisung ausgesprochen wird.
Sequenz als Folge von Anweisungen
Anschließend erhalten die Schülerinnen und Schüler eine Einweisung in die Programmierumgebung RIS. Sie sehen, wie Anweisungssymbole aus dem Symbolvorrat (Befehlssatz) mit der Maus herausgezogen und auf der Oberfläche zu einer Kette von Anweisungen zusammengesetzt werden. Schließlich erfahren sie, wie das fertige Programm vom Rechner auf den Roboter übertragen und dann vom Roboter ausgeführt wird. Als erste zu programmierende Aufgabe erhalten die Teams die Aufgabe, dass ihr Roboter ungefähr 30 cm geradeaus fahren soll, dann eine Rechtsdrehung um 90 Grad machen soll und anschließend noch einmal ca. 30 cm geradeaus fahren soll. Ein bedeutender Unterschied zum Ablauf im Rollenspiel liegt in der Steuerung der Motoren: Die Anweisung zum Geradeausfahren enthält einen Zeit-Parameter, durch den die Zahl der Sekunden angegeben wird, wie lange ein Motor in Betrieb ist. Je nach Altersstufe wird man auf den Parameterbegriff an dieser Stelle eingehen. Falls die Lernenden mit objektorientierter Modellierung vertraut sind, kann man mit dem Methodenbegriff arbeiten: Die Methode "Motoren einschalten" hat einen Parameter, der die Einschaltdauer in Sekunden angibt.
Die zweite Aufgabe baut auf der ersten auf: Der Roboter soll ein Quadrat von ca. 30 cm Kantenlänge umfahren. Die Aufgaben werden von allen nach wenigen Tests gut bewältigt und führt zu den Begriffen Anweisung, Befehlssatz und Sequenz als Folge von Anweisungen.
Grafische Darstellung der Grundstrukturen
Spätestens an dieser Stelle ist es notwendig, ein Verfahren zum Darstellen der Programme zu vereinbaren. Die Lernenden versuchen intuitiv, die Symbole des RCX-Codes nachzuzeichnen, was ihnen nur grob gelingt. Die Lehrperson wird stattdessen vorschlagen, Anweisungen als Rechtecke mit innen stehendem Anweisungstext zu zeichnen und Sequenzen als Stapel solcher Anweisungsrechtecke darzustellen. Dabei wird noch nicht explizit auf die Struktogramme nach Nassi-Shneiderman eingegangen. Diesem Thema ist die fünfte Unterrichtseinheit gewidmet.
Erhebliche Unsicherheiten werden durch einen oberflächlichen Umgang mit dem Abstraktionsgrad der Anweisungen in den Grafiksymbolen verursacht. Am Anfang sollten daher die Anweisungsblöcke des RCX-Codes übernommen werden und nur dort verändert werden, wo es unbedingt erforderlich ist.
![]() | ![]() |
Wenn vergröbernde (verkürzende) Formulierungen verwendet werden, müssen sie mit den Lernenden ausdrücklich vereinbart werden:
![]() | ![]() |
Wiederholungen
Es bietet sich an dieser Stelle an, als zweite algorithmische Grundstruktur die Wiederholung auf einfache Weise einzuführen. Dazu wird das zweite erstellte Programm untersucht und festgestellt, dass sich einzelne Sequenzteile wiederholen. Und zwar wiederholen sich die Geradeausfahrt und anschließende Drehung genau viermal. Die Wiederholungsanweisung wird als Symbol des RCX-Code identifiziert. Damit wird die Aufgabe neu gelöst. Der Vorteil ist für die Schüler unmittelbar einsichtig: eventuell nötige Änderungen an den Fahrstrecken oder Drehungen müssen ab jetzt nur einmal vorgenommen werden müssen. Die Zahl der Wiederholungen ist ein Attribut des Symbols, der Begriff Wiederholung mit Zähler wird nicht verwendet.
Die Programmieroberfläche bietet mehrere Symbole, die recht ähnliche Funktionen bewirken und daher für den Anfänger schlecht unterscheidbar sind. So gibt es das Symbol „Motor(en) ein“ und das Symbol „Motor(en) ein für x Sekunden“. Im zweiten Fall wird die Programmausführung für die Zeit x angehalten, im ersten Fall nicht, was für den Einsteiger zu unerwarteten Reaktionen führt. Hier wäre es sehr hilfreich, wenn sich per Voreinstellung die zur Verfügung stehenden Symbole einschränken ließen.


