130 likes | 247 Views
Nachdenken in Aurich 2009. Programmier-Theater Werkzeuge für die Programmierausbildung. Dietrich Boles. Gliederung. Motivation Hamster-Simulator (Programmierparadigmen) Solist (Imperative Programmierung) Objekt-Theater (Objektorientierte Programmierung)
E N D
Nachdenken in Aurich 2009 Programmier-Theater Werkzeuge für die Programmierausbildung Dietrich Boles
Gliederung • Motivation • Hamster-Simulator (Programmierparadigmen) • Solist (Imperative Programmierung) • Objekt-Theater (Objektorientierte Programmierung) • Threadnocchio (Parallele Programmierung) • Ausblick
Motivation • Werkzeuge für die Programmierausbildung • Verständnis und Spaßfaktor durch Visualisierung • Hilfsmittel für die Entwicklung von Programmen • Hilfsmittel für die Ausführung von Programmen • Verschiedene Programmierparadigmen • „State-of-the-Art“ Programmierwerkzeuge: • Karel the Robot (Robot Karol) (imperativ) • Kara der Marienkäfer (Automaten, imperativ, objektbasiert) • BlueJ (objektorientiert) • Greenfoot (objektorientiert) • Scratch (imperativ, objektorientiert) • Lego-Mindstorms • …
Hamster-Simulator • Paradigmen: • Imperative Programmierung (Java) • Objektorientierte Programmierung (Java) • Parallele Programmierung (Java) • Funktionale Programmierung (Scheme) • Logikbasierte Programmierung (Prolog) • Zusätzlich: • Lego-Mindstorms • Struktogramme (HaSE) • Scratch-Hamster-Simulator Demo
Programmier-Theater • Entwicklungswerkzeuge • Solist (Imperative Programmierung) • Objekt-Theater (Objektorientierte Programmierung) • Threadnocchio (Parallele Programmierung) • Programmier-API (Theater-API) Theaterstück Bühne (Stage) Schauspieler/Marionetten (Actor) Requisiten (Prop) Aufführungen (Performance)
Programmier-Theater Analogien: • Objekte Marionetten • Programm Marionettentheaterstück • Ausführung Aufführung • Programmierer Autor • Prozessor Marionettenspieler • Objektorientierte Programmierung (Objekt = passiv) vom Programmierer gesteuerte Marionette • Parallele Programmierung (Thread = aktives Objekt ) selbstständige Marionette Pinocchio Threadnocchio
Theater-API Rectangle interface PixelArea Point Thread Cell Stage platziert Hintergrund Component Icon TheaterImage Actor Prop TheaterIcon
Theater-API Klasse Stage: • Gestaltungsmethoden (add, remove, …) • Getter-Methoden • Kollisionserkennungsmethoden (getComponents, contains, …) • Event-Methoden (keyPressed, mouseClicked, …) Klasse Component, Actor, Prop: • Manipulationsmethoden (setImage, setLocation, …) • Getter-Methoden • Kollisionserkennungsmethoden (contains, …) • Event-Methoden (keyPressed, mouseClicked, …) Weitere Klassen und Schnittstellen: • Performance (Sound, Bühnenwechsel, Geschwindigkeit, …) • TheaterImage, TheaterIcon (Bildmanipulation, Animated-GIFs) • PixelArea (Kollisionserkennung)
Objekt-Theater • Erlernen der Objektorientierten Programmierung • Simulationen, Spiele, … • Visualisierung von Objekten durch Icons • Alternative zu Greenfoot Demo
Threadnocchio • Erlernen der Parallelen Programmierung mit Java-Threads • Visualisierung von Threads durch Icons Demo
Solist • Entwicklungsumgebung für Miniprogrammierwelt-Simulatoren Demo
Solist – Entwicklung eines Frosch-Theaterstücks • Frosch sitzt in einer Landschaft mit Gras- und Wasser-Feldern • void huepfen(): Der Frosch hüpft ein Feld in seiner aktuellen Blickrichtung nach vorne. Fehler, wenn er sich im Wasser befindet. • void schwimmen(): Der Frosch schwimmt ein Feld in seiner aktuellen Blickrichtung nach vorne. Fehler, wenn er im Gras sitzt. • void linksUm(): Der Frosch dreht sich um 90 Grad nach links. • void rechtsUm(): Der Frosch dreht sich um 90 Grad nach rechts. • boolean imGras(): Liefert genau dann true, wenn sich der Frosch auf einem Grasfeld befindet. • boolean vorneGras(): Liefert genau dann true, wenn sich vor dem Frosch ein Grasfeld befindet. • boolean mueckeDa(): Liefert genau dann true, wenn sich der Frosch auf einem Feld mit einer Mücke befindet.
Ausblick • Dokumentation • Beispiele • Integration von Scratch-Elementen in Solist ( visuelle Programmierung) • Kolosseum: Werkzeug für Educational Programming Games wie Robocode oder NHL-Simulation