OSZ Handel I
Informatik

Karel D. Robot
Unterrichtseinsatz

S. Spolwig

[Delphi | OOP]
Startseite

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

  • Einführung in die (objektorientierte) Programmierung

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.
 

  • mit Schwerpunkt auf objektorientierter Modellierung mit Delphi-Karel Light

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.

  • Einstieg über komplexe Systeme

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.

  • Für den fortgeschrittenen Informatikunterricht

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/
 


©  05. April 2006    Siegfried Spolwig

page_top