Zum Unterricht | Materialien (Download) Neu(12.4.05): PDF-Dateien |
Meine Turtle-Unit | Zurück zur Homepage von R.Lütticken |
|
|
|
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.
Zeitliche Abfolge einer Unterrichtsreihe
|
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) |
|
|
Anpassung der Turtle | Download der Turtle-Unit |
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.
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)