Wikipedia · einfach zusammengefasst · Stand
Kara (Programmierumgebung)
Kara ist eine Lernsoftware zur spielerischen Einführung in die Programmierung. Kara basiert auf dem Konzept endlicher Automaten und kann den sogenannten …
Inhalt6 Abschnitte
Grundidee und Bedeutung
Kara ist eine Lernsoftware zur spielerischen Einführung in die Programmierung. Die Lernumgebung basiert auf dem Konzept endlicher Automaten und gehört damit zu den sogenannten Minisprachen. Im Mittelpunkt steht ein programmierbarer Marienkäfer, der sich in einer einfachen zweidimensionalen Welt bewegt und Aufgaben unterschiedlicher Schwierigkeit löst, etwa Kleeblätter einzusammeln oder einen Weg durch ein Labyrinth zu finden.
Kara kann manuell über Schaltflächen oder durch ein Programm gesteuert werden. Die Welt enthält Marienkäfer, Baumstümpfe, Fliegenpilze und Kleeblätter. Kleeblätter können überquert, aufgenommen und abgelegt werden; Pilze können verschoben werden. Bäume sind unbeweglich und beenden das Programm, wenn Kara gegen sie läuft. Während ein Programm ausgeführt wird, lassen sich Geschwindigkeit und Pause steuern. Alle Versionen enthalten Aufgaben mit verschiedenen Schwierigkeitsgraden; einige Downloads bieten zusätzlich Lösungen.
Entwicklung und Auszeichnungen
Eine erste Version von Kara entstand von 1999 bis 2003 an der ETH Zürich unter Beteiligung von Jürg Nievergelt, Werner Hartmann, Raimond Reichert, Markus Brändle und Tobias Schlatter sowie weiteren Mitwirkenden. Heute wird Kara von Raimond Reichert laufend weiterentwickelt.
Im Jahr 2000 erhielt Raimond Reichert für seine Diplomarbeit „Ein spielerischer Einstieg ins Programmieren: Kara, der programmierbare Marienkäfer“ den Fritz-Kutter-Preis zur Förderung praxisbezogener Informatik. 2002 gewann er mit KaraToJava den European Academic Software Award im Bereich „Computer science“.
Versionen und gemeinsame Grundlagen
Beim Start kann die Kara-Umgebung ausgewählt werden. Abhängig von der Auswahl werden die passende Welt, das Programmfenster und die Hilfe geladen. Während der Programmausführung kann die Auswahl nicht geändert werden; Kara kann jedoch mehrfach instanziert werden.
Jede Entwicklungsumgebung enthält mindestens eine selbst erzeugbare Welt und eine Möglichkeit, Kara automatisch handeln zu lassen. Die konkrete Steuerung hängt von der Version ab. In der grafischen Kara-Oberfläche werden beispielsweise Zustände verwendet, während JavaKara, RubyKara, PythonKara und JavaScriptKara mit realen Programmiersprachen arbeiten.
Alle javafähigen Plattformen ab J2SE unterstützen Kara; mindestens die JRE ist erforderlich, für JavaKara sogar das JSDK. Kara ist als Freeware für Windows, Linux, macOS und weitere Betriebssysteme verfügbar. Die in den Basisdaten angegebene Version ist „versionslos“ (27. Februar 2007).
Kara als endlicher Automat
Die ursprüngliche grafische Umgebung führt in die Theorie endlicher Automaten ein. Zunächst werden Welten erstellt, anschließend wird mit einem grafischen Programmeditor festgelegt, wie Kara auf seine Umgebung reagiert.
Ein Programm besitzt einen Startpunkt. Von dort aus führt Kara Sensorprüfungen durch und wechselt abhängig von deren Ergebnissen in andere Zustände. Sensoren können boolesch geprüft werden, also nur die Werte wahr oder falsch liefern. Beispiele sind „Baum vorne?“ und „Kleeblatt unten?“. Auf das Ergebnis folgen Aktionen wie Bewegen oder der Übergang in einen anderen Zustand. So lernen Schülerinnen und Schüler, Zustände, Bedingungen, Sensoren und Aktionen zu einem Ablauf zu verbinden.
Übergang zu realen Programmiersprachen
JavaKara verwendet dieselbe Grundwelt wie Kara, wird aber nicht mit dem grafischen Editor, sondern mit Java programmiert. Kara kann bewegt werden, Aktionen ausführen und seine Sensoren abfragen. Die Bibliotheken kara, world und tools sind direkt in der allkara.jar-Klasse JavaKaraProgram implementiert. Es besteht vollständiger Zugriff auf übliche Java-Kontrollstrukturen und -Pakete.
Jedes JavaKara-Programm benötigt ein bestimmtes Grundgerüst:
public class /Dateiname/ extends JavaKaraProgram { public void myProgram() { // Hauptprogramm } }
Das Programmfenster enthält eine integrierte Entwicklungsumgebung mit automatischer Einrückung, Syntaxhervorhebung und Kompiliermöglichkeit.
Für Ruby, Python und JavaScript existieren ebenfalls Kara-Versionen. Die üblichen Kontrollstrukturen der jeweiligen Sprache stehen vollständig zur Verfügung. Wegen der einfacheren Syntax ist kein festgelegtes Grundgerüst nötig. Ein vollständiges RubyKara-Programm kann beispielsweise so aussehen:
while (!kara.treeFront){ kara.putLeaf(); if (kara.onLeaf()) kara.move(); }
Die Schleife läuft, solange kein Baum vor Kara steht; innerhalb der Schleife legt Kara ein Kleeblatt ab und bewegt sich weiter, wenn es auf einem Kleeblatt steht.
Spezialisierte Umgebungen
MultiKara richtet sich eher an fortgeschrittene Aufgaben der nebenläufigen Programmierung. Bis zu vier Marienkäfer können gleichzeitig eingesetzt und einzeln grafisch programmiert werden. Die Welt enthält zusätzliche Straßensymbole, die die Begehbarkeit einschränken, sowie Synchronisationsmechanismen. Ein Marienkäfer kann beispielsweise gesperrt werden, bis alle anderen Marienkäfer, die als Threads bezeichnet werden, einen bestimmten Programmpunkt oder Ort erreicht haben. Außerdem lassen sich Sensoren für die drei angrenzenden Felder rechts, links und vorne sowie für das eigene Feld definieren. Kleeblätter gelten für jeden Käfer einzeln.
TuringKara ist eine Turing-vollständige Version von Kara. Anstelle des Marienkäfers wird ein Lese- und Schreibkopf verwendet. Die Welt kann mit Einsen und Nullen, Doppelkreuzen oder Pfeilen belegt werden. Diese Symbole verhalten sich wie Kleeblätter und befinden sich stets unter dem Lesekopf; ihre Bedeutung ist nicht festgelegt. Der Lesekopf untersucht nur seinen aktuellen Standpunkt und nicht die drei umliegenden Felder. Die Programmierung erfolgt weiterhin grafisch mit Zuständen und Sensorprüfungen.
LegoKara passt die Programmausgabe an den Lego-Mindstorms-RCX an. Grafisch erstellte Programme können auf den RCX heruntergeladen werden. Die Welt enthält nur den Marienkäfer, Kleeblätter als Lichtsensor und Baumstümpfe als Drucksensor. Zusätzlich gibt es die RCX-Funktionen „links drehen“, „rechts drehen“ und „Einstellungen“. Weitere Varianten sind ScratchKara als Verbindung von Scratch und Kara sowie GreenfootKara als Implementierung von Kara in Greenfoot.
Lernvideos zu Kara (Programmierumgebung)
4:46
Wer hat sich die französischen Zahlen ausgedacht? | Karambolage | ARTE
Irgendwas mit ARTE und Kultur · 272.272 Aufrufe
4:42
Die Franzosen und das H | Karambolage | ARTE
ARTEde · 183.365 Aufrufe
5:01
Die französische Sprache in der Welt | Karambolage | ARTE
Irgendwas mit ARTE und Kultur · 163.670 Aufrufe
3:54
Die Unterschiede zwischen dem deutschen und dem französischen Schulsystem | Karambolage | ARTE
ARTE Fernweh · 100.573 Aufrufe