1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
|
#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:
<h> halt, beende die Landschafts-/Arbeitsfeld
gestaltung
<\#> setze ein Hindernis und gehe ein Feld
weiter
<LEERTASTE> leere das Feld und gehe ein Feld weiter
<g> lege hier ein Korn/Werkstück ab
<n> nimm ein Korn/Werkstück auf (falls hier
welche liegen)
<z> zeige, wie viele Körner/Werkstücke hier
liegen
<k> 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 <h> 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.
|