Robot Karol

Robot Karol ist eine Programmierumgebung mit einer Programmiersprache, die für Schülerinnen und Schüler zum Erlernen des Programmierens und zur Einführung in die Algorithmik gedacht ist. Robot Karol folgt der Tradition der “Mini-Languages”. Dies sind Programmiersprachen, die bewusst über einen kleinen, übersichtlichen Sprachumfang verfügen, um den Einstieg in die Algorithmik zu erleichtern.

Dem Programm Robot Karol liegt die Idee von „Karel the Robot“ zugrunde, wie sie zum ersten Mal von Richard E. Pattis in “Karel the Robot: A Gentle Introduction to the Art of Programming” veröffentlicht wurde. Die Idee ist, einen Roboter zu programmieren, der in einer “Bildschirmwelt” lebt. Wenn Karol-Programme ablaufen, sehen die Schülerinnen und Schüler an der Reaktion des Roboters sofort, was sie programmiert haben und ob ihr Programm die Aufgabenstellung erfüllt.

Robot Karol bietet eine Programmierumgebung mit:

  • Editor für die Sprache Karol, der Syntaxhervorhebung und Schlüsselwort-Ergänzungen erlaubt
  • Unterstützung bei der Eingabe des Programmtextes
  • Darstellung des Programmcodes als Struktogramm und als Code-übersicht
  • Syntaxüberprüfung mit Fehlerhinweisen
  • Programmablauf schnell, verzögert oder mit Einzelschritt
  • grafischen Darstellung einer 3D-Welt, die den Roboter Karol als Figur im Raum zeigt und diese je nach Anweisungen bewegt
  • grafischen Darstellung einer 2D-Welt
Programmierumgebung von RobotKarol
Das Hauptfenster der Programmierumgebung von Robot Karol umfasst die vier Teile Editor, Ansicht, Übersicht und Informationsfläche.

Programmiersprache

Karol ist eine Programmiersprache mit deutschen Schlüsselwörtern, die für Schülerinnen und Schüler zum Erlernen des Programmierens und zur Einführung in die Algorithmik gedacht ist.

Die Sprache Karol umfasst:

  • vordefinierte Anweisungen; eigene, selbstdefinierte Anweisungen;
  • vordefinierte Bedingungen; eigene, selbstdefinierte Bedingungen;
  • Kontrollstrukturen: bedingte Wiederholung; Wiederholung mit fester Anzahl; bedingte Anweisung;
  • schnelle, langsame Ausführung; diverse Erweiterungen

Der Roboter Karol kann als ein Objekt der Klasse ROBOTER betrachtet werden, mit folgender Struktur:

Eigenschaften (Attribute):

Position (mit X und Y); Blickrichtung; Geschwindigkeit; maximaleSprunghöhe; ZiegelImRucksack; RucksackGröße;

Methoden (Fähigkeiten):

Karol hat vordefinierte Methoden mit denen er bestimmte Vorgänge ausführen kann (zum Beispiel „einen Schritt nach vorne gehen“). Eine Anweisungen im Programm bedeutet das Senden einer Botschaft an das Objekt Karol, der mit der zugehörigen Methode darauf reagiert.
Eine neue Anweisung in der Sprache Karol festlegen (definieren) heißt, dem Roboter Karol eine neue Methoden beibringen, mit der er auf diese neue Anweisung reagieren kann.
Karol hat aber auch Methoden, mit denen er auf eine Anfrage mit WAHR oder FALSCH antwortet (zum Beispiel „stehst du vor der Wand?“). Der Aufruf einer Methode dieser Art heißt Bedingung. Neue Bedingungen in der Sprache Karol festlegen bedeutet dem Roboter Karol neue Methoden beibringen, mit denen er auf eine bestimmte Anfrage mit WAHR oder FALSCH antworten kann.

Vordefinierte Anweisungen (Methoden)

Roboter Karol macht einen Schritt bzw. mehrere Schritte in die Blickrichtung:
Schritt
Schritt(Anzahl)
Karol dreht sich nach links (um 90°):
LinksDrehen
Karol dreht sich nach rechts (um 90°):
RechtsDrehen
Karol legt vor sich einen roten Ziegel; eine Anzahl roter Ziegel; einen Ziegel der angegebenen Farbe:
Hinlegen
Hinlegen(Anzahl)
Hinlegen(Farbe)
Karol hebt einen Ziegel beliebiger Farbe auf, der vor ihm liegt; bzw. Anzahl Ziegel:
Aufheben
Aufheben(Anzahl)
Karol setzt an seiner Position eine gelbe Marke; eine Marke der angegebenen Farbe:
MarkeSetzen
MarkeSetzen(Farbe)
Karol löscht an seiner Position eine Marke:
MarkeLöschen
Karol wartet eine Sekunde; Anzahl Millisekunden:
Warten
Warten(Anzahl)
Karol gibt einen Ton von sich:
Ton
Karol stoppt den Programmablauf:
Beenden
Farben:
rot, gelb, blau, grün

Programmierumgebung

Editor

  • Erfassung des Programmtextes
  • farbliche Hervorhebungen entsprechend der Syntax
  • Schnelleingabe der reservierten Wörter mit der rechten Maustaste
  • automatische Codeergänzung bei der Eingabe
  • Kopieren, Ausschneiden und Einfügen
  • Suchen und Ersetzen
  • automatische Formatierung des Programmtextes
  • einblendbare Zeilennummern
  • Speichern, Öffnen und Drucken des Programmtextes

Programmablauf

  • Syntaxprüfung mit Fehlerhinweis und Markierung der betroffenen Zeile; Aufruf vor jedem Programmablauf oder gesondert
  • Ablauf mit Verzögerung; nach jeder Anweisung wartet Karol eine einstellbare Zeit
  • Schnellablauf ohne Verzögerung
  • manueller Einzelschritt
  • Pause und Programmstopp jederzeit möglich
  • Setzen von Stopppunkten im Programmtext

Vordefinierte Bedingungen

WAHR, wenn Karol vor der Wand oder vor einem Quader steht und in diese Richtung schaut:
IstWand
WAHR, wenn IstWand nicht zutrifft:
NichtIstWand
WAHR, wenn Karol vor einem Ziegel oder einem Ziegelstapel beliebiger Farbe steht und zu diesem schaut; wenn er vor einem Stapel mit Anzahl Ziegel steht; wenn er vor mindestens einem Ziegel der angegebenen Farbe steht:
IstZiegel
IstZiegel(Anzahl)
IstZiegel(Farbe)
WAHR, wenn IstZiegel nicht zutrifft:
NichtIstZiegel
NichtIstZiegel(Anzahl)
NichtIstZiegel(Farbe)
WAHR, wenn Karol auf einer Marke steht; Marke der angegebenen Farbe:
IstMarke
IstMarke(Farbe)
WAHR, wenn IstMarke nicht zutrifft:
NichtIstMarke
NichtIstMarke(Farbe)
WAHR, wenn Karol in diese Richtung schaut:
IstSüden/ IstNorden/ IstWesten/ IstOsten
WAHR, wenn Karol seine Tragfähigkeit erreicht hat:
IstVoll
WAHR, wenn IstVoll nicht zutrifft:
NichtIstVoll
WAHR, wenn Karol keinen Ziegel mit sich trägt:
IstLeer
WAHR, wenn IstLeer nicht zutrifft:
NichtIstLeer
WAHR, wenn Karol mindestens einen Ziegel mit sich trägt; genau Anzahl Ziegel mit sich trägt:
HatZiegel
HatZiegel(Anzahl)

Ansicht

Im Bereich der Ansicht sieht man Roboter Karol wahlweise in seiner 3D-Welt oder in einer 2D-Darstellung.

  • Darstellung von Karol, Wänden, Ziegeln, Marken und Quadern
  • Direktsteuerung von Roboter Karol durch Schaltflächen oder Tasten; direktes Setzen bzw. Entfernen von Ziegeln, Marken und Quadern
  • Darstellung der Veränderungen während des Programmlaufs
  • Speichern, Öffnen und Drucken von Karol-Welten
  • Leeren bzw. Wiederherstellen einer Karol-Welt

Das Karol-Programm kann auch als Struktogramm dargestellt werden.

  • Ausblendung der Karol-Welt und stattdessen Anzeige des Struktogramms
  • Speichern, Kopieren und Drucken des Struktogramms als Grafik

Kontrollstrukturen

Bedingte Anweisung:
wenn Bedingung dann
Anweisungen
endewenn
Bedingte Anweisung zweiseitig:
wenn Bedingung dann
Anweisungen
sonst
Anweisungen
endewenn
Wiederholung mit fester Anzahl:
wiederhole Zahl mal
Anweisungen
endewiederhole
Bedingte Wiederholung mit Anfangsprüfung:
wiederhole solange Bedingung
Anweisungen
endewiederhole
Bedingte Wiederholung mit Endprüfung:
wiederhole
Anweisungen
endewiederhole solange Bedingung
Endlos-Wiederholung:
wiederhole immer
Anweisungen
endewiederhole

Übersicht

  • Auflistung aller Kontrollstrukturen
  • Auflistung aller vordefinierten Anweisungen und Bedingung
  • Auflistung der selbstdefinierten Anweisungen und Bedingungen
  • Darstellung des Programms in Form einer Baumstruktur

selbstdefinierte Anweisung

selbstdefinierte Anweisung festlegen:
Anweisung NamederAnweisung
Anweisungen
endeAnweisung

Informationsfläche

  • Einblendung der aktuellen Karol-Position und der Karol-Blickrichtung
  • auf Wunsch Einblendung der Ziegelanzahl die Karol momentan trägt
  • Anzeige der Dateinamen von Programm und Welt
  • Ausgabe von Fehlermeldungen, sowohl Syntaxfehler als auch Laufzeitfehler

selbstdefinierte Bedingung

selbstdefinierte Bedingung festlegen:
Bedingung NamederBedingung
Anweisungen
Programmzeilen mit WAHR bzw. FALSCH
endeBedingung

Download, Beispiele und Weblinks

Systemvoraussetzungen für Robot Karol

„Robot Karol 3.0“ ist eine komplette Neuprogrammierung der bisherigen „Robot Karol“-Versionen 1.0 bis 2.3 (unter Delphi). „Robot Karol 3.0“ ist auf allen Betriebssystemen (Windows, MacOS, OS X, Linux, Unix …) lauffähig, die eine Java-Laufzeitumgebung (JRE, Java Runtime Environment) unterstützen. Voraussetzung ist eine auf dem Rechner installierte Java-Runtime in der „Version 8 Update 161“ oder neuer.

Rechner mit Windows-Betriebssystem

  • Installation: Übertragen Sie die Datei RobotKarol30_Windows_Setup.exe auf Ihren Rechner. Durch Doppelklick auf diese Datei wird das Installationsprogramm für RobotKarol gestartet und die Dateien dem Zielverzeichnis eingerichtet. Dieses Installationsverzeichnis hat üblicherweise den Ordnernamen RobotKarol3. (z. B. C:\Programme\RobotKarol3)
  • Start: Das Programm RobotKarol wird durch Doppelklick auf KarolProgVerz\RobotKarol.exe oder durch Doppelklick auf den Dektop-Link RobotKarol3 gestartet.

Rechner mit anderen Betriebssystemen

  • Installation: „Robot Karol 3.0“ wird in einer gepackten Datei RobotKarol30.zip ausgeliefert. Das Paket RobotKarol30.zip muss, einschließlich der enthaltenen Ordnerstruktur, in ein Verzeichnis auf dem Rechner entpackt werden z. B. /Users/Benutzername/RobotKarol3.
  • Gestartet wird das Programm „Robot Karol 3.0“ über RobotKarol.jar: Doppelklick auf RobotKarol.jar im Ordner KarolProgVerz, oder Doppelklick auf einen Link zur Datei RobotKarol.jar oder im Betriebssystem das Terminal- bzw. Konsolen-Fenster (Eingabeaufforderung, cmd) öffnen, in das Zielverzeichnis wechseln und den Befehl „java -cp RobotKarol.jar -jar RobotKarol.jar“ eingeben.

Beispieldateien

Bei der Installation von Robot Karol werden viele Beispieldateien im Ordner BEISPIELE eingerichtet. Einige Freunde von Karol haben weitere schöne Beispiele eingeschickt, die zur allgemeinen Benutzung zur Verfügung stehen. Danke an die Autoren.
Die Beispiele werden in der gepackten Datei RobotKarol30_Beispiele.zip ausgeliefert. In der zip-Datei befindet sich ein Verzeichnis Uebersicht_Beispiele.pdf für diese Beispiele.

Kontakt

Wünsche zur Erweiterung von Robot Karol und Meldungen über Fehler bitte per E-Mail an den Autor von Robot Karol 3.0. Wenn Sie interessante Karol-Programme und zugehörige, schöne Karol-Welten erstellt haben, so senden Sie diese bitte als Anhang, zusammen mit einer kurzen Erklärung, an meine E-Mail-Adresse.
Gute Beispiele zum Einsatz von Robot Karol werden dann in der Beispieldatei RobotKarol30_Beispiele.zip den anderen Schulen zur Verfügung gestellt.

Ulli Freiberger
Luitpold-Gymnasium
Seeaustr. 1
80538 München

  • Nehmen Sie Kontakt mit Ulli Freiberger auf.
  • Stand
  • 15. Dezember 2018
  • Autor
  • Ulli Freiberger (2018)