Karte

Java-Hamster

Der Java-Hamster eignet sich für Programmieranfänger und bringt auf spielerische Weise grundlegende Konzepte der imperativen und objektorientierten Programmierung bei. Ihr könnt mit dem Java-Hamster "Hamster-Programme" entwickeln, virtuelle Hamster durch eine virtuelle Landschaft steuern und diese dabei bestimmte Aufgaben lösen lassen.

Programmieren lernen muss keine trockene und langweilige Angelegenheit sein. Programmieren lernen kann auch Spaß machen. Dafür sorgt das Java-Hamster-Modell. Es ist ein spezielles didaktisches Modell, das Programmieranfängern einen spielerischen Zugang zu der doch eher technischen Welt der Programmierung bietet. Programmieranfänger lernen die grundlegenden Programmierkonzepte und den Programmentwurf kennen, indem sie so genannte "Hamster-Programme" entwickeln, mit denen sie virtuelle Hamster durch eine virtuelle Landschaft steuern und dabei bestimmte Aufgaben lösen lassen. Die "Hamster-Sprache" orientiert sich dabei an der modernen Programmiersprache Java.

Die Komplexität eines Computers wird im Hamster-Modell auf einen minimalen Satz von Befehlen, die den Hamstern erteilt werden können, reduziert. Die Programmierkonzepte werden schrittweise und aufeinander aufbauend eingeführt und jeweils durch zahlreiche Beispiele demonstriert. Anhand vieler Aufgaben mit einfach zu verstehenden Aufgabenstellungen können die Programmieranfänger selbst überprüfen, ob sie den Stoff nicht nur verstanden haben, sondern auch praktisch umsetzen können. Mit diesen Eigenschaften trägt das Hamster-Modell Empfehlungen von Didaktikern, wie der Einstieg in die Programmierung erfolgen könnte, voll und ganz Rechnung.

Die Grundidee des Hamster-Modells ist ausgesprochen einfach: In einer vorgegebenen Landschaft befindet sich ein Hamster, der mit den Grundbefehlen vor und linksUm durch die Landschaft gesteuert werden kann. In dieser liegen leckere Körner, welche der Hamster mit den Befehlen bzw. Anweisungen nimm und gib fressen oder wieder ablegen kann. Doch Vorsicht: Mauern können dem Hamster den Weg zu den Körnern versperren. Damit der Hamster nicht vor Hunger stirbt oder gegen eine Mauer rennt, gibt es neben den vier Grundbefehlen noch die drei Testbefehle vornFrei, kornDa und maulLeer.
Der Hamster ist ein schlaues und wissensdurstiges Tier. Schon bald reicht ihm der geringe Befehlssatz nicht mehr aus. Er will neue komplexere Befehle definieren und ausführen können. Dies ist über das Prozedurkonzept möglich, das ihm beigebracht wird. Aber auch damit gibt er sich noch nicht zufrieden. Ihm fehlt ein Gedächtnis und er möchte rechnen können. Hierzu kann er sich Variablen und arithmetischer Ausdrücke bedienen. Nach und nach werden die Probleme immer komplexer und der Hamster stellt sich (wie viele Programmieranfänger auch) die Frage: Wie setze ich denn die erlernten Programmierkonzepte nun am besten ein, um damit auch diese komplizierteren Probleme zu lösen? Nach etwas Überlegen entdeckt er das Verfahren der prozeduralen Zerlegung, bei dem das Problem einfach in genügend kleine Teilprobleme zerlegt wird.

Auf analoge Art und Weise werden im ersten Teil des Java-Hamster-Modell alle wesentlichen Konzepte der imperativen Programmierung schrittweise motiviert und eingeführt, insbesondere Anweisungen, Kontrollstrukturen, Prozeduren, Funktionen, Typen, Variablen, Ausdrücke, Parameter, Rekursion und der Programmentwurf.

Irgendwann merkt der Hamster, dass ihm etwas fehlt. Er fühlt sich einsam und er fühlt sich mit den gegebenen Problemen überfordert. Was er braucht, sind andere Hamster, mit denen er gemeinsam Probleme angehen kann. Also wird der Hamster in die Lage versetzt, sich fortpflanzen zu können, sprich zusätzliche Hamster zu erzeugen. Diese Hamster erben nicht nur alle seine Eigenschaften und Kenntnisse, sondern können neue erlernen und nutzen. Zur Unterscheidung bekommen die Hamster Namen und sie lernen lesen und schreiben, um mit Menschen kommunizieren zu können.
Diese Auflistung ist nur ein kleiner Einblick in das, was mit der objektorientierten Programmierung alles möglich ist. Deren Grundkonzepte werden im zweiten Teil des Java-Hamster-Modell vorgestellt, im Einzelnen sind dies Klassen, Objekte, Vererbung, Arrays, Ein- und Ausgabe, Polymorphie, Interfaces, Exceptions, Zugriffsrechte und Pakete.

Zum Schluss werden die Hamster sogar "intelligent". Sie lernen, in ihrem Territorium mit Körnern Spiele wie Schach oder Reversi zu spielen. Spielen können sie dabei gegen andere Hamster oder gegen Menschen, und letztere haben kaum noch eine Chance gegen sie. An diesem Beispiel der Entwicklung von Spieleprogrammen und -strategien wird den Hamstern (und natürlich Programmieranfänger) gleichzeitig demonstriert, wie die zuvor erlernten objektorientierten Konzepte zur Lösung komplexerer Probleme eingesetzt werden können.

Richtig Spaß kommt natürlich erst dann auf, wenn man den Hamstern bei der Arbeit zuschauen und damit überprüfen kann, ob sie die gestellten Aufgaben auch korrekt lösen. Dies ermöglicht der so genannte Hamster-Simulator. Das ist ein spezielles Programm, das eine Reihe von einfach zu bedienenden Programmierwerkzeugen zur Verfügung stellt: einen Editor zum Eingeben und Verwalten von Hamster-Programmen, einen Compiler zum Übersetzen von Hamster-Programmen, einen Territoriumsgestalter zum Gestalten und Verwalten von Hamster-Territorien, einen Interpreter zum Ausführen von Hamster-Programmen und einen Debugger, der beim Testen von Hamster-Programmen hilft. Der Hamster-Simulator wurde funktional und bedienungsmäßig bewusst an professionelle Entwicklungsumgebungen für Java angelehnt, um einen späteren Umstieg auf diese zu erleichtern.

Ausführliche Informationen zum Java-Hamster-Modell finden sich unter:
www.java-hamster-modell.de

Schwierigkeitsgrad: Leicht

Termine
Apr 2017
Jul 2017
Hannover
01.07.2017 bis 21.07.2017

Niedersächsische Talente-Akademie

Rostock
24.07.2017 bis 28.07.2017

Internationale Sommerschule PLUS 2017

Mar 2018
Aachen
20.03.2018

Berufetag

Apr 2018
Potsdam
13.04.2018

HPI-Studieninformationstag

Potsdam
26.04.2018

Girls' Day am Hasso-Plattner-Institut

May 2018
Lübeck
25.05.2018

Schnuppertag für Studieninteressierte

Aug 2018
Potsdam
15.08.2018 bis 19.08.2018

Sommercamp für Schülerinnen und Schüler