summaryrefslogtreecommitdiff
path: root/app/gs.hamster/1.1/doc/A5 - Doku: gs-Herbert und Robbi - Kapitel 2
blob: 52526d666f54022a9067ac7e226e4ddf6364a242 (plain)
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.