www.r-krell.de
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr

Willkommen/Übersicht  >  Informatik  >   Hamster-Seite

Informatik mit dem Java-Hamster

Diese Seite ist insofern eine Ergänzung meiner Seiten „Informatik mit Java", als mit dem Hamster noch vor Einsatz des eigentlichen Java das objektorientierte Programmieren mit den typischen Kontrollstrukturen und der Java-Syntax an übersichtlichen Beispielen geübt werden können. Unten im Text gibt's auch die Download-Adresse für diese und eine weitere Modellumgebung.

Eine vollständige Übersicht aller meiner Seiten „Informatik mit Java" finden Sie auf meiner Informatik-Hauptseite!


zum Seitenanfang / zum Seitenende

Der Hamster

Wie hier in objektorientierter Syntax (es gibt auch noch die aus der Hamster-Version 1 bekannte imperative Syntax) können mit dem kostenlos verwendbaren Java-Hamster rasch erste Programme geschrieben werden, die leicht verständlich sind und wo vor allem bei der schrittweisen Ausführung sofort die Funktion sichtbar wird: die gerade abgearbeiteten Befehle und überprüften Bedingungen werden rechts neben dem Hamster-Territorium blau angezeigt. Damit gelingt es auch Anfängern, Fehler sofort zu sehen und leicht zu korrigieren. Und dass man hier einen Hamster durch eigene Anweisungen bzw. Methodenaufrufe steuern kann, motiviert (abgebildet ist noch die Version 2.8.1; die aktuelle Version 2.8.3 sieht aber gleich aus):

Bildschirmansicht: Hamstersimulator mit objektorientiertem Programm
Mit dem abgebildeten, schon etwas fortgeschritteneren, objektorientierten Programm „paul1.java" sammelt der Hamster auf seinem Weg bis zur rechten Wand von jedem Feld, auf dem Körner liegen, ein Korn ein. Nur auf dem letzen Feld eventuell vorhandene Körner bleiben alle liegen - durch Erweiterung des Programms kann aber auch das gelöst werden.

Die ursprünglich an der Uni Oldenburg entwickelte Lernumgebung gibt's gratis von www.java-hamster-modell.de; die aktuelle Version 2.8.3 [Stand September 2011] erfordert zum Betrieb eine installierte Java-SDK 1.6 -- empfohlen wird die aktuelle Version 1.7. (Über > Simulator > Downloads können aber auch ältere Hamster-Versionen herunter geladen werden -- so erfordert z.B. der hamstersimulator-v22-01-14.zip nur die Java-SDK 1.4.) Im Downloadumfang der neuesten Version (ca. 31 MB) sind auch viele Beispielprogramme und -territorien, das umfangreiche Handbuch in html-Form und Zusätze für weitere Sprachen. Die Java-SDK braucht nicht extra herunter geladen werden, wenn sie bereits [z.B. wie auf meiner „Informatik mit Java"-Seite a) erläutert] installiert wurde. Es empfiehlt sich dann, die Datei hamstersimulator-v28-03.zip in das Verzeichnis C:\JavaEntw auszupacken, wodurch dort der Ordner C:\JavaEntw\hamstersimulator angelegt und gefüllt wird. Gestartet wird durch Doppelklick auf die Stapelverarbeitungsdatei hamstersimulator.bat, wobei es sinnvoll ist, eine Verknüpfung hierzu auf den Desktop bzw. ins Startmenü zu legen. Der Hamstersimulator ist leicht zu bedienen. Störend ist allenfalls, dass es nach Erstellen eines Hamsterprogramms und erstmaligem Drücken des „Ausführen"-Knopfes manchmal etwas dauert, bis endlich die Ausführung des Hamster-Programms beginnt.

Der Hamster-Simulator eignet sich jedenfalls gut zum Einführen und Einüben von Kontrollstrukturen. Es stehen die ein- und zweiseitige Verzweigung (if und if..else..) sowie Wiederholungen mit vor- und nachgeschalteter Kontrolle (while und do..while) zur Verfügung.

Außerdem kann die Zergliederung eines Problems in mehrere Methoden geübt werden. Im folgenden rekursiven Programm gibt's mehrere Methoden; eine davon ruft sich selbst rekursiv auf. Dadurch kann auch ohne Variablen und ohne explizites Mitzählen erreicht werden, dass der (objektorientierte) Hamster beim Start von einem beliebigen Feld vor der Wand nachher genau so viele Schritte wieder zurück geht, wie er vorher bis zur Wand machen musste.

Bildschirmansicht: Hamstersimulator mit rekursivem Programm

Beim Einsatz des Programms sind der Fantasie kaum Grenzen gesetzt; wer früher schon - etwa nach dem Buch Hermes/Stobbe: „Informatik eins", Stuttgart (Klett) 1988 - mit Niki pascal-ähnlich programmiert hat, kann praktisch alle dort vorgestellten Aufgaben („LagerA", „RegalA",..) jetzt auch in Java mit dem Hamster lösen. Längst gibt es viele Materialien und auch Bücher direkt zum Java-Hamster; allein drei Bände werden auf der o.g. Java-Hamster-Modell-Seite vorgestellt und angeboten, zwei weitere werden dort zusätzlich angekündigt. Hier deshalb nur ein Kurzübersicht über die wichtigsten Fähigkeiten des Hamsters bzw. seine Methoden:

  • Der Hamster kann auf zwei Arten erzeugt werden:
    • Entweder wird einem definierten Hamster [z.B. Hamster claudia;] der im Hamster-Territorium eingezeichnete Hamster mit claudia = Hamster.getStandardHamster(); zugewiesen -- was auch in einer Zeile geht, etwa durch Hamster claudia = Hamster.getStandardHamster();
    • oder ein vorher z.B. mit Hamster claudia = new Hamster(); definierter und erzeugter Hamster wird z.B. durch claudia.init(3,5, Hamster.SUED, 0); auf das Feld mit den Koordinaten (3|5) gesetzt, blickt in südliche Richtung (nach unten) und hat 0 Körner im Maul. (Weitere Hamster bekommen automatisch andere Farben, die vom Benutzer nicht frei gewählt/geändert werden können).
  • Der Hamster bzw. die Hamsterin kennt folgende vier Befehle:
      vor();
      linksUm();
      nimm();
      und
      gib();
    Zum Aufruf muss (bei der objektorientierten Programmierung, die hier ausschließlich verwendet wird) der Hamstername mit Punkt vorangestellt werden, also z.B. claudia.nimm(); - worauf der Hamster namens claudia 1 Korn von der Kachel aufnimmt, auf der er bzw. sie steht. Das Korn bleibt im Maul.
  • Weil der Hamster natürlich nur vor gehen kann, wenn vorne auch frei ist (er also nicht direkt vor der Mauer oder dem Rand seines Territoriums steht) oder nur vorhandene Körner aufnehmen bzw. abgeben kann, verfügt er über drei Sensoren, die wahr (true) oder falsch (false) zurück melden:
      vornFrei();
      kornDa();  
    oder
      maulLeer();
    Die Sensoren können in den bekannten Kontrollstrukturen wie Verzweigungen (if) oder Wiederholungen (while) verwendet werden - z.B. if (claudia.maulLeer()) {... }. Die Verneinung erfolgt mit einem Ausrufezeichen !, Kombinationen mit und (&&) oder oder (| |) sind möglich: while (! claudia.vornFrei() && claudia.kornDa()) ...


Auch wenn die Autoren Beispiele aus dem gesamten Oberstufenstoff mit dem Hamster erledigen, sollte der Hamster meiner Meinung nach nicht unnötig lange bemüht und zum Selbstzweck werden, sondern wirklich nur als Vorbereitung auf Java genutzt werden. Dann muss man auch irgendwann (und zwar nach nicht allzu langer Zeit) mit Java anfangen. Hinweise zu Java liefern u.a. meine Seiten „Informatik mit Java", erreichbar von der „Informatik"-Hauptseite.

(Dass es außer dem hier vorgestellten Java-Hamster noch ein Vielzahl weiterer, z.T. ähnlicher Lernumgebungen gibt, braucht wohl nicht extra betont werden. Erwähnt sei lediglich der ebenfalls kostenlose und vielleicht etwas vielseitigere Kara der ETH Zürich, der allerdings meiner Meinung nach für Anfänger nicht ganz so gut geeignet ist).



zurück zur Informatik-Hauptseite

Verweise
auf fremde Webseiten

www.java-hamster-modell.de Hier gibt's (wie oben beschrieben) den Hamster für Java und weitere Sprachen (Scratch, Scheme, Prolog [!], Python, Ruby, LegoMindstorms) - und mehr Informationen dazu. Die Download-Möglichkeiten stehen dort weiter unten auf der Seite 'Simulator'!
Hamster-Video (YouTube) Und - als Anreiz für mehr Realitätsnähe in künftigen Versionen des Simulators - hier noch ein kleines Video über einen echten Hamster im Labyrinth
Kara Die Programmierumgebung für den Marienkäfer Kara für Java (JavaKara) und einige andere Sprachen (u.a Javascript, Python, Ruby, Scratch u. LegoMindstorms) und Theoretische Informatik/Automatentheorie und Turing-Maschinen)
Unterrichtsmaterialien für JavaKara Arbeitsblätter für den Einstieg in Java mit Kara von H. Gierhardt
EducETH-Leitprogramm zu Kara 8 Lektionen zu Kara in einer pdf-Datei (für verschiedene Aufgaben werden jeweils endliche Automaten entwickelt und mit Kara programmiert -- keine Einführung in Java)

zum Anfang dieser Seite
Willkommen/Übersicht  -  Was ist neu?  -  Software  -  Mathematik  -  Physik  -  Informatik  -   Schule: Lessing-Gymnasium und -Berufskolleg  -  Fotovoltaik  -  & mehr  -  Kontakt: e-Mail,  News-Abo, Gästebuch, Impressum  -  Grußkarten, site map, Download und Suche

Diese Seite ist Teil des Webangebots http://www.r-krell.de. Sie können diese Seite per e-Mail weiter empfehlen (tell a friend).