#limit (11.0)##pagelength (16.5)##block# #start (2.0,0.0)# #page (6)# #headodd# #center#gs-Herbert und Robbi#right#% #end# #headeven# %#center#gs-Herbert und Robbi #end# #center#2 #center#Allgemeines #center#zum #center#Hamster-/Robotermodell 2.1 Entstehung Das Hamster - Modell wurde in der Gesellschaft für Mathematik und Datenverarbeitung (GMD), einer Großfor­ schungseinrichtung des Bundes und des Landes Nord­ rhein-Westfalen, von Lothar Oppor in Anlehnung an das Modell 'Karel the Robot' von Richard E. Pattis (Stanford University, USA) entwickelt und zunächst innerhalb der GMD und schon bald im Schulbereich eingesetzt. Wolfgang Weber, Lehrer an der Gesamtschule Leopolds­ höhe bei Bielefeld, entwickelte in Zusammenhang mit sei­ ner Arbeit am Landesinstitut für Schule und Weiterbil­ dung in Soest dieses Modell seit 1984 weiter. Sein Ziel war es, das Modell um solche Komponenten zu erweitern, daß es auch für Schüler der Sekundarstufe I im Anfangsunter­ richt eingesetzt werden kann. Besondere Bedeutung kam dabei der Entwicklung einer komfortablen, einfach zu be­ dienenden Benutzerschnittstelle zu, die es dem Anfänger ermöglicht, sich von Beginn an mit der eigentlichen Pro­ blemstellung auseinanderzusetzen, ohne von Betriebssy­ stem oder gar Hardware-Eigenheiten abgelenkt zu werden. Mit dem vorliegenden Programm #on("b")#gs-Herbert und Robbi#off("b")#, das in die komfortable, menuorientierte Benutzer­ schnittstelle #on("b")#gs-DIALOG#off("b")# eingebettet ist, dürfte diese Ar­ beit vorerst zu einem Abschluß gebracht sein. Mit diesem Programm liegt nun eine Modellumgebung vor, die den gestellten Anforderungen gerecht wird. 2.2 Kurzbeschreibung des Hamster-/Roboter-Modells Das Hamster- und das Roboter - Modell sind analog aufgebaut und in Art und Umfang der Befehle identisch. Im ersten Modell kann 'Herbert der Hamster', im zweiten Modell 'Robbi der Roboter' auf dem Bildschirm durch vier sogenannte Basisbefehle gesteuert werden - 'Herbert' in einer 'Landschaft', 'Robbi' auf einem 'Arbeitsfeld' - beides Ebenen, die aus 23 x 40 Kacheln bestehen. Auf dieser Ebene können sich noch Hindernisse und 'Körner' (für Herbert) oder 'Werkstücke' (für Robbi) befin­ den. Die Hindernisse stellen auf dem Bildschirm Barrieren dar, die umgangen werden müssen. Die Körner bzw. Werk­ stücke können von Herbert in seinen 'Backentaschen' bzw. von Robbi in seinem 'Behälter' aufgenommen oder daraus (wieder) abgelegt werden. 2.2.1 Befehle und Tests Für die Steuerung von Herbert bzw.Robbi stehen vier Basisbefehle zur Verfügung (die in beiden Modellvarian­ ten gleich sind): #on("u")#vor#off("u")# Gehe eine Kachel (einen Schritt) in Laufrichtung vor. #on("u")#links um#off("u")# Drehe Dich, wo Du stehst, um 90 Grad nach links. #on("u")#nimm#off("u")# Nimm da, wo Du stehst, ein Korn/Werkstück auf. #on("u")#gib#off("u")# Lege da, wo Du stehst, aus den Backentaschen/dem Be­ hälter ein Korn/Werkstück ab. Da nur dort ein Korn/Werkstück aufgenommen werden kann, wo auch eines vorhanden ist oder nur vorgegangen werden kann, wenn die nächste Kachel noch zur Land­ schaft/zum Arbeitsfeld gehört und nicht blockiert ist, sind die Befehle 'nimm', 'gib' und 'vor' nicht uneinge­ schränkt ausführbar. Aus diesem Grunde sind noch die folgenden #on("u")#Basistests#off("u")# definiert: #on("u")#vorn frei#off("u")# testet, ob die vor ihm liegende Kachel frei ist. #on("u")#korn da / werkstueck da#off("u")# testet, ob auf der Kachel, auf der er steht, mindestens ein Korn/Werkstück liegt. #on("u")#backen leer /behaelter leer#off("u")# testet, ob kein Korn/Werkstück in den Backentaschen/im Behälter ist. Darüberhinaus können Sie bei der Installation des Systems noch festlegen, ob die folgenden #on("u")#Zusatztests#off("u")# zur Verfügung stehen sollen oder nicht: #on("u")#links frei#off("u")# testet, ob die Kachel links neben ihm frei ist. #on("u")#rechts frei#off("u")# testet, ob die Kachel rechts neben ihm frei ist. #on("u")#hinten frei#off("u")# testet, ob die Kachel hinter ihm frei ist. #on("u")#korn vorn / werkstueck vorn#off("u")# testet, ob auf der Kachel vor ihm mindestens ein Korn/ Werkstück liegt. #on("u")#korn links / werkstueck links#off("u")# testet, ob auf der Kachel links neben ihm mindestens ein Korn/ Werkstück liegt. #on("u")#korn rechts / werkstueck rechts#off("u")# testet, ob auf der Kachel rechts neben ihm mindestens ein Korn/Werkstück liegt #on("u")#korn hinten / werkstueck hinten#off("u")# testet, ob auf der Kachel hinter ihm mindestens ein Korn/Werkstück liegt. Es gibt #on("u")#keinen#off("u")# Testbefehl, mit dem überprüft werden kann, ob der Rand der Ebene erreicht ist. 2.2.2 Landschaftsgestaltung/Arbeitsfeldgestaltung Der Benutzer kann selber Landschaften/Arbeitsfelder erstellen, auf denen Herbert bzw. Robbi bewegt werden kann. Es können aber auch fertige Ebenen verändert wer­ den. Eine Landschaft/ein Arbeitsfeld ist eine Ebene aus 23 x 40 Kacheln. Eine Kachel kann auf dem Bildschirm so aussehen: Leere Kachel : Blank und Punkt (" .") Kornkachel : Blank und kleines o (" o") Hindernis : zwei Nummernzeichen ("\#\#") In dieser Landschaft steht auf einer der Kacheln Her­ bert bzw. Robbi: "A" mit Blickrichtung nach oben ">" mit Blickrichtung nach rechts "V" mit Blickrichtung nach unten "<" mit Blickrichtung nach links #on("u")#Beispiel:#off("u")# Ausschnitt aus einer Landschaft: #on("b")# . . . . . . . . . . . . . . . . . . . . . . o o o o o o o o o o . . . . . . . . . . o . . . . . . . . o . . . . . . . . . . o . . . . . . . . o . . . . . . . . . o o .\#\#\#\#\#\#\#\#\#\#\#\# . o . . . . . . . . . o . .\#\# .V. . .\#\# . o o o o o o o . . . o . .\#\# . o . .\#\# . . . . . . . o . . . o o o o o o . .\#\# . . . o o o o o . . . . . .\#\# . . . .\#\# . . . o . . . . . . . . . .\#\# . . . .\#\# . . . o o o o . . . . . . .\#\#\#\#\#\#\#\#\#\#\#\# . . . . . . o o . . . . . . . . . . . . . . . . . . . . . . Während der Landschaftsgestaltung wirken folgende Tasten: halt, beende die Landschafts-/Arbeitsfeld­ gestaltung <\#> setze ein Hindernis und gehe ein Feld weiter leere das Feld und gehe ein Feld weiter lege hier ein Korn/Werkstück ab nimm ein Korn/Werkstück auf (falls hier welche liegen) zeige, wie viele Körner/Werkstücke hier liegen ersetze diese Landschaft/diese Arbeitsfeld durch die Kopie einer bereits vorhandenen anderen Landschaft/eines bereits vorhan­ denen anderen Arbeitsfeldes - Durch Drücken der Fragezeichentaste () während der Landschafts-/Arbeitsfeldgestaltung, können Sie sich diese Hinweise auch auf dem Bildschirm einblenden lassen. - Mit den Pfeiltasten kann Herbert/Robbi bewegt und seine Richtung verändert werden. - Die Landschaftsgestaltung wird durch Tippen der Taste abgeschlossen. Die Position und die Blick­ richtung, die Herbert bzw. Robbi zu diesem Zeitpunkt innehat, wird als Startposition vermerkt. - Auf dem Bildschirm wird dann noch die Zahl der Kör­ ner/Werkstücke erfragt, die Herbert bzw.Robbi zu Be­ ginn des Laufes in seinen Backentaschen/in seinem Behälter haben soll. Hier muß eine Zahl zwischen 0 und 32767 eingegeben werden. 2.3 Einsatzbereich Das Hamster-/Roboter-Modell soll dazu dienen, die Grundelemente des algorithmischen Problemlösens (Folge, Auswahl, Wiederholung etc.) #on("u")#einfach#off("u")# und #on("u")#spielerisch#off("u")# zu erlernen und sie in der Programmiersprache ELAN zu co­ dieren. In der Bildschirmdarstellung erinnert das Ham­ ster-/Roboter-Modell zunächst an ein einfaches Tele­ spiel, eine Anwendung des Computers, die sicher bekannt ist. Darüberhinaus lassen sich leicht Bezüge zur Steue­ rung von Industrierobotern herstellen. Durch die komfortable Benutzerschnittstelle wird dem Anwender in der Anfangsphase eine Auseinandersetzung mit dem Betriebssystem "erspart". Die Arbeit mit dem Mo­ dell setzt #on("u")#keine Vorerfahrungen und Kenntnisse#off("u")# voraus. Das Modell ist schon nach weniger als einer halben Stun­ de für den Anfänger überschaubar. Er kann dann schon Aufgaben lösen, sich selbst Aufgaben stellen bzw. die gegebene Aufgabenstellung erweitern. Das Modell zielt auf die Aktivierung des Lernenden und die Mitarbeit in allen Punkten: Aufgabenstellung, Lösungsgestaltung, Lösungstest und -verifizierung. Der Lernfortschritt kann in stärkerem Maße als im "herkömm­ lichen Programmierunterricht" von den Lernenden selbst bestimmt werden. Der spielerische Anfang, die Veran­ schaulichung der Programmausführung auf dem Bild­ schirm, die Möglichkeit Fehler direkt und eigenständig zu erkennen, fördern die Motivation, die Kreativität und die Fehler- und Frustrationstoleranz. 2.4 Hinweise für den Einsatz in der Ausbildung Das Hamster-/Roboter-Modell ist angelegt für "Pro­ grammieren" mit Bleistift und (kariertem) Papier. Für die Überlegungen, die anzustellen sind, ist der Computer selbst in der Anfangsphase #on("u")#nicht notwendig#off("u")#. Man kann Kachel-Landschaften / Kachel-Arbeitsfelder aufzeich­ nen und vorgegebene oder sich selbst gestellte Aufgaben lösen. Die erstellten Programme werden ausgeführt, indem man z.B. eine kleine Büroklammer als Hamster/Roboter auf dem Papier oder der Folie dem Programm entsprechend ver­ schiebt. Heftzwecken oder Pfennigstücke können als Kör­ ner/ Werkstücke und Streichholzstücke als Hindernisse dienen. #on("b")#gs-Herbert und Robbi#off("b")# verfügt auch über die Möglich­ keit, den Hamster/Roboter interaktiv zu steuern. Auch hierüber ist ein Einstieg in den Umgang mit dem Modell möglich. Bei der interaktiven Steuerung kann der Ham­ ster/Roboter von Hand durch Tastendruck auf dem Bild­ schirm bewegt werden. Dabei können nur die vier Basisbe­ fehle ('vor', 'links um', 'nimm' und 'gib') verwendet werden. Während der Steuerung von Hand wird ein "Protokoll" der ausgeführten Befehle angelegt - und zwar gleich in Form eines ablauffähigen ELAN-Programms. Dadurch hat der Benutzer einerseits die Möglichkeit, die Anweisungen, die durch Tastendruck gegeben wurden, zu kontrollieren, andererseits kann anschließend die Folge der eingegebe­ nen Anweisungen auch als Programm vom Computer ausge­ führt werden ('Teach in'). Nach diesem "ersten Kennenlernen des Modells" sollte man dann aber bei Problemstellungen, die ein systemati­ sches Vorgehen erfordern, die Arbeit mit dem Computer unterbrechen und die Algorithmen jeweils auf dem Papier entwerfen. Auf die Ausführung der erstellten Anwei­ sungsfolgen von Hand auf Papier/Folie sollte man #on("u")#auf keinen Fall gänzlich verzichten#off("u")# - auch, um den Lernen­ den zu verdeutlichen, daß die Befehlsfolgen sowohl vom "Prozessor Mensch" als auch vom "Prozessor Computer" ausgeführt werden können; der Computer also nur ein Hilfswerkzeug ist. Erst wenn das Bilden eigener benannter Anweisungen (Refinements/Prozeduren) den Lernenden hinreichend ver­ traut ist, ist es sinnvoll, umfangreichere Problemstel­ lungen anzugehen. Da dann auch die Programmausführung von Hand mühsam wird und ihren Reiz verliert, sollte man (wieder) zum Computermodell übergehen, um mit dessen Hil­ fe die Programme auszuführen und zu überprüfen. Nachdem die Lernenden die Basisbefehle sicher beherr­ schen und eigene benannte Anweisungen unter Verwendung der Basisbefehle konstruieren können, können dann nach und nach die vorgegebenen Tests und damit auch die ande­ ren Elemente der Algorithmenentwicklung (Auswahl, Wie­ derholung etc.) in den Unterricht eingebracht werden. Als notwendig hat es sich erwiesen, von Anfang an auf eine saubere Strukturierung und Modularisierung der Algorithmen zu achten. Gerade Lernende mit "Program­ miererfahrung" neigen dazu, möglichst "kurze" Program­ me schreiben zu wollen. Besonderen Wert sollten Sie auf eine treffende Namensgebung der einzelnen Module legen, selbst wenn die Lernenden das oft als "lästige Schreibar­ beit" empfinden. Aufgaben können ein Einzel-, Partner- und Gruppenarbeit bearbeitet werden. Dabei hat sich die Arbeit in kleinen Gruppen als besonders effektiv erwie­ sen. Die Lernenden sind untereinander zumeist sehr kri­ tisch und fordern sich gegenseitig auf, "lesbare" Pro­ gramme zu schreiben. Ein Austausch der Programme unter den Gruppen kann diesen Anspruch noch zusätzlich för­ dern. 2.5 Aufgabenmaterial Zum Hamster-Roboter-Modell sind inzwischen eine Rei­ he von Aufgaben / Aufgabensystemen enstanden. An dieser Stelle soll auf zwei Veröffentlichungen hingewiesen werden, in denen Sie solche Aufgaben / Aufgabensysteme finden können: Weber, Wolfgang et al., Das Hamster-/Roboter-Modell, in: Landesinstitut für Schule und Weiterbildung (Hrsg.), Materialien zur Lehrerfortbildung in Nordrhein-Westfalen, Heft 1, Neue Technologien - Informations- und Kommunikationstechnologi­ sche Inhalte im Wahlpflichtunterricht der Klas­ sen 9/10, Soest, 1986 Ambros, Wolfgang, Der Hamster, Programmieren lernen in einer Modellwelt, J.B. Metzlersche Verlagsbuch­ handlung, Stuttgart, 1987 2.6 Erfahrungen mit dem Hamster-/Roboter-Modell Seit 1982 wird das Hamster - Modell in der GMD zur Programmierausbildung eingesetzt. Die Ergebnisse sind hervorragend: Die Teilnehmer bewältigen in derselben Zeit erheblich mehr Inhalte als früher ohne Modell. Moti­ vation, Selbständigkeit und Initiative prägen sich er­ heblich früher und merklich stärker aus. Außerdem sind die am Modell erworbenen Kenntnisse tiefer und sicherer. Seit 1983 wird das Hamster - Modell auch in mehreren Schulen mit sehr gutem Erfolg eingesetzt. Der Erfolg ist am größten im Blockunterricht (3 - 5 Tage z.B. in Projekt­ wochen, Schullandheimaufenthalten etc.). Aber auch im stundenweisen Unterricht wird das Hamster-/Roboter- Modell mit gutem Erfolg eingesetzt. Beide Zugänge, der Einstieg über das Arbeiten mit Bleistift und Papier und der Einstieg über die interakti­ ve Steuerung des Hamsters/Roboters, haben sich als prak­ tikabel erwiesen. Der Zugang über die interaktive Steue­ rung bietet den Vorteil, die zumeist sehr hohe Motivation der Lernenden, "endlich mit dem Computer arbeiten zu können", auszunutzen. Sie lernen dabei das Computermo­ dell auf einfache Weise kennen und haben einen ersten Umgang mit Bildschirm und Tastatur. Kleine, einfache Problemstellungen können von ihnen durch die interak­ tive Steuerung schnell und sicher bearbeitet werden. "Nebenbei" lernen sie, neben der Wirkung der Basisbefeh­ le, durch das mitgeführte Protokoll auch die Codierung in der Programmiersprache kennen. Allerdings verliert die interaktive Steuerung relativ schnell ihren Reiz, wenn die Lernenden erkennen, daß nur sehr einfache Pro­ blemstellungen damit bearbeitet werden können. Dann sollte aber zur Arbeit mit Papier und Bleistift überge­ gangen werden. Die Entscheidung, ganz auf das Arbeiten mit Papier und Bleistift zu verzichten, hat sich als sehr nachteilig erwiesen. Die Lernenden "hacken" die Programme in die Maschine und handeln eher nach dem "Prinzip von Versuch und Irrtum" als nach sorgfältigen Überlegungen. Bei komplexeren Problemstellungen scheitern diese Teilneh­ mer zumeist. Erfahrungsgemäß nimmt nach einiger Zeit der Wunsch stark zu, eigene Ausgaben auf dem Bildschirm zu erzeugen und andere Problembereiche zu bearbeiten (zum "richtigen Programmieren" überzugehen). Sie sollten diesen Schritt dann auch nicht zu lange hinauszögern und das Modell auf keinen Fall überstrapazieren. Da das Modell selbst und auch der Umgang damit sehr einfach ist, besteht auch später die Möglichkeit, zum Modell zurückzukehren, um hieran weitere Elemente der Algorithmenentwicklung in einfacher und anschaulicher Form einzuführen.