Kapitel 1
Kapitel 1: Karel den Roboter kennenlernen
Karel ist ein kleiner Roboter, mit dem man die Grundideen des Programmierens in einer sehr einfachen Umgebung lernen kann. Statt sofort mit allen Details einer großen Programmiersprache zu starten, konzentrieren wir uns zuerst auf Befehle, Reihenfolgen und das Lösen kleiner Probleme.
Die Idee geht auf Rich Pattis zurück, der in den 1970er Jahren an Stanford eine Lernumgebung für den Einstieg in die Informatik entwickelte. Der Roboter bekam den Namen Karel, in Anlehnung an den tschechischen Schriftsteller Karel Capek, dessen Theaterstück das Wort „Roboter“ bekannt machte.
Was ist Karel?
Karel lebt in einer kleinen Welt aus Feldern. Du gibst Karel Befehle, und aus diesen Befehlen entsteht ein Programm. Am Anfang versteht Karel nur wenige primitive Befehle. Später lernst du, Karel neue Fähigkeiten beizubringen.
Karel-Programme sehen schon wie Python aus, sind aber viel kleiner. Dadurch bleiben die Regeln überschaubar, während die eigentliche Denkarbeit dieselbe ist: ein Problem verstehen, einen Plan machen und ihn Schritt für Schritt in Code ausdrücken.
Karels Welt
Karels Welt besteht aus Reihen und Spalten. Eine Reihe verläuft waagerecht von Westen nach Osten, eine Spalte senkrecht von Süden nach Norden. Ein Schnittpunkt aus Reihe und Spalte ist ein Feld. Karel steht immer auf einem Feld und blickt nach Norden, Osten, Süden oder Westen.
In der Welt können Beeper liegen. Karel kann einen Beeper nur erkennen, wenn er auf demselben Feld steht. Wände sind feste Hindernisse: Karel kann nicht durch sie hindurchgehen und muss einen anderen Weg finden. Der Rand jeder Welt ist ebenfalls durch Wände begrenzt.
Karels Befehle
Am Anfang kennt Karel nur eine kleine Auswahl an Befehlen. Nutze die Buttons in der Übung unten, um die Startwelt so zu verändern, dass sie zur Zielwelt passt.
| Befehl | Bedeutung |
|---|---|
| move() | Karel geht ein Feld nach vorne. Wenn eine Wand im Weg ist, darf Karel den Schritt nicht ausführen. |
| turn_left() | Karel dreht sich um 90 Grad nach links, also gegen den Uhrzeigersinn. |
| pick_beeper() | Karel hebt einen Beeper auf dem aktuellen Feld auf und legt ihn in seine Tasche. Das geht nur, wenn dort ein Beeper liegt. |
| put_beeper() | Karel legt einen Beeper aus seiner Tasche auf dem aktuellen Feld ab. Das geht nur, wenn die Tasche nicht leer ist. |
Die leeren Klammern gehören zur Schreibweise der Befehle. Später wirst du Funktionen kennenlernen, bei denen Informationen zwischen den Klammern stehen können. Bei Karels Grundbefehlen bleiben sie leer, müssen aber trotzdem geschrieben werden.
Wenn Karel etwas Unmögliches versucht, zum Beispiel durch eine Wand zu laufen oder einen nicht vorhandenen Beeper aufzuheben, entsteht ein Fehler. Ein gutes Programm vermeidet solche Situationen durch einen klaren Plan.
Ausprobieren
Aufgabe
Der erste Schritt
Bringe Karel zum Beeper und sammle ihn auf.
Ziel
- Karel soll am Ende in Spalte 2, Zeile 1 stehen.
- Karel soll nach Osten schauen.
- In der Welt sollen keine Beeper liegen.
- Karel soll 1 Beeper in der Tasche haben.
Karel-Welt
Aktuelle Welt
3 x 1
Blick nach Osten
1,1
2,1Karel-Welt
Zielwelt
3 x 1
Blick nach Osten
2,1Aktuell unterstützt der Runner Karel-Befehle, eigene Funktionen und einfache for- und while-Schleifen.
Feedback
Schritte: 0
Status: Noch nicht gelöst