Der zeitlose Klassiker für den spielerischen Einstieg in die Programmierung.
Robot Karol Online (karol.arrrg.de) ist eine Erweiterung der gleichnamigen Programmierumgebung von Ulli Freiberger. Ziel ist die spielerische Einführung in die Algorithmik, insbesondere von Sequenz, Wiederholung mit fester Anzahl, bedingte Wiederholung und bedingte Anweisungen. Diese Themen finden sich in vielen Lehrplänen der Unterstufe.
Robot Karol stellt einen visuellen (blockbasierten) Editor zur Verfügung.
Zur Unterstützung der Modellierung kann das Programm zusätzlich als Struktogramm angezeigt werden.
Eine Bearbeitung im Text-Modus ist ebenfalls möglich. Es kann durchgehend zwischen Text und Blöcken gewechselt werden.
Als Web-Anwendung entfällt die Installation. Einfach auf den Link https://karol.arrrg.de/ klicken und schon kann losgearbeitet werden.
Robot Karol Online enthält eine Sammmlung interaktiver Aufgaben, die für die Übung und zum Selbstlernen geeignet sind. Die Aufgaben fangen mit einfachen Tutorials an und steigern sich bis zu komplexen Algorithmen mit verschachtelten Kontrollstrukturen.
Erhalte eine Übersicht über alle enthaltenen Aufgaben: https://karol.arrrg.de/#demo
Für einen maßgeschneiderten Unterricht können im Aufgaben-Editor eigene interaktive Aufgaben erstellt werden und über einen Link an die Klasse verteilt werden.
Schritt
- Karol geht einen Schritt nach vorne.
Schritt(anzahl)
- Karol geht anzahl
Schritte nach vorne.
LinksDrehen
- Karol dreht sich um 90° nach links.
RechtsDrehen
- Karol dreht sich um 90° nach rechts.
Hinlegen
- Karol legt vor sich einen Ziegel.
Hinlegen(anzahl)
- Karol legt vor sich anzahl
Ziegel.
Aufheben
- Karol hebt einen Ziegel vor sich auf.
Aufheben(anzahl)
- Karol hebt anzahl
Ziegel vor sich auf.
MarkeSetzen
- Karol setzt unter sich eine Marke.
MarkeLöschen
- Karol löscht Marke unter sich.
Beenden
- Karol beendet an dieser Stelle die Ausführung des Programms.
// Kommentar
- Nutze Kommentare, um den Code zu gliedern und die Struktur zu erklären.
wiederhole {n} mal {Anweisungen} endewiederhole
- Wiederholung mit fester Anzahl
wiederhole solange {Bedingung} {Anweisungen} endewiederhole
- Wiederholung mit Bedingung
wiederhole immer {Anweisungen} endewiederhole
- Wiederholung bis zum Programmabbruch
wenn {Bedingung} dann {Anweisungen} endewenn
- Einseitig bedingte Anweisung
wenn {Bedingung} dann {Anweisungen A} sonst {Anweisungen B} endewenn
- Zweiseitig bedingte Anweisung
IstWand
/ NichtIstWand
- Karol testet, ob vor ihr eine Wand (oder ein Quader) ist oder nicht.
IstZiegel
/ NichtIstZiegel
- Karol testet, ob vor ihr Ziegel liegen oder nicht.
IstMarke
/ NichtIstMarke
- Karol testet, ob sie auf einer Marke steht oder nicht.
IstZiegel(anzahl)
/ NichtIstZiegel(anzahl)
- Karol testet, ob vor ihr genau anzahl
Ziegel liegen oder nicht.
IstNorden
/ NichtIstNorden
- Karol testet, ob sie nach Norden schaut oder nicht. (Norden = oben)
Im textbasierten Editor werden alle obigen Anweisungen und Kontrollstrukturen unterstützt, außerdem gibt es noch folgende Möglichkeiten:
- Eigene Anweisungen können mit
Anweisung {Name} endeAnweisung
definiert werden und überall mitName
aufgerufen werden. Außerdem kann aus einer Anweisung mitreturn
zurückgesprungen werden. - Die meisten Befehle erlauben eine objektorientiere Schreibweise der Form
karol.Schritt(4)
oder ohne Parameter in der Formkarol.LinksDrehen()
. - Die alte Syntax mit
*wiederhole
,*wenn
und*Anweisung
wird weiterhin unterstützt. - Außerdem können weiterhin Kommentare mit
{ Kommentar }
geschrieben werden. Alternative Syntax für mehrzeilige Kommentare ist/* Kommentar */
, Alternative für einzeiligen Kommentar ist# Kommentar
. - Zur Abgrenzung von Befehlen kann ein Semikolon verwendet werden:
Hinlegen; Schritt; LinksDrehen
Über die letzen Monate sind mir ein paar ähnliche Projekte begegnet:
- https://github.com/robotcoral: Textbasiert, 3D-Ansicht, schickes Design, Oberfläche sehr nah an Originalversion
- https://github.com/vanmeegen/react-three-karol: Block- und text-basiert, 3D-Ansicht
- https://github.com/andipaetzold/robotkarol.dev: ordentliche Umsetzung, nur text-basiert, keine manuelle Steuerung, viele Beispiele
- https://github.com/timjb/robot-karel: Mehr als 10 Jahre alt, Vorschau
Karol verwendet sie/ihr-Pronomen.
Installiere node.js und git. Um das Repo dann zum Laufen zu bringen, benötigt es folgende Schritte:
git clone https://github.com/Entkenntnis/robot-karol-online.git
cd robot-karol-online
npm install
npm run dev
Danach ist die lokale Version auf localhost:3000
verfügbar.