Greenfoot Getting Started With Programming Axel Schmolitzky Arbeitsbereich Softwaretechnik (SWT) Zentrum für Architektur und Gestaltung von IT-Systemen (AGIS) Department Informatik, Universität Hamburg Agenda Hintergrund von Greenfoot: BlueJ Greenfoot Einstiegsdemo theoretisch weitere Szenarien Mini-Teachlet: Szenario konsumieren Szenarien veröffentlichen Zusammenfassung, Diskussion 2 1
Hintergrund: BlueJ Vorteile: Einfache Entwicklungsumgebung Direkte Interaktion mit Klassen und Objekten Visualisierung der statischen Struktur eines Projektes Große Verbreitung (mehrere hundert Einrichtungen weltweit) Gute Diskussionsliste Frei verfügbar Gutes Lehrbuch vorhanden (Barnes/Kölling) 3 Hintergrund: BlueJ Nachteile: Ohne Lehrbuch nicht leicht einsetzbar Kaum Visualisierung von (interagierenden) Objekten Trennung zwischen BlueJ und Java teilweise unscharf 4 2
Greenfoot Einstiegsdemo 5 Mission Statement von Greenfoot Greenfoot ist eine hochflexible Programmierumgebung, mit der wir auf vielfältige Weise Kinder für die Programmierung begeistern können. Siehe u.a. http://omitsoft.blogspot.com/2008/03/teaching-kids-to-code.html 6 3
Greenfoot theoretisch Greenfoot ist keine Mikrowelt! Greenfoot ist ein Meta-Framework für Mikrowelten basiert auf der Idee von Discrete Event Simulation bietet animierte Ausführung erlaubt Interaktion mit visualisierten Objekten ist eine vollwertige IDE (mit Editor, Debugger, etc.) ermöglicht flexible Szenarien 7 Rollenverteilung Frameworkentwickler Frameworkentwickler Mikrowelten Framework implementieren (mit festgelegtem Szenario) Greenfoot Framework implementieren Lehrende Szenario entwerfen Lehrende Übungen entwerfen Übungen entwerfen Schüler Übungen bearbeiten Schüler Übungen bearbeiten 8 4
Entkoppelte Szenarien Die Szenarien sind vom Framework zur Animation entkoppelt. Dies ermöglicht mehr Szenarien einfacheren Entwurf neuer Szenarien 9 Greenfoot Szenarien weitere Demos 10 5
Ein Szenario konsumieren Idee für diesen Vortrag: Aufgaben gemeinsam lösen. Ich zeige ein Szenario und stelle Aufgaben darin. Lösungsvorschläge kommen aus dem Plenum. Ich moderiere die Diskussion. Ich implementiere für alle sichtbar das, was entschieden wird. 11 1. Aufgabe Wombats sollen sich nicht immer nach links drehen, wenn sie auf ein Hindernis treffen. Stattdessen sollen sie sich in eine zufällig gewählte Richtung wenden. Was ist wo zu tun? 12 6
2. Aufgabe Neben Wombats und Blättern sollen auch Steine in unserem Szenario vorkommen. Es soll deshalb eine weitere Klasse für Steine definiert werden. 13 3. Aufgabe Wombats sollen nicht einfach über Steine hinweg laufen! 14 7
Zwischenfazit Bei entsprechend gewählten Szenarien können Aufgaben von sehr einfach bis hin zu beliebig schwer gestellt werden. Diese werden im Quelltext der beteiligten Akteursklassen gelöst. Teilweise müssen neue Akteursklassen definiert werden. Es können auch in der Welt-Klasse Methoden implementiert werden. Es stehen komplett die Möglichkeiten von Java und BlueJ zur Verfügung. 15 Exportieren von Szenarien Greenfoot bietet die Möglichkeit, Projekte/Szenarien nicht nur als Ordnerstruktur zu speichern, sondern auch als Webseiten mit integriertem Applet. Diese können in eigene Webseiten eingebunden werden. Beispiel: Ergebnisse des Girls Day 2008 Seit einigen Monaten gibt es außerdem die Greenfoot Gallery, in die direkt aus Greenfoot exportiert werden kann: 16 8
Möglichkeiten für Lehrende Lehrende wählen/schreiben/teilen Szenarien Kontext ist flexibel wählbar Bestehende Szenarien können als Fundgrube technischer Tricks für eigene Szenarien dienen. Die Komplexität von Java und Greenfoot kann beliebig gekapselt werden. Ermöglicht individuelle Szenarien (für spezielle Zielgruppen) lokalisierte Szenarien (etwa für deutschsprachige Schüler) 17 Mehr Informationen www.greenfoot.org greenfootgallery.org (viele Demoszenarien) Email-Liste bei Google Groups: Greenfoot Discuss Greenroom für Lehrende 18 9
Zusammenfassung Greenfoot Zielte ursprünglich auf Sek. II und Einstiegskurse an Hochschulen, durch mögliche Orientierung auf Spiele auch früher einsetzbar Inzwischen klare Fokussierung auf Schule Sehr visuell Flexibel und interaktiv, lädt zum Experimentieren ein Umfangreiche Unterstützung für Lehrende Skaliert beliebig: alle Möglichkeiten von Java stehen offen Leichter Übergang zu BlueJ 19 10