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
Jul 2018
Aachen
16.07.2018 bis 20.07.2018

Einstieg in räumliches Denken und Konstruieren mit CAD

Aachen
16.07.2018 bis 20.07.2018

Schnupperuni Ingenieurwissenschaften für Mädchen

Aachen
16.07.2018 bis 28.08.2018

Schüleruni in den MINT-Fächern

Aachen
16.07.2018 bis 20.07.2018

Schnupperuni Ingenieurwissenschaften für Mädchen (Plätze für

Aachen
23.07.2018 bis 27.07.2018

Girls go MINT + Sport

Aachen
23.07.2018 bis 27.07.2018

Girls-go-MINT+Sport

Aug 2018
Aachen
02.08.2018

Workshop: Dein Weg zu einer guten Studienentscheidung

Karlsruhe
06.08.2018 bis 10.08.2018

Science Camp Informatik. Informatik -nicht nur was für Jungs

Potsdam
15.08.2018 bis 19.08.2018

Sommercamp für Schülerinnen und Schüler

Aachen
20.08.2018 bis 24.08.2018

Schüleruni MINT Lehramt (Plätze für Schülerinnen und Schüler

Aachen
23.08.2018

MINT-Fächer ausprobieren

Weimar
23.08.2018

Orientierungsabend für Eltern und Schüler

Potsdam
28.08.2018 bis 19.06.2019

Schülerkolleg am Hasso-Plattner-Institut

Sep 2018
Houston (Texas), USA
26.09.2018 bis 28.09.2018

USA-Reisestipendien für Informatik-Studentinnen: Hasso-Platt

Nov 2018
Aachen
05.11.2018 bis 09.11.2018

Hochschulhospitationswoche für Schüler*innen der Q1 und Q2

Jan 2019
Aachen
21.01.2019

Beratungstag 2019

Feb 2019
Weimar
01.02.2019

Bite the Bytes - Schnuppertag Medieninformatik

Mar 2019
Weimar
09.03.2019

Hochschulinformationstag Bauhaus-Universität Weimar