Objektorientierte Modellierung und Programmierung mit Hilfe dreidimensionaler Simulationen Volker Quade Februar 2014.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Konzepte des Anfangsunterrichts Informatik in der 11.1
Objektorientierte Programmierung
Einführung in die Programmierung Zusammenfassung
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
Verfügbare Dokumentationen: Klassenbibliothek Baustelle.
Grundlagen der Geometrie
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Objektorientierung mit VBA
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Polymorphie (Vielgestaltigkeit)
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung in die Programmierung mit Java
Diskrete Mathematik I Vorlesung Arrays-
Einführung in die Programmierung Datensammlung
© 2004 Pohlig - Taulien Dokumentation mit JavaDoc.
1 Teil 4 Übung: Uhr. 2 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert.
Grundkurs Informatik Jahrgang 10 Der Grundkurs der Jahrgangsstufe 10 bereitet den an den Vorgaben für das Zentralabitur ausgerichteten Unterricht in der.
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Entwurfs- und Implementationsdiagramme
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Objektorientiertes Konstruieren
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java Programmierung.
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Informatik Otto-Hahn-Gymnasium im Wahlpflichtbereich II
Starten der Entwicklungsumgebung (IDE)
PHP: Operatoren und Kontrollstrukturen
Objektorientierte Modellierung mit UML
Programmiervorkurs WS 2014/15 Instanzmethoden
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Inf K1/2 Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Klassen und Objekte.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Diskrete Mathematik I Vorlesung 2 Arrays.
Lernlandkarte OOP (ObjektOrientiertes Programmieren)
Informatik Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholugnsanweisungen 3. Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholungsanweisungen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Grundlagen der Geometrie
Sichtbarkeit einschränken
Informatik als Grundkursfach in der Oberstufe Was ist das Ziel? Problemstellungen modellieren und systematisch mit Softwarewerkzeugen einer Lösung zuführen.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Objektorientiertes Modellieren und Programmieren mit Java
Die Struktur einer Java-Klasse
2. Vererbung und Kapselung
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Objektorientierte Modellierung und Programmierung mit Hilfe dreidimensionaler Simulationen Volker Quade Februar 2014

Oder: Was heißt eigentlich Modellierung I. Grundlegendes Oder: Was heißt eigentlich Modellierung und Programmierung?

Oder: Was ist GLOOP eigentlich? II. Einführung in GLOOP Oder: Was ist GLOOP eigentlich?

Erste Schritte in eine dreidimensionale Welt (1) Der Programmierung in GLOOP wird ein dreidimensionales Koor-dinatensystem zugrunde gelegt. Es handelt sich um ein rechts-hä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).

Oberflächengestaltung Methoden von GLObjekt GLObjekt Es steht jeweils ein absoluter und ein relativer Befehl zur Verfügung. + setzePosition ( … ) + verschiebe ( … ) + setzeDrehung ( … ) + drehe ( … ) + setzeSkalierung ( … ) + skaliere ( … ) + setzeFarbe ( … ) + setzeTextur ( … ) + gibX() : double + gibY() : double + gibZ() : double + loesche() [...] Positionierung Drehung Größenänderung Oberflächengestaltung Position liefern Löschen

<Klassenbezeichner>(<Position>, <Ausdehnung>) 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.

Tafel mit und ohne Autodrehung 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 Am Beispiel eines lebensweltnahen Beispiels werden Objekte im Sinne der Objektorientierten Modellierung eingeführt. Objekte werden mit Objektkarten visualisiert und mit sinnvollen Attributen und „Fähigkeiten“, d.h. Methoden versehen. Manche Objekte sind prinzipiell typgleich und werden so zu einer Objektsorte bzw. Objektklasse zusammengefasst. Vertiefung: Modellierung weiterer Beispiele ähnlichen Musters

Vögel als Objekte

Vögel als Instanzen einer Klasse Attribute Methoden

Unterrichtsvorhaben EF-II 2. Analyse von Klassen didaktischer Lernumgebungen Objektorientierte Programmierung als modularisiertes Vorgehen (Entwicklung von Problemlösungen auf Grundlage vorhandener Klassen) Teilanalyse der Klassen der didaktischen Lernumgebungen GLOOP Materialien: Dokumentation der didaktischen Bibliothek GLOOP (download) 3. Implementation dreidimensionaler, statischer Szenen Grundaufbau einer Java-Klasse Konzeption einer Szene mit Kamera, Licht und sichtbaren Objekten Deklaration und Initialisierung von Objekten 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. 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) Kontinuierliche Verschiebung eines GLObjekts mit Hilfe einer Schleife (While-Schleife) Tastaturabfrage zur Realisierung einer Schleifenbedingung für eine Animationsschleife Mehrstufige Animationen mit mehreren sequenziellen Schleifen Berechnung von Abständen zwischen GLObjekten mit Hilfsvariablen 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 Ball nicht auf Zielhöhe „Links“ gedrückt w f Ball nach hinten verschieben Ball nach links verschieben 3. Schritt „Rechts“ gedrückt w f w f Distanz < Radius Ball nach rechts verschieben Melde „Treffer“ Melde „Daneben“ „Oben“ gedrückt w f Ball nach oben verschieben w f „Unten“ gedrückt Gemeint ist hier die Distanz zwischen dem Ball und der Zielscheibe bzw. der Radius der Zielscheibe. Ball nach unten verschieben

Modelllösung: Ballwurfspiel

Unterrichtsvorhaben EF-III 2. Erstellen und Verwalten größerer Mengen einfacher grafischer Objekte (GLObjekte) Erzeugung von Objekten mit Hilfe von Zählschleifen (FOR-Schleife) Verwaltung von Objekten in eindimensionalen Feldern (Arrays) Animation von Objekten, die in eindimensionalen Feldern (Arrays) verwaltet werden 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 Modellierung eines Simulationsprogramms mit eigenen Klassen, die sich selbst mit Hilfe von einfachen GLObjekten zeigen mit Hilfe eines Implementationsdiagramms Implementation eigener Methoden mit und ohne Parameterübergabe Realisierung von Zustandsvariablen Thematisierung des Geheimnisprinzips und des Autonomitätsprinzips von Objekten Animation mit Hilfe des Aufrufs von selbstimplementierten Methoden 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 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

Modellierung mit Assoziationen

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

volker.quade@br.nrw.de http://www.bezreg-duesseldorf.nrw.de/ lerntreffs/informatik/structure/material/sek2/einfuehrungen/gloop.php