# Robot Karol

Robot Karol ist eine Programmierumgebung für eine gleichnamige in einfachem Deutsch gehaltene bildungsorientierte Programmiersprache. Sie wurde entwickelt, um Schüler mit Hilfe der Programmierung von einfachen virtuellen Robotern an die Algorithmik heranzuführen. Die Grundidee entstammt dem Buch Karel the Robot: A Gentle Introduction to The Art of Programming.

## Geschichte

Robot Karol ist eine ab dem Jahr 2001 von Ulli Freiberger ins Deutsche übersetzte und deutlich erweiterte Variante der slowakischen Originalversion „Robot Karol++“ von Ondrej Krško. Damit ist Robot Karol ein direkter und moderner Abkömmling von „Karel, the Robot“ sowie eine Alternative zur Turtle-Grafik und zu Niki – der Roboter. Die aktuelle Version ist 3.0.4 vom 21. September 2019.

## Zweck

Robot Karol wird als „Mini-Language“ bezeichnet, also eine Sprache, die vor allem dazu dienen soll, Schülern einen ersten Einblick in die Programmierung und Algorithmik zu gewähren. Dabei ist es für Anfänger besonders nützlich, dass Robot Karol Programmiersprache und Programmierumgebung zugleich ist, was weitere Installationen, zum Beispiel die eines Editors oder eines Compilers zur Übersetzung des Quelltextes in Maschinencode, unnötig macht. Weiterhin können die geschriebenen Programme für den virtuellen Roboter direkt mit einem integrierten Interpreter ausgeführt werden, wodurch die Erkennung von Fehlern zur Laufzeit in der grafischen Oberfläche von Karols Welt erleichtert werden. Die hier gelernten Methoden können auch leicht auf „Java Karol“ übertragen werden.

## Programmiersprache
### Sprachelemente

Die Sprache setzt sich aus vordefinierten Anweisungen (zum Beispiel Schritt oder LinksDrehen), vordefinierten Bedingungen (zum Beispiel IstWand oder NichtIstWand) und Kontrollstrukturen (zum Beispiel wiederhole) zusammen. Diese drei Elemente werden ausführlich im Handbuch dokumentiert (auf das von der Anwendung aus zugegriffen werden kann). Daneben ist es auch möglich, Anweisungen und Bedingungen innerhalb der Gegebenheiten der Sprache selbst zu definieren. Eine Benutzung von Parametern ist möglich, die Menge dieser Parameter ist allerdings auf einen beschränkt. Rekursion ist möglich, allerdings nicht mit Parametern. Andere Formen von Variablen oder Operatoren existieren nicht.

### Beispielprogramm

Ein simples Beispielprogramm, in dem Karol bis zur nächsten Wand läuft und dann einen Ton von sich gibt. Um den eventuellen, späteren Zugriff auf diese Aktion zu erleichtern, wird sie als Anweisung definiert.

## Java Karol

Java Karol ist eine Java-Bibliothek, die 2008 ebenfalls von Ulli Freiberger entwickelt wurde und aktuell in der Version 1.1 vorliegt. Damit können an Robot Karol angelehnte Methoden innerhalb eines Java-Quelltextes verwendet werden, zur Einführung die objektorientierte Programmierung moderner höheren Programmiersprachen.

## Robot Karol Online

Robot Karol Online ist seit 2022 von David Li entwickelt und ermöglicht es, Robot Karol im Browser zu nutzen. Unterstützt wird neben der textbasierten Eingabe auch die Programmierung mit Blöcken. Ein Wechsel zwischen beiden Modi ist zwischendrin möglich.

## Bibliotheken

Robot Karol unterstützt Programmbibliotheken, ⁣⁣mit denen Hilfsmodule importiert und in Robot Karol genutzt werden können. Beispiele für solche Bibliotheken sind Karollign oder KarolAlphabet.

## Pädagogische Effekte

Anhand zweier 7. Klassen (Gymnasium) wurden Karol und Scratch miteinander verglichen. Dabei kam heraus, dass Karol als näher am echten Programmierleben wahrgenommen wird, aber Scratch zu einer im Schnitt höheren Motivation und Leistung bei den Schülern führt.