TurtleBlumeJavaScript
Aus ProgrammingWiki
Archivierte Version vom 2015-02-19T23:34:27+00:00. Aktuelle Version
Hinweise für Lehrperson
Das beschriebene Beispiel wurde hier im Wiki bereits fertig gestellt. Musterlösungen sind auf allen Gruppenseiten angegeben. Wenn Sie dieses Beispiel verwenden möchten, kopieren Sie es und löschen Sie die Musterlösungen.
Rahmenbedingungen
- Unterrichtseinheit ca. 45 min.
- Grundkenntnisse in Java wurden bereits erarbeitet (Kontrollstrukturen, Schleifen)
- Die Schülerinnen und Schüler haben bereits mit Turtle-Funktionen gearbeitet
Lernziele
- Schülerinnen und Schüler sollen den Umgang mit Schnittstellen kennen lernen. Anhand eines konkreten Arbeitsauftrags soll ein kleiner Algorithmus entwickelt werden, der in einem Gesamtsystem funktionieren muss.
- Umgang mit hexadezimalen Farbwerten und Umrechnung in RGB.
- Nebenläufigkeiten und Nachteile globaler Variablen sollen diskutiert werden.
- Anhand einer Grafik die ein mögliches Ergebnis zeigt, soll selbständig ein Algorithmus zu dessen Herstellung erarbeitet werden.
- Gemeinsame Fehleranalyse des entwickelten Gesamtsystems
Durchführung
- Zunächst wird eine Motivation für das Projekt aufgebaut. Dazu können Analogien wie die Automobilindustrie (Teilezulieferung, Zusammenbau) verwendet werden.
- Das Ziel, Zeichnen einer Blume, wird an der Tafel skizziert, in Teilprobleme zerlegt und die Abfolge aufgezeigt wie die Blume ensteht (Stängel -> Blätter -> Stängel -> Blätter -> Stängel -> Blüte). Es wird keine fertige Lösung im Wiki gezeigt!
- Die Lehrperson erklärt den Rahmen des Projekts mit 3 Teilgruppen. Jeder der 3 Arbeitsaufträge wird besprochen und anschließend werden die Schülerinnen und Schüler auf die 3 Gruppen verteilt (2-4 Personen pro Gruppen erscheinen sinnvoll).
- Die Gruppen erarbeiten ihre Hilfsfunktion auf ihrer Wikiseite. Eine entsprechende Codebox ist bereits vorgegeben und eine leere Funktion (Schnittstelle/Prototyp) ist gegeben. Option: Die Codeboxen können auch komplett leer vorgegeben werden und die Herstellung des Prototypen kann ebenfalls gemeinsam erfolgen.
- Zum zeichnen wird das globale Objekt turtle verwendet.
- Bei jeder Gruppe ist die Transformation von hexadezimalen Farbangaben in RGB nötig. Diese kann ggf. gemeinsam entwickelt werden. Option: Die Umrechnung wird von der Lehrperson vorgegeben.
- Auf jeder Gruppenseite sind am Ende Evalboxen zum Testen vorgesehen. Die Schülerinnen und Schüler sollen ihre Hilfsfunktionen ausgiebig testen und mit verschiedenen Parametern aufrufen. Dabei geht es neben der graphischen Ausgabe um eine Überprüfung der Wertebereiche der einzelnen Parameter. Es sollte gemeinsam ein einheitliches Verhalten im Fehlerfall definiert werden (Beispielsweise Fehlerausgabe auf der Konsole).
- Die Komplexität der graphischen Ausgabe der 3 Hilfsfunktionen können die Schülerinnen und Schüler nach eigenen Fähigkeiten ausbauen. Es gilt aber zumindest die auf den Wikiseiten gezeigten Beispiele zu erreichen.
- Wenn alle Gruppen meinen ihren Arbeitsauftrag fertig gestellt zu haben, wird das Programm zum Zeichnen einer Blume auf dieser Seite hier gestartet.
- Wir betrachten nun gemeinsam das Gesamtsystem und versetzen uns in die Rolle eines Verantwortlichen der das Ergebnis nun beurteilen soll. Einige mögliche Diskussionspunkte:
- Eine Gruppe hat die turtle nicht auf den Anfangswinkel zurückgesetzt und es ensteht keine Blume. Welche Gruppe könnte dafür verantwortlich sein und warum?
- Die Blätter und Kreise werden hier mit einem dickeren Stift gezeichnet als es beim testen in der Gruppe der Fall war - warum ist das so? (globale Variablen)
- Ein Wertebreichsfehler wird provoziert - die betreffende Funktion bricht ab/gibt Fehlermeldung, die anderen arbeiten aber weiter - ist dies sinnvoll, was könnte man tun? (Funktionen mit Rückgabewert)
- Abschließende Diskussion zu Schnittstellen und verteilter Entwicklung. Welche Vor- und Nachteile bringt dies:
- Unabhängige Entwicklung (Out-Sourcing)
- Austauschbarkeit von Funktionen (Module)
- Abhängigkeiten dürfen nicht zu groß sein
- Zerlegung in Teilprobleme nicht immer einfach
Bei dieser Gruppenarbeit soll gemeinsam eine Blume gezeichnet werden. Dazu werden die Teile der Blume in Hilfsfunktionen zerlegt. Die Aufgabe jeder Gruppe ist es, die entsprechende Hilfsfunktion bereit zu stellen. In der nachfolgenden Tabelle findet ihr für eure Gruppe jeweils eine vorbereitete Wikiseite. Darin ist eine code Box enthalten die ihr füllen müsst. Der Inhalt dieser Box wird später in dieser Seite hier eingebunden und wird für das Zeichnen der Blume benötig werden.
| Gruppe | Verantwortliche |
|---|---|
| Hilfsfunktion Stängel | Max und Moritz |
| Hilfsfunktion Blatt | Tom und Jerry |
| Hilfsfunktion Blüte | Thelma und Louise |