Zur didaktischen Konzeption
-
Programmierunterricht?
Die klassischen Karels, Karas, Nikis & Co. sind für die Einführung in die
IMPERATIVE Programmierung entwickelt, nicht für OOP. Es wird am Anfang
ein Roboter (Computer) programmiert, aber kein Programmsystem
entwickelt. Deshalb stellen sie nur das dazu erforderliche
Aktionsrepertoire zur Verfügung, um operative Aufgaben (einfache und
schwierige Algorithmusprobleme) lösen zu können.
Insofern sind es nicht nur Mini-Languages, sondern auch geschlossene
Systeme. Sie lassen, bis auf wenige Ausnahmen, keine Gestaltung der Welt
im Sinne von 00-Modellierung zu.
Wer das will, sollte besser gleich den Original-Karel nehmen 1).
-
DELPHI-Karel
-
ist ein spielerischer Weg für den objektorientierten Einstieg in die
Programmierung ('OOP von Anfang an').
Es werden schon in der ersten Stunde Objekte angesprochen und manipuliert
mit der klassischen und leicht verständlichen OO-Notation: Objektbezeichner.Methodenbezeichner, z.
B. Robot.Vor.
-
soll in OO-Sichtweisen einführen und daneben auch imperative Strukturen
vermitteln, aber nicht als alleinigem Schwerpunkt. Er ist deshalb auch
nicht als Automat angelegt, sondern benutzt eine reale
Programmiersprache.
Mit der offenen Architektur von DELPHI-Karel sollen Möglichkeiten der OO-Modellierung
eröffnet werden:
-
DELPHI-Karel fördert das Finden und Gestalten von neuen Welten und ihren
Objekten
(--> Critters u. Matters); es
stimuliert die Phantasie der Schüler und fördert das Denken in
Objektzusammenhängen.
-
Es muß deshalb nicht nur unveränderbar einen Karel geben, es können auch Babies,
Autos, Hunde oder
Schachfiguren sein. So wird auch z. B. ein objektorientierter Karel nicht
endlos beepers hinterlassen können oder nur mitzählen, wie oft er die
Aktion 'Aufheben' ausgeführt hat,
sondern er sollte einen Laderaum als Attribut haben, in den die
aufgesammelten Objekte tatsächlich getan und wieder herausgenommen
werden können.
-
Der Ur-Robot RD1 hat nur ein minimales Methodenrepertoire, welches
dazu auffordert, erweitert zu werden, damit dann erste operative Aufgaben
besser gelöst werden können. Das kann sehr klein anfangen, aber auch
sehr weit entwickelt werden, je nach Unterrichtszielen.
-
Kern der objektorientierten Programmierung ist die Vererbung und es
ist hier so naheliegend und einfach, sehr schnell eine Unterklasse
abzuleiten, gleichermaßen eine eigene Welt mit ein paar Blumen, Bäumen
und Häusern zu bepflanzen. Beziehungen werden auf eine propädeutische
Weise erfahrbar und sind weniger abstrakt als z. B. die Aggregation
einer Adresse in eine Personenklasse usw. Es wäre schade, diese Chance
nicht zu nutzen.
In Karel D. Robot finden sich Ideen von Richard Pattis wieder aus
"Karel++, A Gentle Introduction to the Art of Object-Orientated
Programming", die Neuauflage von Karel the Robot aus 1981.
Es ist aber
nicht die 1:1 Portierung nach Delphi/Object Pascal, sondern eine
eigenständige Entwicklung mit teilweise anderen weitergehenden Möglichkeiten.
Der Schüler kann nicht nur unmittelbar visuell überprüfen, was er gerade
programmiert hat, sondern der Roboter gibt in Konfliktsituationen
Meldungen aus, um auf unzureichende Anweisungen aufmerksam zu machen.
Zur Programmierumgebung
-
Mini-Language vs. Objektpascal / Delphi
Eine echte Mini-Language verfügt über einen abgeschlossenen, stark
begrenzten Umfang an Schlüsselwörtern, Delphi hat ein paar mehr.
DELPHI-Karel ist ein
offenes System für den möglichst streßfreien
Anfangsunterricht auf der Ebene einer Mini-Language und den gleitenden
Übergang in eine professionelle Programmiersprache
(Delphi-Programmierumgebung). Es ist also weder als reine Mini-Sprache
noch als sog. 'variablenfreie' Programmierumgebung konzipiert.
Die Vorteile: kein Wechsel der Arbeitsumgebung, kein Wechsel der
Sprache, daher kein Zeitverlust wie beim Umstieg von einer didaktisch
reduzierten auf eine 'richtige'
Programmiersprache und kein Bruch in der Denkweise durch eine
kontinuierliche Weiterentwicklung des Programmierstils.
Die oftmals geäußerten Vorbehalte gegen DELPHI als ein für den
Schulunterricht zu mächtiges, daher unbrauchbares Entwicklungssystem
können wir nicht teilen. Die Unterrichtsergebnisse bestätigen das.
Nach dem ersten Starten von DELPHI-Karel
ist ein lauffähiges ansprechendes Programm vorhanden, das zunächst nur
erkundet und leicht modifiziert wird. Der Schüler muß also nicht wie
üblich erst (proprietären Delphi-) Code schreiben, um dann ein meist bescheidenes Progrämmchen
zu sehen. Mit wenigen Zeilen kann ein Roboter erzeugt und bewegt
werden.
Die vorhandenen Roboter(klassen) verfügen nur über die ersten operativen Methoden (neben
den üblichen Set- und Get-Methoden, die man aber zu Beginn nicht
unbedingt braucht). Diese operativen Methoden bilden die Mini-Language
von DELPHI-Karel, die nach und nach erweitert wird durch selbst
entwickelte Karel-Methoden und die
Pascal-Schlüsselwörter zur Ablaufsteuerung (if, while, NOT usw.).
Es wird hier in der Selbstbeschränkung des Lehrers liegen, sich hier mit
speziellen Delphi-Konstrukten zurück zu halten.
Zum Unterricht
Möglicher Verlauf in 4 Phasen
1. Anfangsunterricht in der Welt 'Trainingscamp';
- Bedienung des Compilers
- Erkunden von Karels Welt - die erste OO-Sicht: Was gibt es? Was
passiert?
- Editieren im Controlformular
(zusätzliche Buttons für manuelle Steuerung einbauen,
Objekte manipulieren, erzeugen, die ersten Methoden zur Bewegung des Roboters
entwickeln)
2. komplexere Methoden bauen in 'Clean City', um operative Aufgaben
(reinigen,
transportieren, selbständig Wege finden usw.) zu erledigen.
3. die neuen Methoden einer eigenen Roboterklasse (Unterklasse MyRobot ,
Vererbung)
hinzufügen.
4. Programmierpraktikum
Eine eigene Welt bauen mit einigen aktiven und passiven Objekten.
Die vollständige Karel D. Robot-Version ist inzwischen mit einer Fülle
von Klassen und Funktionen ausgestattet, so daß viele reizvolle
Möglichkeiten schon vergeben sind. Will man den Unterrichtsschwerpunkt
mehr auf Modellierung legen, so steht dafür eine reduzierte Light-Version zur Verfügung, die nur die Klassen und Funktionen
enthält, die unbedingt notwendig sind. Die Dokumentation ist
entsprechend angepaßt. Alles weitere kann im Unterricht selbst
entwickelt werden.
Wahlmöglichkeiten
bei den Robotern
-
RD1 vom Typ TRobot ist die Rohversion, die fast nichts
kann, aber daher das größere Entwicklungspotential für Modellierung hat - die beste Wahl
für mutige Lehrer und Schüler.
-
Karel vom Typ TKarel ist weitgehend entwickelt und abgesichert
und daher eher für den klassischen Algorithmikteil ohne große Umwege geeignet.
bei der Editierung - wo arbeitet der Schüler?
-
entweder zunächst im ControlFrm: Nachteil - es werden Robotermethoden
in der falschen Lokalität entwickelt, ist aber zu Beginn einfacher als mit
einer zusätzlichen Fachklasse gleichzeitig oder
-
NICHT im ControlFrm, sondern alle neuen Roboter-Methoden werden sofort in einer
leeren, aber bereits vorhandenen Unterklasse 'MyRobot' entwickelt und im
ControlFrm nur aufgerufen.
Das wäre der korrekte Ansatz, der unauffällig zum Fachkonzept-Denken hinführt.
oder Sie folgen dem Tutorial.
Der alte, als auch der neue Berliner Rahmenlehrplan sehen einen
Einstieg in die Informatik über die Analyse und Modifizierung eines
mäßig komplexen Systems vor.
Karel D. Robot ist mit seiner klaren
Struktur wie geschaffen dafür.
Es sei an dieser Stelle noch einmal betont, daß Karel D. Robot für
die Einführung in die Programmierung - und zwar objektorientiert von
Anfang an - entwickelt wurde. Es läßt sich aber nicht verheimlichen,
daß
die bereits implementierten Features erlauben, das Programm für andere
weitergehende und klassische Probleme der Informatik zu
'mißbrauchen'.
-
Das Gedächtnis der Roboter und die Zugriffsmöglichkeit auf die Welt
kann für Backtracking-Verfahren und kürzeste Wege und ihre Visualisierung
genutzt werden
-
Das Actions-Protokoll kann für einen Teach-In-Modus eingesetzt
werden
-
Die Welt und die Items bilden eine solide einsatzfähige Grundlage
für Brettspiele usw.
-
Die vollständige Dokumentation und der vorhandene Quellcode bieten eine
interessante Möglichkeit für Re-Engineering Softwareprojekte (z. B. andere Grafik-Technik, Nebenläufigkeit) oder als Basis für andere
Themen.
Zum Schluß eine Bitte.
Call for papers
Liebe Kolleginnen und Kollegen,
der Nutzen und der Erfolg eines solchen
Lernprogrammes hängt nicht zuletzt von der Verfügbarkeit und
Qualität von Beispielen, Übungsaufgaben und Unterrichtssequenzen ab.
Jetzt liegen die ersten Erfahrungen vor und sollten bald allen
zugänglich gemacht werden.
Wenn Sie Ideen haben für Aufgaben, neue Welten
oder vielleicht sogar eine fertige Unterrichtseinheit, sollten Sie
nicht zögern, es mir mit einer kurzen Erläuterung per attachment
zuzusenden. Es wird eine derartige Sammlung geben. Dabei kommt es
nicht auf "Druckreife" an.
Wenn Sie es wünschen, werden die Beiträge unter Ihrem Namen im
OSZ-Handel-Web, einer der attraktivsten Informatik-Sites mit
durchschnittlich 300.000 Zugriffen pro Monat, veröffentlicht. Bei
Interesse können Sie auch in eine Mailingliste aufgenommen werden zum
Austausch von Erfahrungen.
Siegfried Spolwig
|
-----------------------
1) Sehr detailliert ausgearbeitete Aufgaben für den
Programmierunterricht s. JavaKara
(Aufgaben v. H. Gierhardt ),
die sich aber auch für Karel D. Robot einsetzen
lassen.
http://www.educeth.ch/informatik/karatojava/javakara/material/
|