Thema - Schulentwicklung NRW

Download Report

Transcript Thema - Schulentwicklung NRW

Objektorientierte Modellierung und
Programmierung mit Hilfe
dreidimensionaler Simulationen
Volker Quade
Februar 2014
I. Grundlegendes
Oder: Was heißt eigentlich Modellierung
und Programmierung?
II. Einführung in GLOOP
Oder: Was ist GLOOP
eigentlich?
Erste Schritte in eine dreidimensionale Welt (1)
Der Programmierung in GLOOP wird ein dreidimensionales Koordinatensystem zugrunde gelegt. Es handelt sich um ein rechtshändisches Koordinatensystem.
Y
X
Z
Erste Schritte in eine dreidimensionale Welt (2)
GLKamera
Ein Objekt dieser Klasse öffnet ein
Fenster, in dem die dreidimensionale Welt
dargestellt wird.
GLObjekt
Die Klasse GLObjekt selbst ist abstrakt.
Ihre Unterklassen stellen die
geometrischen Objekte dar, aus denen
eine Szene aufgebaut ist.
GLLicht
Mindestens eine Lichtquelle ist
erforderlich,
um die Szene auszuleuchten.
Das erste Programm – „Hello world!“
Deklaration von drei Objekten
Initialisierung von drei
Objekten
Das erste Programm – „Hello world!“
Eine einfache Simulation
Drehung um den
eigenen
Mittelpunkt.
Drehung um
den Punkt (0,0,0).
Methoden von GLObjekt
GLObjekt
+ setzePosition ( … )
+ verschiebe ( … )
Positionierung
+ setzeDrehung ( … )
+ drehe ( … )
Drehung
+ setzeSkalierung ( … )
+ skaliere ( … )
+ setzeFarbe ( … )
+ setzeTextur ( … )
+ gibX() : double
+ gibY() : double
+ gibZ() : double
+ loesche()
[...]
Größenänderung
Oberflächengestaltung
Position liefern
Löschen
Es steht jeweils
ein absoluter
und
ein relativer
Befehl zur
Verfügung.
Klassenstruktur
Alle Konstruktoren folgen dem gleichen Muster:
<Klassenbezeichner>(<Position>, <Ausdehnung>)
(Beispiel: GLQuader (X, Y, Z, Breite, Höhe, Tiefe: double);)
Ein- und Ausgabe (1)
Mit Hilfe der Konsole kann ein
einzelner String ein- bzw.
ausgegeben werden.
Ein- und Ausgabe (2)
Tafel mit und ohne
Autodrehung
(Billboarding)
I. Unterrichtliches Vorgehen
Oder: Was kann man
damit machen?
Unterrichtsvorhaben EF-II
Thema: Grundlagen der objektorientierten Analyse, Modellierung und
Implementierung anhand von statischen Grafikszenen
Kompetenzerwartungen:
Die Schülerinnen und Schüler
• ermitteln bei der Analyse einfacher Problemstellungen Objekte, ihre Eigenschaften, ihre
Operationen und ihre Beziehungen (M),
• modellieren Klassen mit ihren Attributen, ihren Methoden und
Assoziationsbeziehungen (M),
• stellen die Kommunikation zwischen Objekten grafisch dar (M),
• implementieren einfache Algorithmen unter Beachtung der Syntax und Semantik einer
Programmiersprache (I),
• stellen den Zustand eines Objekts dar (D).
Unterrichtsvorhaben EF-II
1. Identifikation von Objekten
a) Am Beispiel eines lebensweltnahen
Beispiels werden Objekte im Sinne
der Objektorientierten
Modellierung eingeführt.
b) Objekte werden mit Objektkarten
visualisiert und mit sinnvollen
Attributen und „Fähigkeiten“, d.h.
Methoden versehen.
c) Manche Objekte sind prinzipiell
typgleich und werden so zu einer
Objektsorte bzw. Objektklasse
zusammengefasst.
d) Vertiefung: Modellierung weiterer
Beispiele ähnlichen Musters
: Vogel
Vögel als Objekte
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
ges c hl ec ht = m
f ar be = bl au
: Vogel
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
ges c hl ec ht = w
f ar be = br aun
: Vogel
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
ges c hl ec ht = m
f ar be = bl au
: Vogel
bez ei c hnung = " Saat k r ähe"
gewi c ht = 304 g
ges c hl ec ht = m
f ar be = s c hwar z
: Vogel
: Vogel
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
ges c hl ec ht = w
f ar be = br aun
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
ges c hl ec ht = m
f ar be = bl au
: Vogel
: Vogel
bez ei c hnung = " Saat k r ähe"
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
ges c hl ec ht = m
f ar be = bl au
Vögel als Instanzen einer Klasse
: Vogel
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
ges c hl ec ht = w
f ar be = br aun
: Vogel
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
: Vogel ges c hl ec ht = m
f ar be = bl au
bez ei c hnung = " Saat k r ähe"
gewi c ht = 304 g
ges c hl ec ht = m
f ar be = s c hwar z
: Vogel
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
ges c hl ec ht = w
f ar be = br aun
: Vogel
bez ei c hnung = " Bl auhäher "
gewi c ht = 82 g
: Vogel
ges c hl ec ht = m
f ar be = bl au
bez ei c hnung = " Saat k r ähe"
gewi c ht = 304 g
ges c hl ec ht = m
f ar be = s c hwar z
: Vogel
bez ei c hnung = " Sper l i ng"
gewi c ht = 45 g
ges c hl ec ht = w
f ar be = br aun
: Vogel
bez ei c hnung = " Saat k r ähe"
gewi c ht = 304 g
ges c hl ec ht = m
f ar be = s c hwar z
Attribute
Vogel
bezei chnung: Text
gewi cht : Zahl
geschl echt : Zei chen
f ar be: Text
si nge( )
f l i ege( )
l ande( )
gi bFar be( ) : Text
[...]
Methoden
Unterrichtsvorhaben EF-II
2. Analyse von Klassen didaktischer Lernumgebungen
a) Objektorientierte Programmierung als
modularisiertes Vorgehen (Entwicklung von
Problemlösungen auf Grundlage vorhandener
Klassen)
b) Teilanalyse der Klassen der didaktischen
Lernumgebungen GLOOP
Materialien:
Dokumentation der didaktischen Bibliothek
GLOOP (download)
3. Implementation dreidimensionaler, statischer
Szenen
a) Grundaufbau einer Java-Klasse
b) Konzeption einer Szene mit Kamera, Licht und
sichtbaren Objekten
c) Deklaration und Initialisierung von Objekten
d) Methodenaufrufe mit Parameterübergabe zur
Manipulation von Objekteigenschaften (z.B.
Farbe, Position, Drehung)
Beispiel: Skulpturengarten
Schülerinnen und Schüler erstellen ein
Programm, das mit Hilfe von geometrischen
Objekten der GLOOP-Umgebung einen
Skulpturengaten auf den Bildschirm bringt.
Beispiel: Olympische Ringe
Die Schülerinnen und Schüler bilden das
Emblem der olympischen Spiele mit Hilfe von
GLOOP-Objekten nach.
Materialien:
Ergänzungsmaterialien zum Lehrplannavigator
- Sequenzielle Programmierung (download)
Der Skulpturengarten
 Eine besondere Herausforderung ist die kreisförmige Anordnung der
Skulpturen!
Vertiefung: Olympische Ringe
 Die Ringe müssen natürlich richtig ineinandergreifen.
Vertiefung: Olympische Ringe
Unterrichtsvorhaben EF-III
Thema: Grundlagen der objektorientierten Programmierung und algorithmischer
Grundstrukturen in Java anhand von einfachen Animationen
Kompetenzerwartungen: (Argumentieren, Modellieren)
Die Schülerinnen und Schüler
•
•
•
•
•
•
analysieren und erläutern einfache Algorithmen und Programme (A),
entwerfen einfache Algorithmen und stellen sie umgangssprachlich und grafisch dar (M),
ermitteln bei der Analyse einfacher Problemstellungen Objekte, ihre Eigenschaften, ihre
Operationen und ihre Beziehungen (M),
modellieren Klassen mit ihren Attributen, ihren Methoden und Assoziationsbeziehungen
(M),
ordnen Attributen, Parametern und Rückgaben von Methoden einfache Datentypen,
Objekttypen oder lineare Datensammlungen zu (M),
ordnen Klassen, Attributen und Methoden ihren Sichtbarkeitsbereich zu (M).
Unterrichtsvorhaben EF-III
Thema: Grundlagen der objektorientierten Programmierung und algorithmischer
Grundstrukturen in Java anhand von einfachen Animationen
Kompetenzerwartungen: (Implementieren)
Die Schülerinnen und Schüler
•
•
•
•
•
•
modifizieren einfache Algorithmen und Programme (I),
implementieren Klassen in einer Programmiersprache auch unter Nutzung
dokumentierter Klassenbibliotheken (I),
implementieren Algorithmen unter Verwendung von Variablen und Wertzuweisungen,
Kontrollstrukturen sowie Methodenaufrufen (I),
implementieren einfache Algorithmen unter Beachtung der Syntax und Semantik einer
Programmiersprache (I),
testen Programme schrittweise anhand von Beispielen (I),
interpretieren Fehlermeldungen und korrigieren den Quellcode (I).
Unterrichtsvorhaben EF-III
1. Bewegungsanimationen am Beispiel
einfacher grafischer Objekte (GLObjekte)
a) Kontinuierliche Verschiebung eines
GLObjekts mit Hilfe einer Schleife (WhileSchleife)
b) Tastaturabfrage zur Realisierung einer
Schleifenbedingung für eine
Animationsschleife
c) Mehrstufige Animationen mit mehreren
sequenziellen Schleifen
d) Berechnung von Abständen zwischen
GLObjekten mit Hilfsvariablen
e) Meldungen zur Kollision zweier GLObjekte
mit Hilfe von Abstandsberechnungen und
Verzweigungen (IF-Anweisungen)
Das Ballwurfspiel
Ziel des Spiels ist es, mit einem Ball eine Zielscheibe zu treffen. Der Ball kann mit der
Tastatur nach links, rechts, oben und unten bewegt und so in die richtige Position gebracht
werden. Auf Tastendruck fliegt er nach vorne weg, bis er auf Höhe der Zielscheibe ist. Ein
Treffer bzw. Fehlwurf sollte mit einer Meldung angezeigt werden.
Zielscheibe (1)
Quadratischer Untergrund (1)
Ball(1)
Modellierung mit Struktogrammen
1. Schritt
2. Schritt
Nicht ' 'gedrückt
w
„Links“ gedrückt
Ball nicht auf Zielhöhe
Ball nach links verschieben
w
„Rechts“ gedrückt
3. Schritt
f
Ball nach rechts verschieben
w
„Oben“ gedrückt
Ball nach hinten verschieben
f
w
Distanz < Radius
Melde „Treffer“
f
Melde „Daneben“
f
Ball nach oben verschieben
w
„Unten“ gedrückt
Ball nach unten verschieben
f
Gemeint ist hier die Distanz zwischen
dem Ball und der Zielscheibe bzw. der
Radius der Zielscheibe.
Modelllösung: Ballwurfspiel
Unterrichtsvorhaben EF-III
2. Erstellen und Verwalten größerer Mengen
einfacher grafischer Objekte (GLObjekte)
a) Erzeugung von Objekten mit Hilfe von
Zählschleifen (FOR-Schleife)
b) Verwaltung von Objekten in
eindimensionalen Feldern (Arrays)
c) Animation von Objekten, die in
eindimensionalen Feldern (Arrays)
verwaltet werden
d) Vertiefung: Verschiedene Feldbeispiele
Vertiefung: Hubschrauberlandeplatz
 Die Kreise sind Signalleuchten und werden in einem Feld verwaltet. Zu
Einübung von Schleifen können Lauflichter oder Blinklichter realisiert werden.
Vertiefung: Schachbrett
 Die einzelnen Platten werden in verschachtelten Schleifen erstellt. Mit einer
Verzweigung kann die unterschiedliche Färbung realisiert werden.
Unterrichtsvorhaben EF-III
3. Modellierung und Animation komplexerer
grafisch repräsentierbarer Objekte
a) Modellierung eines Simulationsprogramms
mit eigenen Klassen, die sich selbst mit
Hilfe von einfachen GLObjekten zeigen mit
Hilfe eines Implementationsdiagramms
b) Implementation eigener Methoden mit
und ohne Parameterübergabe
c) Realisierung von Zustandsvariablen
d) Thematisierung des Geheimnisprinzips und
des Autonomitätsprinzips von Objekten
e) Animation mit Hilfe des Aufrufs von
selbstimplementierten Methoden
f) Vertiefung: Weitere Projekte
Drei Kerzen im Raum
Es soll eine Szene erstellt werden, in der drei brennende Kerzen auf einem
Holzbrett stehen.
Flamme
Docht
Kerzenkörper
Kerzen (3)
Quadratischer Untergrund (1)
Modellierung des Projekts Kerzen
Kerzenszene
- kamera: GLKamera
- tastatur: GLTastatur
- kerze1
- kerze2
- kerze3
+ Kerzenszene()
+ fuehreAus()
Kerze
- koerper: GLZylinder
- docht: GLZylinder
- flamme: GLLicht
- dicke: double
- laenge: double
- an: boolean
+ Kerze(pX: double, pZ: double, pDicke: double, pLaenge: double)
+ an()
+ aus()
+ brenneAb()
- untergrund
Untergrund
- platte: GLQuader
+ Untergrund()
 Kerzen brennen abhängig von ihrer Dicke unterschiedlich schnell ab und
gehen am Ende aus.
Kerzenszene mit Parametern und Methoden
Unterrichtsvorhaben EF-IV
Thema: Modellierung und Implementierung von Klassen- und Objektbeziehungen
anhand von grafischen Spielen und Simulationen
Kompetenzerwartungen: (Argumentieren, Modellieren)
Die Schülerinnen und Schüler
•
•
•
•
•
•
•
analysieren und erläutern eine objektorientierte Modellierung (A),
stellen die Kommunikation zwischen Objekten grafisch dar (M),
ermitteln bei der Analyse einfacher Problemstellungen Objekte, ihre Eigenschaften, ihre
Operationen und ihre Beziehungen (M),
modellieren Klassen mit ihren Attributen, ihren Methoden und Assoziationsbeziehungen
(M),
ordnen Attributen, Parametern und Rückgaben von Methoden einfache Datentypen,
Objekttypen oder lineare Datensammlungen zu (M),
ordnen Klassen, Attributen und Methoden ihren Sichtbarkeitsbereich zu (M),
modellieren Klassen unter Verwendung von Vererbung (M).
Unterrichtsvorhaben EF-IV
Thema: Modellierung und Implementierung von Klassen- und Objektbeziehungen
anhand von grafischen Spielen und Simulationen
Kompetenzerwartungen: (Implementieren, Darstellen)
Die Schülerinnen und Schüler
•
•
•
•
•
•
implementieren Klassen in einer Programmiersprache auch unter Nutzung
dokumentierter Klassenbibliotheken (I),
testen Programme schrittweise anhand von Beispielen (I),
interpretieren Fehlermeldungen und korrigieren den Quellcode (I),
modifizieren einfache Algorithmen und Programme (I),
stellen Klassen, Assoziations- und Vererbungsbeziehungen in Diagrammen grafisch dar
(D),
dokumentieren Klassen durch Beschreibung der Funktionalität der Methoden (D).
Das Ufospiel in 2D
Ein Raumschiff bzw. Ufo soll anfliegenden Asteroiden seitlich ausweichen.
Bewegung
+ bewegeRec ht ( )
+ ex pl odi er e( )
Modellierung mit Assoziationen
Uf os pi el
-
k amer a: GLKamer a
l i c ht : GLLi c ht
t as t at ur : GLTas t at ur
hi mmel : GLHi mmel
+ Uf os pi el ( )
+ f uehr eAus ( )
- das Uf o
- as t er oi d1
- as t er oi d2
- as t er oi d3
Uf o
-
r umpf :
c oc k pi t
f l uegel
f l uegel
+
+
+
+
+
+
Uf o( )
bewegeLi nk s ( )
bewegeRec ht ( )
ex pl odi er e( )
gi bX( )
gi bY( )
As t er oi d
GLTor us
: GLKugel
1: GLKegel
2: GLKegel
- k ugel : GLKugel
+
+
-
- das Uf o
As t er oi d( pUf o: Uf o)
bewegeDi c h( )
z ur uec k s et z en( )
get r of f en( ) : bool ean
Das Ufospiel in 2D
Binnendifferenzierung: Ufospiel in 3D
Binnendifferenzierung und Vertiefung
Zur weiteren Vertiefung und Binnendifferenzierung kann eine Autofahrt oder
auch ein Billardspiel erstellt werden.
Schneemänner mit Vererbung
Spezialisierungen
Oberklassenobjekt
Bälle mit Polymorphie
Bälle mit unterschiedlichem Bewegungsverhalten
Weihnachtsbaum mit abstrakter Klasse
Kugeln, Ringe und Päckchen erben
von der abstrakten Klasse Schmuck
[email protected]
http://www.bezreg-duesseldorf.nrw.de/
lerntreffs/informatik/structure/material/sek2/einfuehrungen/gloop.php