Programmieren lernen mit der Schildkröte

Die programmierbare Schildkröte: Lernumgebung für den Einstieg ins Programmieren

Aus R. Reichert, J. Nievergelt, W. Hartmann: Programmieren mit Kara. Ein spielerischer Zugang zur Informatik. 2. erweiterte Auflage, Dezember 2004. Springer, Berlin.

Die Entwicklung von Informatik-Systemen aller Art für den Einsatz in der Informatik-Ausbildung hat eine lange Geschichte, zumindest für den Zeitbegriff der Informatik. Die ersten Entwicklungen reichen bis in die 1960er Jahre zurück. So wurden viele Programmiersprachen und -umgebungen entwickelt, die speziell auf die Bedürfnisse von Einsteigern ins Programmieren ausgerichtet sind. Es gibt unterschiedliche Ansätze – die Spannbreite reicht von an Computerspiele angelehnten Umgebungen bis hin zu vollwertigen Programmiersprachen wie Pascal, deren Bedeutung weit über ihren Einsatz in der Ausbildung hinausgeht. Zu den einflussreichen frühen Projekten und Entwicklungen zählen Seymour Paperts Aktivitäten mit dem Ziel, Kindern das Programmieren einer "Schildkröte" in Logo beizubringen. Als Beispiel für den Entwurf von speziell für den Unterricht gedachten Programmiersprachen sei BASIC (Beginners All-purpose Symbolic Instruction Code) von Kemeny und Kurtz erwähnt. Don Bitzers PLATO-System \index{PLATO} (Programmed Logic for Automated Teaching Operations) für Computer-Assisted Instruction nutzte den Computer als Lernmedium und wurde während zwei Jahrzehnten von mehreren hunderttausend Studierenden verwendet.

Die Entwicklung der Programmierumgebungen für Unterrichtszwecke wurde stark beeinflusst durch die Turtle-Grafik in Logo. Die Turtle-Grafik kann als erstes Beispiel einer Mini-Sprache gelten, auch wenn Logo eine vollwertige Programmiersprache ist. Der Erfolg von Logo und insbesondere der Turtle-Grafik gaben den Anstoss zur Entwicklung von Mini-Sprachen und Mini-Umgebungen für den Programmierunterricht. Die erste eigentliche Mini-Umgebung mit einer eigens konzipierten Sprache war Karel the Robot. Auf Karel folgten viele weitere Mini-Umgebungen. Die Idee der Mini-Umgebung wird auch von Kara aufgegriffen, und hinsichtlich der Welt lehnt sich Kara in vielen Teilen an Ideen von Karel an.

Logo und die Schildkröten-Geometrie

Seymour Papert leitete in den 1970er Jahren am Massachusetts Institute of Technology einige vielbeachtete Projekte mit dem Ziel, Kinder zu den Konstrukteuren ihrer eigenen intellektuellen Gebäude zu machen. Insbesondere sollten Kinder in die Lage versetzt werden, sich selber geometrische Zusammenhänge zu erschliessen. Der Computer sollte dabei den Kindern als mächtiges Werkzeug zur Erzeugung von geometrischen Figuren dienen. So sollte Mathematik und insbesondere Geometrie greifbarer und anschaulicher werden. In diesem Umfeld wurde die Programmiersprache Logo entwickelt. Logo ist eine professionelle Programmiersprache von entsprechender Komplexität. Um Logo für den Geometrieunterricht einzusetzen, beschränkt man sich auf eine überschaubare Untermenge. Diese Untermenge wird für die so genannte "Turtle Geometry", die "Schildkröten-Geometrie" verwendet.

Paperts Ziel bei der Entwicklung der Turtle Geometry war, den Kindern eine Lernumgebung für Mathematik zu bieten. Den Anstoss dazu lieferte die Beobachtung, dass ein Kind, das in Mathematik schwach ist, oft als mathematisch unbegabt abgestempelt wird. Ein anderes, das in einer Fremdsprache wie zum Beispiel französisch schwach ist, wird hingegen nicht als französisch unbegabt betrachtet. Wir wissen aus Erfahrung, dass jedes Kind in Frankreich ohne bewusste Anstrengung französisch lernen würde. Einem Kind, das in französisch schwach ist, fehlt einfach die natürliche Lernumgebung Frankreich. Papert argumentierte, dass im "Math-Land" jedes Kind Mathematik so natürlich lernen würde wie seine Muttersprache. Die Schildkröte und die dazugehörige Lernumgebung der Turtle Geometry waren Paperts Vision von Math-Land.

Die Schildkröte hat eine Position und schaut in eine beliebige Richtung. Diese zwei Eigenschaften beschreiben den aktuellen Zustand der Schildkröte vollständig. Die Befehle, welche die Schildkröte versteht, sind ebenfalls einfach: Sie kann sich vorwärts bewegen und dabei eine Spur zeichnen oder auch nicht, und sie kann an Ort und Stelle drehen. Die Schildkröte ist blind und hat keinerlei Information über den Zustand der Welt. Turtle Geometry beschränkt sich somit auf das Erzeugen geometrischer Muster.

Logo stützt sich stark auf Rekursion und erlaubt es so, zeitliche Abläufe knapp und klar zu formulieren. Logo kennt auch Variablen, Parameter, Verzweigungen, Wiederholungen, Funktionen und vieles mehr. Das folgende Programm zeichnet eine Schneeflockenkurve.

to snowflake :length
  if :length < 10
  [ move :length ]
  [ snowflake :length/3
    left 60
    snowflake :length/3
    right 120
    snowflake :length/3
    left 60
    snowflake :length/3 ]

Beim Einsatz von Logo im Unterricht stehen Probleme aus der Mathematik im Vordergrund. Es geht um das Lösen geometrischer Probleme, um das Erschaffen eines Programmes, das eine Idee mit Hilfe des Computers umsetzt. "Learning by making" ist für Papert mehr als "learning by doing": Die Schüler machen nicht nur etwas, sondern sie erschaffen sich ihre eigenen Aufgaben und durch deren Lösung ihr eigenes Wissen. Wichtig ist, dass man nicht nur etwas erschafft, sondern es auch reflektiert: Warum macht das Programm nicht das, was ich will? Wie könnte ich die Idee einfacher umsetzen?

Logo ist aber nicht so einfach, wie man auf den ersten Blick glauben könnte. Es war Paperts Absicht, "eine Computersprache zu entwerfen, die für Kinder angemessen war. Das bedeutet nicht, dass sie eine Spielzeugsprache sein sollte. Im Gegenteil, sie sollte die Leistungsfähigkeit professioneller Programmiersprachen besitzen, aber sie sollte auch einfache Einstiegsmöglichkeiten für nichtmathematische Anfänger bieten" (Seymour Papert (1980): Mindstorms: Children, Computers, and Powerful Ideas. Basic Books, New York).