Greenfoot
# Greenfoot

Greenfoot ist eine interaktive Java-Entwicklungsumgebung, die primär für Ausbildungszwecke entwickelt wurde. Sie erlaubt die einfache Entwicklung zweidimensionaler graphischer Anwendungen wie z. B. Simulationen und Spiele.

Greenfoot wird hauptsächlich in der Programmierlehre an Schulen und Universitäten eingesetzt. Die Entwickler geben als Zielgruppe "Programmieranfänger ab 15 Jahren aufwärts" an. Da die unterstützte Programmiersprache Standard-Java ist, können allerdings auch recht komplexe und anspruchsvolle Projekte implementiert werden.

Die Hauptattraktion für Lernende ist, dass sehr schnell und interaktiv animierte graphische Projekte implementiert werden können. Einfache Spiele sind selbst für Anfänger nach kurzer Zeit erreichbar, was oft zu guter Motivation führt. Die Attraktion für Lehrende ist, dass Greenfoot wichtige Konzepte der objektorientierten Programmierpraxis gut illustriert. Klassen, Objekte, Vererbung, Methodenaufrufe und Objekt-Instanziierung sind für Benutzer sichtbar und erfahrbar. Diese konkrete Illustration abstrakter Konzepte unterstützt die Programmierlehre.

## Geschichte

Greenfoot wird am King’s College London (England) entwickelt. Michael Kölling begann 2003 die Entwicklung. Die erste Version wurde 2006 veröffentlicht. In der gleichen Forschungsgruppe wurde zuvor auch BlueJ entwickelt.

Seit März 2009 steht Greenfoot unter GPL2 mit GPL linking exception.

## Infrastruktur

Die Greenfoot-Umgebung hat intensive Unterstützung durch Lehr- und Lernmaterialien und Nutzergruppen. Auf der Greenfoot-Website stehen z. B. Tutorien und Instruktionsvideos zur Verfügung. Ein Lehrbuch ist in englisch und deutsch verfügbar.

Lehrende können den so genannten Greenroom nutzen, ein (englischsprachiges) Forum, in dem Lehrer Material austauschen und Ideen diskutieren.

## Funktionen

Greenfoot baut auf BlueJ auf, wodurch Greenfoot einige mächtige Funktionen von diesem erbt:

* Das Klassendiagramm wird grafisch dargestellt und nach jedem Kompiliervorgang aktualisiert.
* Jedes Objekt kann „inspiziert“ werden, d. h. der Zustand der Variablen kann eingesehen werden.
* Methoden können direkt für ein Objekt aufgerufen werden (Szenario pausieren, rechte Maustaste aufs Objekt).

Es gibt in Greenfoot vordefinierte Klassen wie World oder Actor, die die Einbindung von Objekten in die graphische Oberfläche um einiges erleichtern. Außerdem können Objekte via Drag and Drop sehr einfach erzeugt und in die das Szenario eingefügt werden.

Neben diesen einsteigerfreundlichen Funktionen bietet Greenfoot auch Funktionen für fortgeschrittene Java-Programmierer:

* Javadoc-Einbindung
* Möglichkeit, weitere Klassen und Bibliotheken einzubinden
* Da der Quellcode von Greenfoot öffentlich zugängig ist, können auch dort Anpassungen getätigt werden.
