In diesem Lernbereich steht das Programmieren (der Informatiker nennt es vornehmer "Problemlösen mit Hilfe von Algorithmen") im Vordergrund. Als Entwicklungsumgebung für unsere Programme verwenden wir "Robot Karol". Mit Hilfe eigener Anweisungen kann hier ein virtueller kleiner Roboter über den Bildschirm gesteuert werden. Dabei kann er Mauern aus Ziegeln legen oder entfernen bzw. Markierungen längs seines Weges legen oder entfernen.
Robot Karol ist eine speziell für SchülerInnen entwickelte einfache Entwicklungsumgebung und ist unter folgender Internetadresse frei verfügbar: https://www.mebis.bayern.de/infoportal/faecher/mint/inf/robot-karol/
Grundidee
Karol ist ein kleiner, virtueller Miniroboter. Er ist in der Lage über Sensoren Signale aus seiner Umwelt aufzunehmen (z.B. "Stehe ich vor einer Wand?" oder "Liegt vor mir ein Ziegel?"). Die aufgenommenen Signale verarbeitet Karol mit Hilfe so genannter Algorithmen, die ihm der Programmierer eingibt. Im Ergebnis der Abarbeitung dieser Anweisungen ermittelt Karol wie er sich im weiteren Verlauf verhalten und auf die Signale aus seiner Umwelt reagieren soll. Über seine Aktoren (Hände und Füße) setzt Karol die Anweisungen in die Praxis um, indem er durch seine Welt läuft und dabei Ziegel und Markierungen legt oder entfernt.
Karol ist also ein sehr schönes Beispiel für einen so genannten Regelkreis (siehe untere Abbildung). Unsere Aufgabe wird es sein Anweisungen zu schreiben, wie Karol auf Signale aus seiner Umwelt reagieren und entsprechend handeln soll.
Die Oberfläche der Entwicklungsumgebung
Der Bildschirm von Karol ist viergeteilt (siehe Abbildung oben).
- Oben links: Mit einem Rechtsklick in das Programmfenster (Eingabe, Programmtest) können alle verfügbaren Befehle und Strukturen angezeigt und gewählt werden. Natürlich können die Anweisungen auch "von Hand" geschrieben werden. Die Abarbeitung der Anweisungen durch das Programm erfolgt von links nach rechts und von oben nach unten.
- Oben rechts: Die Welt von Karol (steuerbar durch Tastatur, Maus oder Programm) veranschaulicht den Programmablauf.
- Unten links: Das Anweisungsfenster zeigt alle zur Verfügung stehenden Befehle und Strukturen zum Programmieren. Aus diesem Grund ist es nicht nötig, die Befehle auswendig zu lernen.
- In der Mitte: Die Symbolleiste dient zum Speichern, Öffnen, Ausführen und Testen von Programmen.
- Unten rechts: Hinweise und Meldungen (Programmname, Name der Welt oder eventuelle Fehlermeldungen während des Programmablaufs) werden im rechten unteren Teilfenster angezeigt.
Nützliche Programmierhinweise
- Programmcode wird bereits während der Eingabe auf Korrektheit überprüft. Bei korrekt erkannter Schreibweise werden Kontrollstrukturen schwarz, vordefinierte Bedingungen und Anweisungen blau dargestellt
- Kommentare für den Programmierer beginnen mit // und dienen der übersichtlichen Gestaltung. Kommentare über mehrere Zeilen müssen in geschweifte Klammern {...} gesetzt werden.
- Eingerückte Zeilen demonstrieren deren logische Zusammengehörigkeit. Besonders wichtig ist dies bei komplexeren Anweisungen.
- Will man eine bestimmte vordefinierte Welt zu einem bestimmten Programm gleich mit öffnen, muss die Welt vorher per Hand aufgebaut und im gleichen Ordner unter dem gleichen Namen wie das Programm gespeichert werden.
Die Konfiguration von Karol
Karol lässt sich über das Menü Einstellungen -> Karol konfigurieren.
Aufgabe: Konfigurieren Sie Karol so, dass er folgende Eigenschaften erfüllt:
- Karol soll überprüfen können, wie viele Ziegel er bei sich trägt. Er soll maximal 10 Ziegel tragen können und aktuell 3 Ziegel tragen.
- Karol soll maximal einen Ziegel überspringen können.
- Bei einem Programmfehler bricht das Programm ab.
Steuern von Karol im Direktmodus (Handsteuermodus)
Über die Symbolleiste in der Mitte der Oberfläche erreicht man die Steuerbefehle für Robot Karol. Die Sensoren sind im Direktmodus nicht verfügbar.
Aufgabe: Bewegen Sie Robot Karol durch seine Welt und lassen Sie ihn verschiedene Aktionen ausführen. Überprüfen Sie auch sein Verhalten bei folgenden Aktionen:
- 6 Ziegel übereinander stapeln,
- einen Ziegel auf eine Marke legen,
- auf verschiedene und von verschiedenen Stufen einer Treppe springen.
Ein erstes Beispielprogramm: Robot Karol holt Material
Aufgabe: Karol will einen Stapel aus drei Ziegeln bearbeiten. Dazu muss er ihn erst holen (s. Abbildung). Schreiben Sie ein einfaches Programm für dieses Problem.
Ausgangssituation | Endzustand |
Hinweise:
- Die Ausgangssituation (siehe linkes Bild) müssen Sie zunächst im Direktmodus erzeugen. Speichern Sie danach die erzeugte Welt ab.
- Das Programm sollte wegen der besseren Lesbarkeit in die Anweisungen Programm ... *Programm eingeschlossen werden.
Theoretischer Exkurs: Wiederholung Algorithmen
Die Steuerung von Karol erfolgt durch die Angabe einer Folge von Anweisungen, die vom Programmierer erstellt und anschließend vom Roboter abgearbeitet werden. Eine solche Folge von Anweisungen, die so formuliert sind, dass sie von einer automatisch arbeitenden Maschine abgearbeitet werden können nennt man einen Algorithmus. Der Name Algorithmus geht zurück auf den arabischen Mathematiker Al-Chwarizmi, der in seinem Mathematiklehrbuch eine Reihe von Rechenverfahren zur Lösung mathematischer Probleme beschrieb. In der lateinischen Übersetzung wurde aus Al-Chwarizmi zunächst Al-gorismus und später Algorithmus.
Mit Algorithmen haben Sie sich schon im Informatikunterricht der Klasse 8 beschäftigt.
Aufgabe: Wiederholen Sie hierzu im LB Informatische Grundbildung auf den Seiten 10 bis 13 die Definition, Eigenschaften und Darstellungsmöglichkeiten von Algorithmen.