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 (oder auch noch in der aus der Hamster-Version 1 bekannten imperativen 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 unten 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:

Bildschirmansicht: Hamstersimulator mit iterativem Programm
Mit dem abgebildeten, schon etwas fortgeschritteneren Programm „koerner.java" sammelt der Hamster auf seinem Weg bis zur rechten Wand alle Körner ein, die er unterwegs findet. Nur auf dem letzen Feld eventuell vorhandene Körner bleiben 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; sie erfordert zum Betrieb die Java-SDK 1.4 bzw. zumindest die Java-1.4-Runtime-Umgebung [Achtung: Die im September 2006 aktuelle Version 2.2 des Java-Hamsters gibt es in zwei Ausführungen: als hamstersimulator-v22-01-15.zip zum Gebrauch mit der Java-SDK 1.5 (oder 1.6) oder als hamstersimulator-v22-01-14.zip zum Gebrauch mit der Java-SDK 1.4. Die Java-SDK braucht nicht nochmal 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-v22-01-14.zip in das Verzeichnis C:\JavaEntw auszupacken, wodurch dort der Ordner C:\JavaEntw\hamstersimulator angelegt und gefüllt wird]. Der Hamstersimulator ist leicht zu bedienen. Störend ist allenfalls, dass es nach Drücken des „Ausführen"-Knopfes etwas dauert, bis endlich die Ausführung des Hamster-Programms beginnt. (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 etwas vielseitigere Kara der ETH Zürich, der allerdings meiner Meinung nach für Anfänger nicht ganz so gut geeignet ist).

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. Da der Hamster keinerlei Variablen kennt, es also auch weder Selektor-Variablen noch Zählvariablen gibt, fehlen natürlich die mehrseitige Verzweigung (switch..case..) und die for-Schleife.

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 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",..) auch mit dem Hamster lösen. Inzwischen gibt es auch Bücher direkt zum Java-Hamster, zwei werden auf der o.g. Hamster-Modell-Seite angeboten. Hier deshalb nur ein Kurzübersicht über die Fähigkeiten des Hamsters bzw. seine Methoden:

  • Der Hamster kann auf zwei Arten erzeugt werden:
    • Entweder wird einem bereits definierten Hamster [z.B. Hamster claudia; oder auch Hamster claudia = new Hamster();] der im Hamster-Territorium eingezeichnete Hamster mit claudia = Hamster.getStandardHamster(); zugewiesen
    • 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 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 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()) ...


Allerdings sollte der Hamster 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.

zurück zur Informatik-Hauptseite

Verweise
auf fremde Webseiten

www.java-hamster-modell.de Hier gibt's (wie oben beschrieben) den Hamster - und mehr Informationen dazu!
www.u-helmich.de Auf seiner Webseite stellt Lehrer Helmich u.a. auf mehreren Seiten den Hamster vor. Achtung: Dort werden imperative Programme benutzt, nicht objektorientierte wie hier.
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


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).