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
©istock.com/davincidig

©istock.com/davincidig

  • Das Hauptfenster der Programmierumgebung von Robot Karol umfasst die vier Teile Editor, Ansicht, Übersicht und Informationsfläche.

    Karel the Robot

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 möglich

Kontrollstrukturen

Bedingte Anweisung:
wenn Bedingung dann
Anweisungen
*wenn
Bedingte Anweisung zweiseitig:
wenn Bedingung dann
Anweisungen
sonst
Anweisungen
*wenn
Gezählte Wiederholung:
wiederhole Zahl mal
Anweisungen
*wiederhole
Bedingte Wiederholung mit Anfangsprüfung:
solange Bedingung tue
Anweisungen
*solange
Bedingte Wiederholung mit Anfangsprüfung:
wiederhole solange Bedingung
Anweisungen
*wiederhole
Bedingte Wiederholung mit Endprüfung:
wiederhole
Anweisungen
*wiederhole solange Bedingung
Endlos-Wiederholung:
wiederhole immer
Anweisungen
*wiederhole

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; setzen bzw. entfernen von Ziegeln, Marken und Quadern
  • Darstellung der Veränderungen während des Programmlaufs
  • Speichern, Öffnen und Drucken von Karol-Welten
  • Löschen und 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

 

Vordefinierte und selbstdefinierte Anweisungen

Roboter Karol macht, wenn erlaubt, einen Schritt in die Blickrichtung mehrere Schritte mit “Schritt(Anzahl)” möglich:
Schritt
Karol dreht sich nach links (um 90°):
LinksDrehen
Karol dreht sich nach rechts (um 90°):
RechtsDrehen
Karol legt vor sich einen Ziegel ab mehrere Ziegel mit “Hinlegen(Anzahl)” möglich:
Hinlegen
Karol hebt einen Ziegel auf, der vor ihm liegt mehrere Ziegel mit “Aufheben(Anzahl)” möglich:
Aufheben
Karol setzt an seiner Position eine Marke:
MarkeSetzen
Karol löscht an seiner Position eine Marke:
MarkeLöschen
nKarol wartet eine Sekunde auch “Warten(Millisekunden)” möglich:
Warte
Karol gibt einen Ton von sich:
Ton
Karol stoppt den Programmablauf:
Beenden
Legt neue Anweisung fest:
Anweisung
Anweisungen
*Anweisung

Übersicht

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

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

Vordefinierte und selbstdefinierte 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 Zeigelstapel steht und zu diesem schaut; Abfrage nach einer genauen Anzahl Ziegel ist möglich mit “IstZiegel(Anzahl)”:
IstZiegel
WAHR, wenn IstZiegel nicht zutrifft:
NichtIstZiegel
WAHR, wenn Karol auf einer Marke steht:
IstMarke
WAHR, wenn IstMarke nicht zutrifft
NichtIstMarke
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; die Abfrage nach einer genauen Anzahl Ziegel, die Karol mit sich trägt ist mit “HatZiegel(Anzahl)” möglich:
HatZiegel
WAHR, wenn IstLeer nicht zutrifft:
NichtIstLeer

Download, Beispiele und WebLinks

Systemvorraussetzungen für Robot Karol

  • Betriebssystem: lauffähig unter Windows95, Windows98, WindowsME, WindowsNT, Windows2000, WindowsXP, WindowsVista, Windows7, Windows8
  • freier Speicherplatz auf dem Datenträger: 1,5MByte

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 hier zur allgemeinen Benutzung zur Verfügung stehen. Danke an die Autoren. Voraussetzung zum Einsatz ist die Version 2.0 oder neuer.

 

Beispielsammlung

Folgende Dateien sind in dieser Sammlung enthalten:

Name der Datei in zip-Paket
Beschreibung und Autor
burgn.kdp
burgn.kdw
Karol baut eine Burg mit Ecktürmen und Treppe
Norbert Handick
pyramide.kdp
pyramide.kdw
Karol baut eine Pyramide
Norbert Handick
dualesumme.kdp
dualesumme.kdw
Anleitung.doc
Karol berechnet die Summe zweier Zahlen in Dualschreibweise
Rüdiger Landskron
burg.kdp
burg.kdw
Karol baut eine Burg mit Zinnen
Rudolf Brunner
burg_tor.kdp
burg_tor.kdw
Karol baut eine Burg mit Zinnen und Tor
Rudolf Brunner
hohle_gasse.kdp
hohle_gasse.kdw
Karol sucht sich den Weg durch eine hohle Gasse
Rudolf Brunner
auslegen.kdp Karol legt den Boden ganz mit Ziegel aus
Thomas Häusler
alphabet.kdp Karol kann Großbuchstaben schreiben; gesamtes Alphabet ! ; am besten als Bibliothek einfügen
Peter Szilassy
kurzuebersicht.rtf Kurzübersicht über die Methoden von Karol und die Kontrollstrukturen der Programmiersprache
Horst Zoll
ziegel_finder.kdp
ziegel_finder.kdw
Karol findet einen einzelnen Ziegel
Stefan Mesch

Historie

  • Originalversion

    Robot Karol++ in slowakischer Sprache Mai 2001: Ondrej Krško
  • Robot Karol deutsch

    Version 2.3 – 12. April 2013 – Ulli Freiberger: Programmausdruck verwendet gleiche Schriftgröße wie Editor; Zoom für die Grafik der 3D-Ansicht.
  • Version 2.2c – 23. Januar 2013 – Ulli Freiberger: Weiterer Fehler bei verschachtelten Wiederholungen mit Endbedingung behoben; Fehler bei Programmstopp und Wiederholung mit Endbedingung behoben;
  • Version 2.2b – 4.Dezember 2004 – Ulli Freiberger: Fehler bei verschachtelten Wiederholungen mit Endbedingung behoben; Fehler bei Verwendung eines Parameters innerhalb von komplexeren selbstdef.Anweisungen behoben;
  • Version 2.2 – 3.Mai 2003 – Ulli Freiberger: neue Bedingung HatZiegel; Hinlegen/Aufheben jetzt auch mit Parameter; formaler Parameter X innerhalb einer selbstdefinierten Anweisung/Bedingung möglich; Handbuch überarbeitet;
aufraeumen.kdp
aufraeumen.kdw
Karol sammelt alle Ziegel ein, auch Ziegelstapel
Walter Settele
einmauern.kdp Karol mauert sich ein
Walter Settele
geheheim.kdp Karol geht Heim (1;1), egal welche Ausgangsposition
Walter Settele
slalom.kdpslalom.kdw Karol läuft Slalom um Ziegelstapel
Walter Settele
abc.kdp
abc.kdw
Karol schreibt Großbuchstaben (außer Umlaute und ß), sowie die gängigsten Zeichen und Zahlen
Florian Krauß
steinepflastern.kdp
steinepflastern.kdw
Karol pflastert die Welt von unten bis oben mit Ziegelsteinen aus
Matthias St. Pierre
chichenitza.kdp
chichenitza.kdw
Karol baut die Pyramide von Chichen Itza (Mexiko)
Wolfgang Hofmeier (Quesnel BC Kanada)
festung.kdp
festung.kdw
Karol baut eine riesige Festung mit Türmen und Mauern
Arthur Kosmala, Markgraf-Georg-Friedrich-Gymnasium Kulmbach (Bayern)
ganzzahladdieren.kdp
ganzzahladdieren.kdw
Karol kann zwei beliebig große Ganzzahlen addieren
Tom Broscheit

Historie

  • Version 2.1 – 20.Juni 2002 – Ulli Freiberger: In der 2D-Ansicht kann die Welt direkt durch Mausklick festgelegt werden; Wechsel der Karol-Figur direkt im Programm möglich;
  • Version 2.0.2 – 16.Juni 2002 – Ulli Freiberger: Verbesserung der Syntaxprüfung; Schriftgröße im Editor änderbar;
  • Version 2.0 – 10.Mai 2002 – Ulli Freiberger: Neue Kontrollstrukturen für Wiederholung; Bewegung des Programmablaufpfeils verbessert; wahlweise 2D-Darstellung der Welt; Einstellungsdialog aufgeteilt; neue Einstellungen; intern viele Verbesserungen;
  • Version 1.1.1 – 21.Januar 2002 – Ulli Freiberger: neue Bedingungen für die Überwachung der Traglast von Karol: IstVoll und IstLeer; Verbesserungen im Editor; Karol-Figuren überarbeitet;
  • Version 1.1 – Januar 2002 – Ulli Freiberger: Struktogrammdarstellung ergänzt; Erste Version, die den bayerischen Schulen zur Verfügung gestellt wird;
  • Version 1.0 – Dezember 2001 – Ulli Freiberger: Übertragung der Originalversion ins Deutsche, zahlreiche Änderungen und Ergänzungen, viele zusätzliche Beispiele
addition.kdp
aufgabe1.kdw
aufgabe2.kdw
aufgabe3.kdw
Das Programm ermöglicht Karol die Addition von mehreren Zahlen im Dezimalsystem. Die Anzahl und die Größe der Zahlen sind nur durch die Welt begrenzt, in der man sie anlegt.
Drei Aufgaben-Beispiele liegen bei.
(UlFr: Tolles Programm!)
Thomas Vogg
turmwaerter.kdp
turmwaerter.kdw
Karol baut einen Turm und schaut von der Spitze ins Land
Philipp Uhlig
labyrinthforscher.kdp
labyrinthforscher.kdw
Der Labyrinthforscher Karol findet den kürzesten Weg durch ein Rechte-Hand-Regel-konformes Labyrinth
Niko Berkmann
linkehandregel.kdp
linkehandregel_mitspur.kdp
labyrinth1.kdw
labyrinth2.kdw
labyrinth3.kdw
labyrinth4.kdw
labyrinth5.kdw
labyrinth6.kdw
labyrinth7.kdw
Ein Programm, das es Karol ermöglicht, durch jedes beliebige Labyrinth zu marschieren.
Es liegen einige Labyrinth-Welten bei (labyrint1.kdw mit labyrinth7.kdw).
Eine Programmvariante mit reinem Durchlauf, die andere mit Markierung der Spur durch Ziegel.
(UlFr: Zwei phantastische Programme)
Thomas Vogg
schachbrett.kdp
schachbrett.kdw
Karol baut, unabhängig von der Größe der Welt in X und Y Richtung, ein Schachbrettmuster aus Marken
David Thiesbrummel
karol_als_waechter.zip Karol lernt seine neue Tätigkeit als Burgwächter.
Vollständiger Kurs mit immer schwierigeren Mauern (incl. Anleitung).
Thomas Wetzel (MNU Berlin)

Kontakt

Wünsche zur Erweiterung von Robot Karol und Meldungen über Fehler bitte per E-Mail an den Autor der deutschen Version. 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 im Bereich “Beispiele” den anderen Schulen zur Verfügung gestellt.

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

  • Nehmen Sie Kontakt mit Ulli Freiberger auf.
  • Stand
  • 8. Mai 2015
  • Autor
  • Ulli Freiberger, Ondrej Krsko (2001)