8
GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der Einführungsphase der Oberstufe von Martin Stadlbauer, JHG Senden, 17.9.2015 Email: schule [āť] p o e g g s k e n . de Ich möchte hier ein Unterrichtsreihe vorstellen, die ich im Schuljahr 2014/15 im Grundkurs Informatik der EF durchgeführt habe. Diese Reihe beruht auf drei wesentlichen Entscheidungen: 1) Wir haben die didaktische 3D-Bibliothek GLOOP von Volker Quade benutzt. 2) Bei der Reihe handelt es sich um ein einziges Projekt, das sich über fast das gesamte Schuljahr erstreckt. 3) Als Entwicklungsumgebung haben wir Eclipse eingesetzt. Das Konzept ist sicher ungewöhnlich, und zunächst stellte ich mir auch einige kritische Fragen. GLOOP: - Schaffen es die Schüler, sich nicht nur eine Programmiersprache wie Java anzueignen und gleichzeitig sich in drei Dimensionen zu bewegen? - Sollten nicht erst die Grundstrukturen wie Schleifen und Bedingungen eingeübt werden, bevor es an Objekte geht? Nur eine einziges Projekt: - Wird das nicht langweilig? Bietet das genug Möglichkeiten, dem Kernlehrplan gerecht zu werden? Eclipse: Ist das nicht viel zu kompliziert? Wäre es nicht besser eine didaktische IDE wie BlueJ zu verwenden? Bereits nach den ersten Stunden zeigte sich, dass diese Befürchtungen unnötig waren. Im Gegenteil: die Vorteile, die ich Seite 1

GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

Embed Size (px)

Citation preview

Page 1: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der Einführungsphase der Oberstufe

von Martin Stadlbauer, JHG Senden, 17.9.2015Email: schule [āť] p o e g g s k e n . de

Ich möchte hier ein Unterrichtsreihe vorstellen, die ich im Schuljahr 2014/15 im Grundkurs Informatik der EF durchgeführt habe.Diese Reihe beruht auf drei wesentlichen Entscheidungen:

1) Wir haben die didaktische 3D-Bibliothek GLOOP von Volker Quade benutzt.

2) Bei der Reihe handelt es sich um ein einziges Projekt, das sich über fast das gesamte Schuljahr erstreckt.

3) Als Entwicklungsumgebung haben wir Eclipse eingesetzt.

Das Konzept ist sicher ungewöhnlich, und zunächst stellte ich mir auch einige kritische Fragen.GLOOP:- Schaffen es die Schüler, sich nicht nur eine Programmiersprache wie Java anzueignen und gleichzeitig sich in drei Dimensionen zu bewegen?

- Sollten nicht erst die Grundstrukturen wie Schleifen und Bedingungen eingeübt werden, bevor es an Objekte geht?Nur eine einziges Projekt:- Wird das nicht langweilig? Bietet das genug Möglichkeiten, dem Kernlehrplan gerecht zu werden?Eclipse:Ist das nicht viel zu kompliziert? Wäre es nicht besser eine didaktische IDE wie BlueJ zu verwenden?

Bereits nach den ersten Stunden zeigte sich, dass diese Befürchtungen unnötig waren. Im Gegenteil: die Vorteile, die ich

Seite 1

Page 2: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

mir von dieser Vorgehensweise erhofft hatte, bestätigten sich.

GLOOPCity - Die Idee

Städtebauspiele gibt es schon seit Jahrzehnten. Vielen ist der Klassiker SimCity, den es noch immer in der x-ten Version gibt, sicher bekannt. Auch auf Facebook oder als Onlineversion gibt es unzählige Spiele, bei denen es darum geht, etwas aufzubauen.

Bei GLOOPCity geht es darum, nach und nach eine eigene Stadt zu erschaffen. Ob auf dem Land, unter Wasser oder auf einem andern Planeten suchen sich dieSchüler selbst aus.

Am Anfang geht es um Himmel und Boden für die Stadt. Hierbei arbeiten die Schüler von Anfang an mit Objekten, auch wenn ihnen das in den ersten Stunden gar nicht bewusst ist. In der Antike stellten Plätze, z.B. ein Forum, einen zentralen Ort einer Stadt dar. Ein solches Forum, angelehnt an die Idee „Skulpturengarten“ von Volker Quade, ist das nächste Teilprojekt.

Dank des Aufbaus von GLOOP entwickelt sich ein grundlegendes Verständnis von Objekt und Klasse bei allen Schülern relativ schnell.Eine Umrandung des Platzes mit Büschen wird als Gelegenheit genutzt, die for-Schleife und Felder einzuführen.Bäume und Wälder bieten die Einführung von Parametern.Eine Stadt benötigt natürlich Häuser. Jeder entwirft sein eigenes Haus. Diese können nachher untereinander ausgetauscht werden, um die Stadt abwechslungsreicher zu machen. Hier lässt sich bereits das Interface sinnvoll einführen.Die Tastatursteuerung der Kamera ist ein weiteres Teilprojekt, das diese 3D-Stadt unter ganz neu erscheinen lässt.Eine Weltzeituhr angelehnt an eine Idee von Volker Quade findet als nächstes seinen Platz in der Stadt. Abgerundet wird das Projekt durch Fahrzeuge, die sich selbständig durch die Stadt bewegen. Nicht nur das Thema Vererbung wird hierbei, auch die Kollisionskontrolle oder die automatische Steuerung von mehreren Objekten stellt ein relativ komplexes Problem dar, das es zu lösen gilt.

Da es unzählige Ideen gibt, weitere Extras in der Stadt einzubauen, kommt Langeweile bei den Schülern nie auf. Ohne eine Anregung geben zu müssen, werden von einigen Garagen eingebaut, die sich per Knopfdruck öffnen und in denen ein Auto selbständig einparkt. Oder die Stadt wird um Laternen, Wolken oder Schneemänner ergänzt. Und kommt man mal doch nicht weiter, kann man jaan einer Textur feilen. Danach kommt vielleicht doch die zündende Idee.

Die Installation

Um bei einem solch großen Projekt nicht die Übersicht zu verlieren, bietet sich Eclipse als IDE an.

Das war aber eigentlich nicht der ausschlaggebende Punkt für diese Wahl. Entgegen manchem Vorurteil hatte ich bei Eclipse überhaupt nicht das Gefühl, das es zu kompliziert für Schüler sei. Ganz im Gegenteil: Nach einer Woche war den Schülern nicht nur die Bedienung klar, sie nutzten auch ausgiebig die Java-API um sich Hilfe zu suchen und gingen mithilfe der Quick-Fixes manchenFehlermeldungen auf den Grund. Dass es manche Funktion gab, die sie nicht gebrauchen konnten,

Page 3: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

störte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das.

Neben der Installation von Java (JDK) müssen auch Eclipse und GLOOP auf dem Schulrechnern installiert werden. Die Schüler bekamen die Installation als Hausaufgabe zu Beginn auf. Das hat gutgeklappt.

Hallo Welt

Um die grundlegende Funktionsweise der IDE und den Aufbau eines Programms kennenzulernen, bietet sich ein Hallo-Welt-Programm an.

Dazu wird in Eclipse ein neues Projekt angelegt namens Sandbox. Alle Miniprogramme, die nicht zu GLOOPCity gehören, finden hier ihren Platz.Im src-Ordner wir eine neue Klasse erstellt namens HalloWelt. Der Haken für die main-Methode sollte gesetzt werden. Noch ein System.out.println(„Hallo Welt!“); und das erste Java-Programm kann starten.

Boden und Himmel

Nun geht es mt GLOOPCity los. Die Schüler denken sich einen Namen für ihre Stadt aus und erzeugen ein neues Projekt mit diesem Namen.Im src-Ordner wird ein neues Package namens app erzeugt. In diesem Package wird eine neue Klasse mit dem Namen der Stadt angelegt samt main-Methode.Um GLOOP nutzen zu können muss über BuildPath die Bibliothek noch eingebunden werden.

Jetzt geht es mit dem Programm los. Boden, Himmel, Kamera und Licht müssen in der Stadt eingerichtet werden. Es ist sinnvoll in der main-Methode nur den Konstruktor aufzurufen und das eigentliche Hauptprogramm dort ablaufen zulassen. Für Himmel und Boden müssen auch gleich miteinem Malprogramm Texturen gezeichnet werden.

Dieser erste Schritt ist recht aufwendig, muss aber ja auch nur ein einziges Mal gemacht werden. Dabei sollte aus didaktischen Gründen bei der Erklärung mehr Wert auf die GLOOP-Elemente gelegt werden. Das Spiel zwischen Main-Methode und Konstruktor sollte man hier besser nicht vertiefen. Dafür ist später auch noch Zeit.

Forum

Ein neues Package gebaeude wird angelegt und in diesem die Klasse Forum (ab nun natürlich immer ohne main). Diese wird in die Hauptklasse eingebunden, die Schüler kommen schon drauf wie. Es sollte aber darauf hingewiesen werden, dass ein import gebaeude.*; nötig ist.

Seite 3

Page 4: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

Die Hauptarbeit liegt nun in der Klasse Forum. Auf einem Platz, 400x400 Punkt um den Ursprung herum sollten in einem Kreis Skulpturen (Kugeln, Würfel, Prismoiden, ...) auf Sockeln gesetzt werden.

Als Abschluss wird um das Forum herum eine Hecke aus Büschen gepflanzt. Es handelt sich dabei um Kugeln in zwei Grün-Tönen. Hier können Array, for-Schleife, if-Abfrage und Moduloeingeübt werden.

Bäume und Wälder

Da in der Stadt viele Bäume Platz finden sollen, bietet es sich an, für die Bäume eine eigene Klasse zu schaffen. Die Übergabe von Parametern kann hier eingeführt werden.Der Konstruktor lautet public Baum (double pX, double pZ, double pHoehe).

Ein Baum besteht aus einem Stamm (Zylinder) und einer Krone (Kugel). Die Radien und Höhe richten sich prozental nach dem Parameter pHoehe. Ein Wald besteht aus vielen Bäumen, die zufällig in

einem angegebenen Gebiet gepflanzt werden.Das Arbeiten mit Array und Zufallszahlen kann dabei geübt werden.

Um die Übersicht zu wahren, kann an dieser Stelle auch die Dokumentation mit JavaDoc eingeführtwerden. Ist bei Schülern zwar nicht sehr beliebt, aber es sieht immerhin damit ganz schick aus und die Handhabung ist in Eclipse sehr einfach.

Häuser

Page 5: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

Ein Haus kann aus einem Quaderund einem Prismoid bestehen, kann aber auch vier separate Wände und Tür und Fenster und eine Garage mit Rolltor haben. Für Binnendifferenzierung lässt dieses Teilprojekt sehr viel Raum.Die fertigen Häuserklassen sollendie Schüler schließlich untereinander austauschen, um die Stadt abwechslungsreicher zumachen.

Damit ein solcher Austausch überhaupt möglich ist, müssen alle Schüler in ihrer Klasse bezüglich der öffentlichen Methoden einheitliche

Bezeichnungen und Parameter verwenden. Eine solche Situation tritt in der Arbeitswelt häufig auf: Der Chef gibt die Randbedingungen vor, die unterschiedlichen Abteilungen produzieren Bauteile nach dieser Vorgabe, so dass nachher alles zusammen passt.Die Einführung des Interface bietet sich hier geradezu an.Der Lehrer gibt ein Interface vor, das alle Methoden und Konstanten enthält und sorgfältig dokumentiert ist. Die Schüler legen z.B. in gebaeude ein neues Package haus an, in das dieses Interface Haus.java kopiert wird. In diesem Package legen sie eine eigene Klasse Haus-Klasse an, die im Kopf ein implements Haus enthält. Dadurch werden die Schüler gezwungen, die entsprechenden Methoden anzulegen. Nach Belieben kann man die Schülern auch auch auf den QuickFix von Eclipse aufmerksam machen, der die benötigten Methode automatisch anlegt. Statt über das Interface ließe sich diese Vorbereitung auch über ein Template gestalten. Sollte man aber nicht. Ein interessanter Diskussionsanlass im Unterricht.

Tastatur- und Kamerasteuerung

Die Kamera soll nun über die Tasten gesteuert werden, außerdem wäre es komfortabel, das Programm mit Esc verlassen zu können.Mit Hilfe von GLTastatur gelingt es leicht, dieses umzusetzen und dabei die while-Schleife einzuführen und if-Abfragen zu üben. Es ist sinnvoll nach jedem Schleifendurchlauf eine Millisekunde zu warten, damit die Programmgeschwindigkeit nicht von der Rechnerleistung abhängt. Hier kann auch das Thema Rechnerleistung, Taktfrequenz, usw. besprochen werden..

Weltzeitzuhr

Seite 5

Page 6: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

Angelehnt an die Idee von Volker Quade (Analoguhr) wirdin der Stadt eine Weltzeituhr aufgebaut. An einem Turm, einer Wand, etc. werden mehrere Uhren installiert, die unterschiedliche Zeiten anzeigen sollen. Jede Uhr besteht aus einem Ziffernblatt und aus drei Zeigern. Es soll natürlich die echte Systemzeit angezeigt werden. Diese Uhr, bei der mehrere Klassen verwendet werden, bietet die Möglichkeit, mithilfe eines relativ komplexen UML-Diagramms ein Programm zu planen.

Mobile

Autos gehören natürlich auch in die Stadt. Vom Lehrer werden die Klassen Mobil.java und MobilEinzeltei.java vorgegeben und in das neugeschaffene Package mobil kopiert.Ein Auto ist ein Mobil. Und Jedes Mobil besteht aus MobilEinzelteilen, z.B. einer Karosserie und Rädern.Durch das Prinzip der Vererbung könne die Klassen Auto,Rad, Karosserie relativ schlank gehalten werden und die Schüler können sich aufs Wesentliche konzentrieren und werden nicht überfordert.Ein Template wäre eine Alternative, aber keine gute. In der Programmierpraxis hat man es mit Vererbung

übrigens auch meistens dann zu tun, wenn eine vorgegebene Klasse (z.B. aus einem Standard-Java-Paket) eingesetzt wird, die bereits eine Sub-Sub-Subklasse ist und ggf. über extends als Superklasseweiterverwendet wird.

Schließlich soll jedem Auto noch eine Route mitgegeben werden, entlang der es sich bewegt, wenn die Methode public void bewegeDich(double s) aufgerufen wird.Dazu wird dem Auto über public void setzeWegpunkte(GLVektor[] pWegpunkte) ein Feld vonPunkten mitgegeben.Die Steuerung der Autos erfolgt über die Hauptklasse.Auch eine Kollisionskontrolle kann ergänzt werden.

Fazit

Innerhalb eines Schuljahres erschaffen die Schüler, die zu Beginn keinerlei Java-Kenntnisse

Page 7: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)

besitzen eine bewegt dreidimensionale Stadt, die immer weiter wächst.Ebenso wachsen die Programmierkenntnisse stetig mit.Die Motivation ist sehr hoch. Dazu trägt nicht nur die zeitgemäße Grafik bei. Vor allem scheint es das spielerische Element zu sein, das die Schüler immer weiter antreibt und über die gestellten Anforderungen hinaus Zeit und Mühe in das Projekt stecken lässt. Im Grunde handelt es sich um eine Art Welten-Aufbau-Spiel auf Java-Basis. Die Anforderungen des Kernlehrplans werden dabei gänzlich abgedeckt.

Materialien

Dieser Text (pdf)Unterrichtsmaterial (zip)

Schüler-Quelltext als Beispiel (zip)

Das zugehörige lauffähige Programm(zip)(Hier muss nach dem Entpacken unter Windows nur GLOOPCity.bat aufgerufen werden)

Zugehöriger Schulinterner Lehrplan

Seite 7

Page 8: GLOOPCity – Ein Beispiel für den Einsatz von GLOOP in der ... · PDF filestörte sie nicht. Jeder, der mit Word oder Excel arbeitet, kennt das. Neben der Installation von Java (JDK)