Karel the Robot

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 Kapital für Kapitel viele 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 Idee hinter dem Programm

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.

Das bedeutet, dass alles, was du in diesem Kurs lernst, später auch in Programmiersprachen wie C, C#, C++, Java, Python, … und natürlich auch direkt mit dem Arduino-Mikrocontroller funktioniert.

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.

Download und Installationsanleitung:

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 Feflermeldung.

Wände können durch if/else-Abfragen erkannt werden (siehe Lektion 2)

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.

Die Welt von Karel

Das Menu
Dein Code
Die visuelle Umsetzung

Die verkürzte Sprachreferenz zu Karel

Dir stehen 11 vor implementierte Funktionen/Befehle zur Verfügung, um Karel zu programmieren. Bis Kapitel „1.3.1 harvestTheField“ (Lektion 1) werden jedoch nur 6 der 11 Befehle benötigt:

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

Die fertie Lösung abzuschreiben ist langweilig!

Um die Grundlagen der Programmierung zu meistern, musst du dich selbst an den einzelnen Kapiteln versuchen.

Zu jedem Kapitel findest du Tipps, die dir helfen können, ohne die Lösung zu verraten.

Die (eine) Lösung zu jedem Kapitel findest du natürlich auch. Diese soll jedoch „nur“ dazu dienen, dass du deinen Code vergleichen kannst, denn … und das ist wichtig!

Jeder Code ist anders – jeder Programmierer hat seinen eigenen Stil. Für den Anfang ist es am Wichtigsten, dass euer Code funktioniert und das macht, was er soll. Später schauen wir, dass der Code elegant wird.

Hilfe Karel dabei, seine Ziel („goal“) zu erfüllen.

Viel Spaß mit der Lernumgeung „Karel the Robot

Die Lernumgebung speicher automatisch.

Ihr könnt sie also einfach schließen

Jedes mal, wenn ihr auf „start“ klickt, wird eine neue Textdatei Karel im Home-Verzeichniss angelegt.

 

 

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.

0.0.1 "karelsFirstProgram"

Dein Code (die Befehle aus der Tabelle) musst zwischen die geschweiften Klammern { … }.

 

Nutze die Tasten F1 – F6

Manchmal sind die „F-Tasten“ bereits mit anderen Funktionen belegt, das erkennst du daran, wenn adere/zusätzliche Symbole auf den Tasten sind. Dann einfach die Fn-Taste gedrückt halten, um sie zu nutzen.

void karelsFirstProgram() {          // (Neue) Funktion
    moveForward();
    pickBeeper();
    moveForward();
    turnLeft();
    moveForward();
    turnRight();
    moveForward();
    dropBeeper();
    moveForward();
}

1.1.1 "obtainArtifact"

Erstelle eine neue Funktion.

 

Was Funktionen sind, wie man mit ihnen arbeitet und auf was man beim erstellen achten sollte, wird in Lektion 1 behandelt. Hier reicht es zu wissen, dass du den Namen des Kapitels als Funktionsnamen verwenden musst.

void obtainArtifact(){

turnRight();
moveForward();
turnLeft();

moveForward();
moveForward();
moveForward();

turnLeft();
moveForward();
pickBeeper();
moveForward();
turnLeft();

moveForward();
moveForward();
moveForward();

turnLeft();
moveForward();
turnLeft();

}

Es gibt mehrer Möglichkeiten den Code zu schreiben.

 

Im Video wurde beispielsweise eine Zählschleife verwendet.
Auch diese wird in Lektion 1 genauer betrachtet.

 

Lektion 1: Deine ersten Programme

Lektion 2: Fallunterscheidungen

Ist euch schon aufgefallen, dass sich das Layout der Kapitel (also das Aussehen der einzelnen Kapitel) bei jedem Neustart verändert?

Lektion 3: Kontrollstrukturen für Fortgeschrittene

Lektion 4: Das Binärsystem

Lektion 5: Rekursion