Hamster Modell

Das Hamster-Modell

Mit dem Ziel, dieses Problem zu lösen, wurde das Hamster-Modell entwickelt. Der Schritt ist bereits getan: Laden Sie den Simulator von der Website http://www. java-hamster-model.de herunter. Mit dem Ziel, dieses Problem zu lösen, wurde das Hamster-Modell entwickelt.

Der Hamster ist ein spezielles didaktisches Modell zum Erlernen der Programmierung. Zusammenfassung: Das Java-Hamster-Modell ist ein spezielles didaktisches Modell zum spielerischen Erlernen der Programmierung.

Der Hamster als Modell

Dieser Beitrag stellt das Hamster-Modell vor, ein simples, aber leistungsstarkes Modell zum Lernen von imperativer, objektorientierter und paralleler Programmerstellung auf spielerische Weise. Der Hamster basiert auf den Konzeptionen und der Satzbauweise der Sprache Javas. Die " Schlacht " mit dem Kompilierer hat daher eine größere Bedeutung als das Programmdesign selbst und kann früh zu Frustrationen anregen.

Der Hamster wurde mit dem Zweck der Lösung dieses Problems konzipiert. Das Hamster-Modell bietet dem Einsteigerprogrammierer ein simples, aber leistungsstarkes Modell, mit dessen Unterstützung er spielerisch grundlegende Konzepte der Programmerstellung erlernt. Die Programmiererin kontrolliert einen Hamster durch eine künstliche Umgebung und lässt ihn gewisse Aufgabenstellungen zu.

Im Hamstermodell wird die Zahl der Details, die dabei zu berücksichtigen sind, sehr begrenzt und schrittweise ausgeweitet. In den 70ern und 80ern wurde die Schildkrötengrafik der Programmsprache Turtle Graphics mit ähnlicher Begründung weiterentwickelt oder getestet[Ros83,Men85]. Deshalb wurde für das Hamster-Modell keine neue Sprache programmiert. Das Modell wurde stattdessen in die Konzeption und den Aufbau der Programmsprache Java[AG96] eingelassen.

Bei der Programmiersprache Javas, auch die Internetsprache genannt, handelt es sich um eine (relativ) simple Programmiersprache, die viele wesentliche Konzepte beinhaltet und - gerade im Hinblick auf das rasante Anwachsen des Internets - immer mehr an Akzeptanz in der Industrie zu gewinnen droht. Der Hamster wurde in einer simplen Variante Anfang der achtziger Jahre in der GMD[Opp83] weiterentwickelt.

Ziel war die zwingende Sprache ELAN[KL83,KL85]. Das zwingende Hamster-Modell haben wir an die Programmierungssprache Javaprogrammierung angepasst und um Begriffe der Objektorientierung und Parallelprogrammierung ergänzt. "Vor langer Zeit gab es einen Hamster, der allein und allein in seinem Hamstergebiet lebte." "Mit dem vorliegenden Text fängt die Vorstellung der Hamsterprogramme an."

Der Hamsterbereich - die Umgebung, in der ein Hamsterprogrammierer arbeitet - wird durch eine geflieste Fläche wiedergegeben. Der Hamster, der eine der beiden Betrachtungsrichtungen Norden, Osten, Süden oder Westen nimmt und im Prinzip eine beliebige Anzahl von Körnern in seinen Wangen speichern kann, steht auf einer Fliese. Die Hamster haben die Möglichkeit, Aufträge zu erteilen.

Die vier Funktionen sind ihm bekannt: give(); put a grain where you stand. Wenn der Hamster den Auftrag erhält, vorwärts zu gehen, obwohl er vor einer Wand steht, wird er sterben. Der Hamster kann solche Fälle prüfen, indem er drei Testbefehle kennt: Die Lerner erhalten nun Hamster-Aufgaben, die sie mit diesen grundlegenden Befehlen und schrittweise vorgestellten Java-Programmierkonstrukten bewältigen müssen.

Die Hamster, die sich am Beginn in der rechten oberen Hälfte befinden und nach Osten schauen, sollten alle Getreide aufnehmen und dann aufhören. Der erste Teil des Hamster-Modells stellt Sprachkonzeptionen zwingender Programmierungssprachen vor. Daher wird dieser Teil auch als das imperative Hamster-Modell bezeichne. Im Einzelnen sind dies Anleitungen, Verfahren, Steuerungsstrukturen, das Programmdesign selbst, Variable und Begriffe, Funktion und Parametrierung und Rekursion, die in dieser Abfolge schrittweise eingeleitet werden, so dass der Hamster zunehmend komplexe Aufgabenstellungen auflösen kann.

Dazu werden Hamstergebiete definiert und dann besondere Aufgabenstellungen festgelegt, die sich nur auf das jeweilige Gebiet erstrecken. Kontroll-Strukturen: Durch die Einrichtung von Kontroll-Strukturen (if-, while- und do-instructions) wird es möglich, Hamster-Programme zu erstellen, die für unterschiedliche Hamstergebiete eine Problemlösung sind. Zum Beispiel das folgende Hamsterprogramm behebt die in Kapitel 2 beschriebenen Probleme.

Gibt es ein spezielles Fehler, wie bekomme ich ein (Hamster-)Programm, das dieses Fehler behebt? Indem sie an vielen Hamsterproblemen arbeiten, entwickeln die Lerner die Konzeption des Top-Down-Programms. Zum Erinnern an Sachen oder Sachverhalte erhält der Hamster einen Speicher, der durch Variable dargestellt wird. Arten sind zunächst auf die Arten in, boolesch und floaten im Hamster-Modell begrenzt.

Durch das Definieren von Verfahren konnten dem Hamster neue Kommandos eingelernt werden. Dieses Lernvermögen des Hammers wird nun durch die Eingabe von Parameter- oder RÃ?ckgabewerten eröffnet. Recursion: Hamster-Programme eignen sich hervorragend, um das Rekursionsprinzip zu erklären oder den richtigen Gebrauch von Rekursionsfunktionen zu lernen. Beispiel: Eine komplizierte Aufgabenstellung, die vergleichsweise leicht zu lösen ist, ist, dass sich der Hamster in einem Irrgarten auf der Suche nach einem Getreide aufhält.

Basierend auf dem zwingenden Hamstermodell werden die Konzepte der Objektorientierung (Java), der Programmierung von Objekten, Klasse, Array, Erbschaft, Polymorphie und dynamischer Bindung sowie der Zugriffsberechtigung schrittweise in das objektorientierte Hamstermodell einführt. In dem zwingenden Hamster-Modell gibt es exakt einen (namenlosen) Hamster, der die ihm zugewiesenen Kommandos ausführt. Das objektorientierte Hamstermodell bietet dem Entwickler nun die Chance, mehrere Hamster simultan zu kontrollieren.

Die Hamster sind benannte Objekte: wenn ( (paul. vorn_frei())) paul. vor(); während (willi. korn_da()) willi. nimm(); Klassen: Die Hamster müssen aus Kategorien erstellt werden, in denen die Kommandos, die sie durchführen können, definiert werden müssen. Welche Verfahren oder Aufgaben im zwingenden Hamstermodell waren, sind jetzt Verfahren, die die Kommandos formen, die die Hamster nachvollziehen.

Der Speicher eines Hamsters wird durch die Instanz-Variablen seiner Klassen wiedergegeben. Neben den Hamsterklassen können auch "normale" Kategorien wie z. B. Liste oder Stapel festgelegt und verwendet werden. Anordnungen:: Ein Array ist ein Java-Objekt und wird daher - zusammen mit der for-Schleife - nur hier vorgestellt. Mit Hilfe von Feldern kann der Speicher eines Hamsters erweitert werden, z.B. um ein Bild des Hamstergebietes (Matrix mit Getreide und Wänden) zu speichern.

Erbschaft: Das Vererbungsprinzip lässt sich sehr gut mit dem Hamstermodell erklären: Die Hamster geben die "gelehrten" Kommandos an ihre Nachkommen weiter. Genau wie in Javascript werden alle Kategorien von der Objektklasse hergeleitet, alle Hamsterklassen von der Hamsterklasse, in der die sieben Basisbefehle sind. Hamsterkinder übernehmen die von ihren Ahnen gelernten Kommandos, können sie aber z.B. weitergeben.

Zugangsrechte: Unter dem Leitspruch "Die Hamster werden eitel" werden die Lerner mit den Zugangsrechten bekannt gemacht. Wurden die Merkmale eines Hammers bisher grundsätzlich von außerhalb zugänglich gemacht, kann ein Hamster nun mit den Schlüsselwörtern Öffentlich, Privat und Geschützt gewisse Merkmale veröffentlichen oder vor Unbekannten verstecken. harvest(); privat int collected_koerner; KindHamster paul = neu KindHamster(); pauli. harvest_one_row(); pauli. left_um(); pauli. harvest_one_row(); pauli. harvest_paul.

links_um (); Der dritte Teil des Hamster-Modells stellt die parallele (Java) Programmierung Konzepte Gewinde, Verbindung zwischen den Gewinden, Synchronisierung und Planung basierend auf dem Imperativ und dem objektorientiertem Hamster-Modell vor. Die Hamster im Objekt-orientierten Hamstermodell wurden vom Entwickler in einem Rahmenprogramm kontrolliert, werden aber nun unabhängig. dies. links_um(); .... MyHamster paule = neuer MyHamster(); MyHamster paule = neuer MyHamster(); neuer Thread(paul). start(); neuer Thread(willi). start(); Kommunikation: Die Hamster werden bald bemerken, dass gewisse Aufgaben viel besser gemeinsam gelöst werden können.

Synchronisierung: Spezielle Beispiele zeigen, dass eine nicht koordinierte Kooperation von Hamstern in gewissen Fällen zu Störungen führt. Die Javaeigenschaften der Synchronisierung machen die Hamster mit geeigneten Maßnahmen zur Vermeidung solcher Fälle bekannt. Zeitplanung: Eine gute Koordinierung kann nur erreicht werden, wenn nicht alle Hamster gleich sind, aber einige Hamster haben mehr Rechte oder mehr Macht als andere.

Beim Hamster-Modell (derzeit nur für den Imperativteil ) wurde eine grafisch-interaktive Programmierungsumgebung in JavaScript realisiert, in der Hamsterprogramme erzeugt und ablauffähig sind. Hamsterprogramme sind Java-Programme, die auf dem Laufzeit-System selbst basieren, so dass sie auf den ganzen Java-Sprachschatz zurückgreifen können. Derzeit bauen wir ein so genanntes "Virtuelles Hamster-Programmierlabor" auf.

Dieses Programm ermöglicht die Erzeugung und Durchführung von Hamsterprogrammen im Intranet. Zusätzlich sind Online-Hilfe, viele Hamsteraufgaben und Beispiellösungen eingebunden. Darüberhinaus kann sich der Hamsterprogrammierer über eine eigene Werkbank über Problemstellungen und Erfahrung sowie über Hamsterprogramme und -kurse informieren oder diese gemeinsam entwickeln. Erstmals wurde im WS 1996/97 an der Uni Oltenburg die Sprache für Studienanfänger unterrichtet.

Hierfür wurde das Hamster-Modell verwendet. Dabei hat sich herausgestellt, dass es eine gute Basis für das Lernen von allgemeinen Programmierkonzepten, vor allem für Anfänger, darstellt und zugleich die Begriffe und die Schreibweise von Javascript aufzeigt. Im Hamster-Modell steht nicht so sehr das "Lernen durch Zuhören" im Mittelpunkt, wie es an Universitäten sonst der Fall ist, sondern das "Lernen durch Zuhören".

Angeregt durch das visuelle Feed-back bei der Durchführung von Hamsterprogrammen in der grafisch-interaktiven Programmierungsumgebung, haben die Studenten nicht nur an vorgegebenen Aufgabenstellungen gearbeitet, sondern immer wieder selbst Aufgabenstellungen erarbeitet und die entsprechenden Hamsterprogramme mitentwickelt. Der Hamster ist auch eine Antwort auf das altbekannte Einsteigerproblem, dass Einsteiger zwar das Üben der Programmierung wünschen, sich aber keine geeigneten Aufgabenstellungen ausdenken können.

Die Erfahrung hat jedoch ergeben, dass das Hamster-Modell nicht allein verwendet werden sollte. Neben Hamsterproblemen sollen auch "echte Probleme" erarbeitet und mit Unterstützung von Javascript aufbereitet werden. AGB96] K. Arnold und J. Gosling: K. A. Gosling: Die Sprache der Programmierung, Addison-Wesley, 1996[KL83] L. Klingens und J. Liedtkes: Programmierung mit der Firma Elan, Tel Aviv, 1983.[KL85] L. Klingens und J. Liedtkes: Elean in 100 Beispiele, Tel./Teubner Verlagshaus, 1985.

K. Menzel: K. Menzel: LOGO in 100 Exemplaren, The Hamster Model, G mD St. Augusthin, Internal Report, 1983. [Ros83] P. Ross: Logoprogrammierung, Addison-Wesley, 1983, Autor:

Auch interessant

Mehr zum Thema