Turtleprogrammierung im Differenzierungsunterricht
Zum Unterricht Materialien (Download)
Neu(12.4.05): PDF-Dateien
Meine Turtle-Unit  Zurück zur Homepage von R.Lütticken

 
Zum Unterricht
Konzept allgemein
Zeitliche Abfolge
Beispielprogramme und Aufgabenblätter

Unterrichtskonzept allgemein:

An unserer Schule hatten wir gegen 2002 für den Differenzierungsunterricht (Stufe 9 und 10) ein Programm unter dem Oberthema Raumerfassen entworfen. Es enthält zwei Halbjahre Kunst, ein Halbjahr Darstellende Geometrie, und ein Halbjahr Informatik.

Das Informatikhalbjahr besteht zum größeren Teil aus einer Einführung in die Turtle-Programmierung. Wir wollten den Inhalten unserer Oberstufen-Informatik-Kurse nicht vorweggreifen, dennoch schien es eher lästig, eine andere Sprache (etwa Logo) heranzuziehen.

Das Resultat: In Bezug auf Pascal beschränkt der Kurs sich auf Zählschleifen und Prozeduren mit Wertparametern, Variablen kommen praktisch nur als Zählvariablen vor. Das ist anders als in den meisten Publikationen zur Turtle-Programmierung, die in der Regel auf anspruchsvolle und hübsche Beispiel von Rekursionen hinauslaufen. In der Oberstufe beginnt der Informatikkurs mit »Niki«, also einer datenfreien Einführung in Top-Down-Entwurf (Prozeduren) und Kontrollstrukturen (außer Zählschleife). Die Schnittmenge zwischen unserem Turtle-Kurs und Niki ist gering. Nach »Niki« erfolgt die Einführung von Variablen. An dieser Stelle hat man leider die unschöne Wahl, die Schüler entweder vom Einsatz von Prozeduren abzuhalten, oder erst einmal globale Variablen und parameterfreie Prozeduren zuzulassen. Nach meiner Erfahrung ist den Schülern danach der Gebrauch von Parametern nur schwer beizubringen. Dem sollte die Turtle-Reihe etwas vorbeugen. Praktisch geht es in der ganzen Turtle-Reihe um Prozeduren und Parameterübergabe (nur Wertparameter).
Da Kontrollstrukuren außen vor bleiben, werden die viele Funktionen der Turtle (z.B. XCOR) in dieser Unterrichtsreihe nicht benötigt, sie sind in der Unit aber implementiert.

(Zum Thema Raumerfassen trägt die Turtle-Programmierung mit den hier vorgestellten Aufgaben insofern bei, als man sich programmierend ständig die Wege der Turtle vorstellen muss...)

Die Turtlereihe ist sehr motivierend, die Schüler sind bei der Arbeit kaum zu bremsen (Erfahrung aus 6 Durchgängen). Größere Anforderungen am Ende der reihe ermöglichen den Schülerinnen und Schülern  eine realistische Einschätzung der Oberstufeninformatik, was die  »Fehlwahlen« reduziert.

Der Anfang dieser Turtle-Reihe (Buchstaben) wäre auch im Geometrieunterricht der Klasse 7 denkbar (Thema Winkelsätze),- ich hab es noch nicht probieren können. Weiter wäre die Reihe für die oben angesprochene Bruchstelle zwischen Niki und Prozeduren mit Parametern in 11.1 geeignet.

Anfang der Seite
Zeitliche Abfolge einer Unterrichtsreihe
in Stufe 10 (Ohne Unterscheidung in Einzel- und Doppelstunden):
  1. Turtle ausprobieren. Handhabung derTurbo-Pascal-Umgebung. Aufbau eines Pascal (-Turtle)-Programms. Die wichtigsten Turtlebefehle.
  2. Buchstaben ausprobieren. (Lasst die Turtle mal TEE schreiben, oder MAMA!)
  3. Winkelsätze beim Zeichnen von Buchstaben
  4. Buchstabenprozeduren (ohne Parameter). Anfangs- und Endposition bei einer Prozedur
  5. Implementieren von Buchstabenprozeduren
  6. Fortsetzung Implementieren von Buchstabenprozeduren
  7. Runde Formen: Zählschleife
  8. Arbeit an Buchstabenprozeduren
  9. Arbeit an Buchstabenprozeduren
  10. Arbeit an Buchstabenprozeduren
  11. Besprechung der Prozedur für ein »D« (mit zwei Viertelkreisen)
  12. Klausur
  13. Rückgabe der Klausur
  14. Quadrat-Prozedur: Prozedur mit Parametern
  15. Rechteck-Prozedur (mehrere Parameter) und Anwendungen (Bungalow)
  16. Parameter: Vieleck, Quader
  17. Arbeit an Programmen mit Rechtecken, Parallelogrammen
  18. Programme mit Quadern: Würfelturm, Bungalow
  19. Verwendung der Zählvariablen innerhalb einer Schleife
  20. Schleifenfiguren (wie Würfelturm ...)
  21. Schleifenfiguren
  22. Inforamtion zu Polyclear. Aufgabe Fassade
  23. Fassade
  24. Schleifenprogramme: Stern aus Sechsecken
  25. Schleifenprogramme: Reihen von Sechsecken
  26. Bienenwabe
  27. Viereckspflaster
  28. Hochhaus
  29. Hochhaus
  30. Klausur
Anfang der Seite
Materialien
Die hier downloadbaren Materialen geben einen Einblick in die vielfältigen Möglichkeiten innerhalb des eng gesteckten Rahmens und in die möglichen Anforderungen.
Winword (7.0) Dateien 
Download: word.zip(97 KB)
Klausuraufgaben 93-97
Turtle.doc (Format Word97)ist eine kurze Einführung in die Turtle - Programmierung, etwa zum Nachlernen für Schüler. 
Pascaldateien
Download: pascal.zip(26 KB)
Kleine Turtleprogramme, die zum Testen bestimmter Turtleeigenschaften geschrieben wurden, oder zur Korrektur von Klausuren, oder als Lösungen und Experimente im Zusammenhang mit dem Unterricht.
Latexdateien (Unter Linux)
Download: latex.tar.gz(54 KB)

Klausuraufgaben 97 - 2000

Lösungsblätter,
Interface der Turtleunit..., 
geschrieben in Latex, mit Bildern im xfig- und im eps-Format. 
Unit rlturtle
download: rlturtle.zip(9 KB)

Meine Turtleunit. 

Rekursionen
download: rek.zip(5 KB)

Nach irgendeinem Buch habe ich mal rekursive Aufgaben programmiert. Hier die Pascaldateien dazu.

Zu den Latex-Dateien:
Die in oft eingebundene Datei »mathekopf.tex« liegt bei, sie befindet sich bei mir in einem obergeordneten Verzeichnis. Also: Es entweder genauso machen, oder die include-Zeile anpassen!
Neu (12.4.05):
Eine Sammlung aller (meist aus Klassenarbeiten stammenden) Turtleaufgaben, soweit sie in Latex geschrieben waren, hier aber als pdf-Datei
download: allturtle.pdf (497 KB)
Neu(12.4.05)
Eine Einführung mit ASufgaben, geschrieben für eine Informatik-AG 2004/05
download: ag.pdf (12 KB)
Anfang der Seite
Die Turtleunit
Geschichte
Besondere Eigenschaften, auch Fehler
Anpassung der Turtle Download der Turtle-Unit

Geschichte

Mit Turbo Pascal 6.0 wird(wurde) die Unit graph3.tpu ausgeliefert, die eine Turtle-Graphik enthält. Als wir mit der Reihe beginnen wollten, hatten wir 286er-Computer mit Herkules-Graphikkarten, welche sich mit der graph3.tpu nicht vertrugen. Deshalb habe ich auf der normalen Unit graph.tpu aufbauend die rlturtle.pas geschrieben. Ein interessantes Problem dabei war die Darstellung der Turtle selber, da sie in alle Richtungen gedreht gleich aussehen sollte,  Weiter musste eine Lösung gefunden werden dafür, dass die Turtle, wenn sie im sichtbaren Zustand Linien überdeckt, diese beim Weiterlaufen wiederherstellt: Dazu wird jeweils das Rechteck, in dem sie landen wird, gesichert und beim Verlassen wieder in den Bildschirmspeicher zurückkopiert.
Ich hatte weiter die Vorstellung, später einmal das gleichzeitige Laufen mehrerer Turtles zu ermöglichen, weshalb die Unit im Inneren (Implementation) bereits im OOP-Jargon gehalten ist. Im Interface stehen dagegen die Turtleaufrufe so, wie etwa aus graph3.tpu gewohnt. Die Erweiterung auf mehrere Turtleobjekte ist bisher nicht über erste Überlegungen hinausgekommen: Das Problem ist die Wiederherstellung des Untergrundes beim gegenseitigen Überlagern mehrerer Turtles,- zumal frei bleiben sollte, welche zuerst weiterläuft.

Anfang der Seite
Eigenschaften der RLTurtle:

Die Befehle der RLTurtle entsprechen denen der Turtle aus der graph3.tpu. Nicht implementiert sind wrap und nowrap.
Zusätzlich können Linienarten, Linienfarben eingestellt werden, was bei den Schülern natürlich sehr beliebt ist. Man kann das Bild einrahmen lassen. Die Anweisungen textmodus und wiedergraphik erlauben es etwa für Eingaben, nach denen gezeichnet werden soll, den Bildschirm in den Textmodus zu schalten: Bei der Rückkehr wird der Turtlebildschirm wiederhergestellt.

Beim Zeichnen von Körpern im Schrägbild wurde es wünschenswert, die verdeckten Linien löschen zu können. Dazu dient die Prozedur polyclr: Wird polyclr aufgerufen, so "merkt" sich die turtle jeden Punkt, an dem sie ihre Richtung ändert, solange, bis sie am ersten Punkt wieder anlangt (dann ist ein Polygon umlaufen) oder bis polyend aufgerufen wird (dann wird die momentane Position mit dem Startpunkt zu einem geschlossenen Polygon verbunden). Das innere dieses Polygon wird dann gelöscht.
Beispiel: Hochhäuser (Quader mit Fensterreihen): Das Hochhaus besteht nur aus Parallelogrammen. In die Parallelogrammprozedur bring man polyclr unter. Nun kann man sich überdeckende Hochhäuser von hinten nach vorne fortschreitend in das Bild setzen. (Siehe Beispielprogramme).
Fehler der Prozedur polyclr: polyclr arbeitet nicht fehlerfrei, wenn die Turtle im Modus showturtle ist, das liegt am Mechanismus der Untergrundwiederherstellung. Wenn polyclr überraschenderweise nichts löscht, dann kann es daran liegen, dass man nach dem Aufruf von polyclr als erste Bewegung eine Richtungsänderung macht: Den Punkt der Richtungsänderung vergleicht die Turtle mit dem beim Aufruf von polyclr gemerkten Punkt: Da beide identisch sind, hat man ein "fertiges" Polygon aus einem Punkt.
Es hat mir mal jemand verächtlich gesagt, polyclr gehöre nicht in eine Turtlegraphik. Bitte schön....

Da unsere Unterrichtsreihe im Zusammenhang mit Darstellender Geometrie steht, kam mir der Wunsch, weitergehende Aufgaben mit der Turtle lösen zu können. Einerseits entstand so die Unit UTRIGO.PAS (in pascal.zip), welche Prozeduren zur Dreiecksberechnung zur Verfügung stellt. (Die Schüler waren  meist in Mathe noch nicht weit genug).
Später bin ich dazu übergegangen, etwa das Schrägbild eines Hauses mit Walmdach wie in der darstellenden Geometrie zeichnen zu lassen, also etwa alles auf dem Grundparallelogramm aufzubauen. Erforderlich wurde es dabei, dass man bekannte Punkt miteinander verbinden kann. Die Hilfsmittel hierzu habe ich in die Turtle eingebaut:
Mit Hilfe der Prozedur setpoint merkt sich die Turtle einen (durch einen Großbuchstaben identifizierten) Punkt, und dieser Punkt kann durch die Prozedur topoint angesteuert werden. Insgesamt findet man im Interface der Turtle 5 Prozeduren, welche diesem Mechanismus dienen. (Es kann sein, dass in den Latex- oder Word-Dateien, welche das Interface der Turtle wiedergeben, diese Befehle noch nicht aufgeführt sind. Sie sollten auch nicht unbedingt anfangs schon den Schülern bekannt sein, weil sonst viele Aufgaben ihren Reiz verlieren. Hier wird also wirklich die Turtlephilosophie zerstört..).
Die Unit RLTURTLE hat mehrere Unterrichtsreihen überstanden. Es sind mir (Garantie ausgeschlossen) keine Fehler aufgefallen. (Hm.--- Nachtrag 9.1.2001: Ein Fehler in LookToPoint wurde heute - erst- entfernt)

Anfang der Seite
Anpassung der Turtle
In zweierlei Hinsicht muss man die Turtle-Unit anpassen:
  1. In Zeile 66 der Unit RLTurtle.pas steht die Konstante Graphpath, zur Zeit:

  2.  CONST GRAPHPATH = 'D:\inf\turbo6\bgi'
    Diese Konstante muss auf das BGI-Unterverzeichnis der jeweils eigenen Turbo-Pascal-Installation zeigen. Wenn das nicht geschieht, erhält man einen Run-Time-Error.
  3. Es kann sein, dass die Bildschirmdarstellung verzerrt wirkt. In Zeile 68 der Unit RLTurtle.pas steht die Konstante aspcorrection. Erhöht man ihren Wert, so wird das Bild in y-Richtung gestreckt. Mit dem Programm turtlete.pas (in pascal.zip) kann man beispielsweise die Darstellung von Quadraten und Kreisen prüfen.
Viel Spass! (Zum Download)
Anfang der Seite