Karel the Robot

Spielerisch Programmieren (lernen)

Mit oder besser in der Lernumgebung „Karel the Robot“ zu arbeiten und seinen eigenen Code zu schreiben macht einfach Spaß – egal, ob du schon viel Erfahrung mit dem Schreiben eigener Programme hast oder komplett neu in der Welt der Programmierung bist – mit dem kleinen Roboter gibt es Kapitel für Kapitel viel zu entdecken.

Kapitel für Kapitel gibt es neue Aufgaben zu erfüllen, neue Befehle zu meistern und tiefer in die Welt aus Nullen und Einsen vorzudringen.

Irgendwann bist du soweit, dass sich das Leveldesign jedes Mal verändert, wenn du das Level startest. Spätestens jetzt musst du die Kontrollstrukturen geschickt einsetzen, um das Level zu meistern.

Die Lernumgebung setzt deinen eigenen Code Zeile für Zeile so um, dass du genau erkennen kannst, was wann passiert. Mit Karel hast du also nicht nur den perfekten Einstieg in die (textuelle) Programmierung gefunden, du lernst auch spielend leicht die Grundlagen der imperativen Programmierung.

Und genau das denken sich auch viele Professor*innen. Die ursprüngliche Idee zu Karel wurde von Richard Pattis (Stanford University, 1970) entwickelt. Heute gibt es mehrere Versionen der Lernumgebung und sie wird an vielen Universitäten eingesetzt.

Wir unterscheiden 2 große Programierparadigmen: die imperative Programmierung und die objektorientierte Programmierung. Karel und die meisten anderen Programiersprachen wie C, C#, C++, Java, Python basieren auf der imperativen Programmierung und unterscheiden sich „nur“ durch einige Details. 

Um einen Einstieg in die Programmierung zu finden, darf man sich jedoch nicht in den spezifischen Details einer Sprache verlieren. Die Lernumgebung „Karel the Robot“ ist universell! Hier geht es darum, kritische Problemstellungen der Informatik kennenzulernen und zu lösen. Die Prinzipien, die hier erlernt werden, können in allen imperativen Programmiersprachen eingesetzt werden, also auch direkt mit dem Arduino-Mikrocontroller!

Und ganz nebenbei macht es einfach Spaß, die Aufgaben zu lösen und sich den Herausforderungen zu stellen. In der Lernumgebung kann man viel erleben und insbesondere am Anfang unglaublich viel lernen und hat sogar noch Spaß dabei!

Die imperative Programmierung (vom Lateinischen: imperare = befehlen) führt eine klar strukturierte Handlungsabfolge aus. Es werden also, genau wie in der Aufgabe, die Karel hier erfüllen soll, mehrere Befehle nacheinander ausgeführt. Um einzelne Befehle zu steuern, können zudem auch Kontrollstrukturen wie Verzweigungen oder Schleifen verwendet werden.

Die Welt von Karel

Die Objekte in Karel the Robot
Karel

Du programmierst den kleinen blauen Roboter. Hilf ihm dabei, seine Aufgaben zu erfüllen.

Wand

Eine Wand versperrt Karel den Weg.

* Versucht ihr (Karel), durch eine Wand zu laufen, erhaltet ihr eine Fehlermeldung.
* Wände können (ab Lektion 2) durch if/else-Abfragen erkannt werden.

Beeper

Teil der Aufgaben können die sogenannten Beeper sein. Karel kann unendlich viele Beeper einsammeln oder ablegen.

* Es ist egal, ob er bereits Beeper eingesammelt oder abgelegt hat.
* Beeper können nur abgelegt werden, wenn noch kein Beeper auf dem Feld liegt.
* Beeper können nur eingesammelt werden, wenn bereits ein Beeper auf dem Feld liegt.

Ein Blick in die Lernumgebung

Die visuelle Umsetztung: In „Einen Einblick in die Lernumgebung“ sehen wir, dass unser Code Zeile für Zeile umgesetzt wird und wir jeden Schritt von Karel verfolgen können, um so mehr über unsere eigenen Programme zu lernen!

Steuere Karel durch seine kleine Welt

Dir stehen 6 Befehle (vorimplementierte Funktionen) zur Verfügung, um Karel zu programmieren.

TastenkürzelFunktionBeschreibung
F1moveForward()Karel bewegt sich ein Feld vorwärts in die Richtung, in die er gerade schaut.
Misslingt, wenn eine Wand den Weg versperrt
F2turnLeft()Karel dreht sich um 90° nach links
F3turnAround()Karel dreht sich um 180°
F4turnRight()Karel dreht sich um 90° nach rechts
F5pickBeeper()Karel nimmt den Beeper von dem Feld, auf dem er gerade steht auf.
Misslingt, wenn es keinen Beeper (auf dem Feld) gibt
F6dropBeeper()Karel wirft einen Beeper auf den Platz, auf dem er gerade steht
Misslingt, wenn dort bereits ein Beeper liegt

Irgendwann gelangst du jedoch an den Punkt, ab dem sich Karels Welt beginnz zu entwicken und zu verändern – und das mit jedem neuen Laden des Kapiteln (ab 1.3.2 „repairTheStreet“). Jetzt müssen wir die Befehle erweitern, damit Karel seine Aufgaben bewältigen kann!

Jedes mal, wenn ihr auf „start“ klickt, wird eine neue Textdatei Karel im Home-Verzeichniss angelegt. Manuelles speichern ist nicht erforderlich!

Der Dateipfad (also wo die Textdatein gespeichert sind), wird in der Titelleiste der Lernumgebung angezeigt.

null

null

Es geht nichts „verloren“. Die aktuelle Datei (in der ihr momentan euren Code schreibt) heißt Karel. Die anderen (alten Textdatein) wurden einfach umbenannt.

Die Kursreihe zu Karel

Entdecke Kapitel für Kapitel neue Themen, die dir helfen, auch komplexe Probleme zu lösen!

Mehr als nur ein Programm
Hinter jedem einzelnen Kapitel steckt mehr, als sich auf den ersten Eindruck vermuten lässt! „Nur“ mit den Befehlen von oben kannst du theoretisch die ersten Kapitel (Lektion 2) direkt programmieren, aber schön ist anders!

Die Lektionen helfen dir noch tiefer in die Um noch tiefer in die Welt und die Informatik eintauchen und mehr über deinen eigenen Code zu erfahren! Hier findest du Tipps, zum aufbauen eines individuellen Codes, leicht verständliche Erklärungen, Zusatzübungen sowie die Lösungen zu jedem Kapitel.

Auf eigene Faust

In den Selbstlernkusren kannst du dich eigenständig und wann du willst in die Themen einarbeiten und die Aufgaben in den Welten von Karel meistern.

Kurse mit Live Coaching

Erhalte eine Einführung zu jedem neuen Themen und individuelle Hilfe zu jedem Kapitel und deinem selbsterstellten Code!

Hinweis: Die Buchung der Lektionen ist in Bearbeitung und wird in den nächsten Wochen verfügbar sein. Nach erfolgreicher Buchung werden alle Lektionen für dich freigeschaltet.

Die Lernumgebung

Hier findest du alles, was du brauchst. Lerne in einem ersten Schritt das Programm kennen und damit umzugehen.

Lektion 0: Download und Installation
Lektion 1: Die Oberfläche Lernumgebung
Ein strukturierter Code

Die ersten Kapitel sind leicht zu programmieren und werden nach und nach immer schwerer. Schreibe deine ersten eigenen Programme, entdecke deinen individuellen (Programmier-)Stil und schaffe ein Fundament für alle nachfolgenden Kapitel und Programme!

Lektion 2: Deine ersten Programme (Kapitel 0.0.1 - 1.3.1)
Kontrollstrukturen

Die Welt um Karel herrum ändert sich stetig. Mit jedem neuen Laden des Kapitels sieht sie anders aus: Das stellt uns vor neue Herrausvorderungen! Karel muss jetzt bei jedem Schritt elbstständig entscheiden, was zu tun ist!

Lektion 3: Einführung in Kontrollstrukturen
Lektion 4: Kontrollstrukturen für Fortgeschrittene

Diese Lektion ist noch im Aufbu

0 und 1

Lerne das Binärsystem kennen und dmit umzugehen. Hinweis: Diese Lektion ist noch im Aufbu

Lektion 5: Das Binärsystem
Rekursion

Diese Lektion ist noch im Aufbu

In Abstimmung und Anlehnung an github.com/fredoverflow/karel