<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Kara_%28Programmierumgebung%29</id>
	<title>Kara (Programmierumgebung) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Kara_%28Programmierumgebung%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Kara_(Programmierumgebung)&amp;action=history"/>
	<updated>2026-06-26T10:14:30Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Kara_(Programmierumgebung)&amp;diff=638902&amp;oldid=prev</id>
		<title>imported&gt;Grundausstattung: lf</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Kara_(Programmierumgebung)&amp;diff=638902&amp;oldid=prev"/>
		<updated>2024-10-14T09:26:14Z</updated>

		<summary type="html">&lt;p&gt;lf&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Software&lt;br /&gt;
|Name=&lt;br /&gt;
|Logo=[[Datei:Kara logo.gif|Logo]]&lt;br /&gt;
|Screenshot=[[Datei:Asian multicolored lady beetle.jpg|zentriert|190px|Marienkäfer]]&lt;br /&gt;
|Beschreibung=Kara, ein Marienkäfer in einer 2D-Welt&lt;br /&gt;
|Hersteller=[[Raimond Reichert]]&lt;br /&gt;
|AktuelleVersion=versionslos&lt;br /&gt;
|AktuelleVersionFreigabeDatum=27.&amp;amp;nbsp;Februar 2007&lt;br /&gt;
|Betriebssystem=[[Microsoft Windows|Windows]], [[Linux]], [[macOS]], u.&amp;amp;nbsp;v.&amp;amp;nbsp;m.&lt;br /&gt;
|Kategorie=[[Programmierung|Programmier]]-[[Lernsoftware|Lernumgebung]]&lt;br /&gt;
|Lizenz=[[Freeware]]&lt;br /&gt;
|Deutsch=ja&lt;br /&gt;
|Website=[https://www.swisseduc.ch/informatik/karatojava/ www.swisseduc.ch]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kara&amp;#039;&amp;#039;&amp;#039; ist eine [[Lernsoftware]] zur spielerischen Einführung in die [[Programmierung]]. Kara basiert auf dem Konzept [[endlicher Automat]]en und kann den sogenannten [[Minisprache]]n zugeordnet werden.&lt;br /&gt;
&lt;br /&gt;
Kara ist ein programmierbarer [[Marienkäfer]], der in einer einfachen grafischen Welt lebt und Aufgaben unterschiedlicher Schwierigkeit lösen muss, zum Beispiel [[Klee#Blätter|Kleeblätter]] einsammeln oder den Weg durch ein [[Labyrinth]] finden.&lt;br /&gt;
&lt;br /&gt;
Neben der Version mit grafischem [[Editor (Software)|Programmeditor]] existieren auch Versionen, die den Übergang zu realen Programmiersprachen bilden können, wie zum Beispiel [[Java (Programmiersprache)|Java]], [[Ruby (Programmiersprache)|Ruby]] oder [[Python (Programmiersprache)|Python]], sowie Umgebungen zu speziellen Themen, zum Beispiel [[Turingmaschine]]n.&lt;br /&gt;
&lt;br /&gt;
Alle [[Java-Technologie|javafähigen]] [[Plattform (Computer)#Hardwareplattform|Plattformen]] (ab [[Java Platform, Standard Edition|J2SE]], mindestens die J[[Laufzeitumgebung|RE]], für JavaKara sogar das J[[Software Development Kit|SDK]]) unterstützen Kara.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Eine erste Version von Kara entstand von 1999 bis 2003 an der [[ETH Zürich]] unter der Beteiligung von [[Jürg Nievergelt]], [[Werner Hartmann (Didaktiker)|Werner Hartmann]], Raimond Reichert, Markus Brändle, Tobias Schlatter, mit Beiträgen von Philipp Boksberger, Horst Gierhardt, Reto Lamprecht, Remo Meier, Horst Müller, Nicole Völki, Samuel Zürcher. Kara wird heute von Raimond Reichert&amp;lt;ref name=&amp;quot;RaimondReichert&amp;quot;&amp;gt;SwissEduc: [https://www.swisseduc.ch/about/redaktion/reichert-raimond.html Raimond Reichert]&amp;lt;/ref&amp;gt; laufend weiterentwickelt.&lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
2000 gewann Kara als [[Diplomarbeit]] Raimond Reicherts den [[Fritz-Kutter Fonds|Fritz-Kutter-Preis zur Förderung praxisbezogener Informatik]] mit dem Titel &amp;#039;&amp;#039;„Ein spielerischer Einstieg ins Programmieren: Kara, der programmierbare Marienkäfer“&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;FritzKutter&amp;quot;&amp;gt;Fritz-Kutter Fonds: {{Webarchiv|url=http://www.kutter-fonds.ethz.ch/preistr.html |wayback=20060820043421 |text=Frühere Preisträger |archiv-bot=2019-04-22 03:42:26 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Er gewann 2002 mit &amp;#039;&amp;#039;KaraToJava&amp;#039;&amp;#039; den [[European Academic Software Award]] im Bereich &amp;#039;&amp;#039;„Computer science“&amp;#039;&amp;#039; ([[Englische Sprache|engl.]] für [[Informatik]]).&amp;lt;ref name=&amp;quot;EASA&amp;quot;&amp;gt;EASA 2002: {{Webarchiv|url=http://www.bth.se/llab/easa_2002.nsf/4b007747d14a37f0c1256c7d007aacad/018d54e5d1aa7693c1256b480039503e |wayback=20070927062635 |text=KaraToJava }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Versionen ==&lt;br /&gt;
[[Datei:Kara startscreen.gif|zentriert|Alle Kara-Versionen und -Derivate]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Beim Starten von Kara kann die Umgebung ausgewählt werden. Je nachdem werden die komplette Welt, das [[Fenster (Computer)|Programmfenster]] und die Hilfe geladen. Die Auswahl kann während der Programmausführung nicht geändert werden, allerdings kann Kara mehrfach [[Objekt (Programmierung)|instanziert]] werden.&lt;br /&gt;
----&lt;br /&gt;
[[Datei:Kara help.gif|mini|links|Das Kara-Weltfenster]]&lt;br /&gt;
Die [[Integrierte Entwicklungsumgebung]] sieht immer mindestens eine selbst erzeugbare Welt sowie eine Möglichkeit, Kara &amp;#039;&amp;#039;automatisch&amp;#039;&amp;#039; handeln zu lassen, vor.&lt;br /&gt;
&lt;br /&gt;
Kara an sich ist ein Marienkäfer in einer [[2D|zweidimensionalen]] [[Fiktiver Ort|Welt]], zusammen mit [[Baumstumpf|Baumstümpfen]], [[Fliegenpilz]]en und Kleeblättern. Kleeblätter können überquert, aufgenommen und abgelegt werden. Pilze können nur verschoben werden. Bäume sind allerdings fest und führen zum Programmende, wenn Kara gegen sie läuft.&lt;br /&gt;
&lt;br /&gt;
Gesteuert wird der Käfer entweder manuell über [[Schaltfläche]]n neben der Weltkarte oder über ein der jeweiligen Version entsprechendes „Programm“.&lt;br /&gt;
&lt;br /&gt;
Beim Ablauf eines Kara-Programmes, sei es nun logisch über Zustände in der grafischen Kara-Oberfläche oder mit [[Java (Programmiersprache)|Java]]Kara, kann die Geschwindigkeit jederzeit reguliert und die Berechnung pausiert werden.&lt;br /&gt;
&lt;br /&gt;
Alle Versionen enthalten immer Aufgaben in verschiedenen Schwierigkeitsgraden, in einigen [[Herunterladen|Downloads]] gibt es sogar Lösungen.&lt;br /&gt;
&lt;br /&gt;
=== Kara – Programmieren mit Automaten ===&lt;br /&gt;
[[Datei:Kara-programeditor.gif|mini|Der grafische Programmeditor von Kara]]&lt;br /&gt;
Kara ist Anlaufpunkt für die endliche [[Automatentheorie]]. Es kann vorerst an einfachen Welten ausprobiert werden, wie sich Kara in seiner Welt verhält und mit ihr interagieren kann.&lt;br /&gt;
&lt;br /&gt;
Nachdem wie üblich Welten erschaffen wurden, kann man in einem grafischen Programmeditor Karas Reaktionen bestimmen.&lt;br /&gt;
&lt;br /&gt;
Es gibt einen Startpunkt, den das Programm anfänglich anspringt. Von dort aus werden die ersten Sensorprüfungen vorgenommen. Es können verschiedene [[Sensor]]en wie „Baum vorne?“ oder „Kleeblatt unten?“ [[Boolesche Variable|boolesch]] geprüft und je nach Ergebnis des Sensors verschiedene Aktionen vorgenommen und in andere Zustände übergegangen werden.&lt;br /&gt;
&lt;br /&gt;
=== Umgebungen für reale Programmiersprachen ===&lt;br /&gt;
==== JavaKara – mit Java programmieren ====&lt;br /&gt;
[[Datei:Javakara-programeditor.gif|mini|links|Der JavaKara-Programmeditor mit dem Standardprogramm]]&lt;br /&gt;
JavaKaras Welt ist analog zu der des herkömmlichen Kara aufgebaut, nur wird nicht mehr mit der grafischen Oberfläche, sondern mit [[Java (Programmiersprache)|Java]] programmiert.&lt;br /&gt;
Kara kann wie üblich bewegt werden, Aktionen durchführen und seine Sensoren prüfen.&lt;br /&gt;
&lt;br /&gt;
Die Kara-Bibliotheken &amp;lt;code&amp;gt;kara&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;world&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;tools&amp;lt;/code&amp;gt; sind direkt in der &amp;lt;code&amp;gt;allkara.jar&amp;lt;/code&amp;gt;-Klasse &amp;lt;code&amp;gt;JavaKaraProgram&amp;lt;/code&amp;gt; implementiert. Es ist vollkommener Zugriff auf übliche Java-[[Kontrollstruktur]]en und -Pakete gegeben.&lt;br /&gt;
&lt;br /&gt;
Alle JavaKara-Programme müssen einem bestimmten Grundgerüst (und natürlich geltenden Java-Regeln) folgen, damit sie [[Syntax|syntaktisch]] richtig sind und damit korrekt interpretiert werden können.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 public class /*Dateiname*/ extends JavaKaraProgram {&lt;br /&gt;
    public void myProgram() {&lt;br /&gt;
       // Hauptprogramm&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Programmfenster bietet außerdem eine [[Integrierte Entwicklungsumgebung|integrierte „Entwicklungsumgebung“]] (IDE) mit automatischer Einrückung und [[Syntaxhervorhebung]] sowie eine integrierte [[Compiler|Kompiliermöglichkeit]].&lt;br /&gt;
&lt;br /&gt;
Hauptentwickler Raimond Reicher selbst über JavaKara:&lt;br /&gt;
: &amp;#039;&amp;#039;„[JavaKara] ist sehr zeitabhängig. Kara hingegen ist zeitlos und auch noch aktuell, wenn Java eines Tages nicht mehr aktuell ist.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== RubyKara, PythonKara, JavaScriptKara ====&lt;br /&gt;
Wie für Java gibt es inzwischen weitere Versionen von Kara für die Programmiersprachen [[Ruby (Programmiersprache)|Ruby]], [[Python (Programmiersprache)|Python]] und [[JavaScript]].&lt;br /&gt;
&lt;br /&gt;
Die üblichen Kontrollstrukturen der jeweiligen Sprache stehen vollständig zur Verfügung.&lt;br /&gt;
Ein bestimmtes &amp;quot;Grundgerüst&amp;quot; ist anders als bei JavaKara wegen der einfacheren Syntax dieser Sprachen nicht nötig.&lt;br /&gt;
Ein sehr einfaches, vollständiges Programm für RubyKara sieht z.&amp;amp;nbsp;B. folgendermaßen aus:&lt;br /&gt;
 while (!kara.treeFront){  // Eine while-Schleife läuft solange wie der wert true ist, also wahr&lt;br /&gt;
 //!kara.treeFront Bedeutet: Ist kein Baum vor mir&lt;br /&gt;
   kara.putLeaf();&lt;br /&gt;
 if (kara.onLeaf()) //if (Bedingung) und&lt;br /&gt;
   kara.move();// die if-Abfrage zählt nur 1 Zeile darunter&lt;br /&gt;
 }// ende der while-Schleife&lt;br /&gt;
&lt;br /&gt;
=== Umgebungen zu bestimmten Themen ===&lt;br /&gt;
[[Abspaltung (Softwareentwicklung)|Derivate]] von Kara nutzen die gleiche Welt wie die normalen Kara-Versionen, ändern aber die Akteure und Gegenstände in ihr fundamental. Sie haben weniger mit dem normalen Lehrmittel Kara zu tun und erfordern teilweise zusätzliches Material oder Wissen.&lt;br /&gt;
&lt;br /&gt;
==== MultiKara – nebenläufige Programmierung ====&lt;br /&gt;
MultiKara ähnelt Kara sehr, eignet sich aber eher für fortgeschrittenere Zwecke und wird, wenn Kara als Lernumgebung genutzt wird, meistens (vorerst) übersprungen.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum normalen Kara können hier bis zu vier Marienkäfer [[Nebenläufigkeit|nebenläufig]] eingesetzt werden und einzeln – immer noch grafisch – programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Karas Welt wird um [[Einbahnstraße|Straßensymbole]], welche die Begehbarkeit eines Feldes einschränken, sowie mehrere [[Synchronisation]]smechanismen ergänzt. So kann ein Marienkäfer beispielsweise solange [[Lock|gesperrt]] werden, bis alle anderen Marienkäfer (&amp;#039;&amp;#039;[[Thread (Informatik)|Threads]]&amp;#039;&amp;#039;) einen bestimmten Punkt im Programmablauf oder der Welt erreicht haben.&lt;br /&gt;
&lt;br /&gt;
Außerdem können eigene Sensoren für die drei Felder um den Marienkäfer (rechts, links, vorne) und sein eigenes definiert werden. Kleeblätter gelten für jeden Käfer einzeln.&lt;br /&gt;
&lt;br /&gt;
==== TuringKara – Turingmaschinen anschaulich ====&lt;br /&gt;
[[Datei:Turingkara-worldeditor.gif|mini|Karas Welt Turing-vollständig&amp;lt;br /&amp;gt;rot: Lesekopf]]&lt;br /&gt;
TuringKara ist eine [[Turing-Vollständigkeit|Turing-vollständige]] Version von Kara und bietet statt des Marienkäfers Kara einen Lese- und Schreibkopf (kurz nur Lesekopf, vergleiche [[Festplatte]]).&lt;br /&gt;
&lt;br /&gt;
Statt mit Natursymbolen kann die Welt mit [[Binärcode|Einsen und Nullen]], [[Rautezeichen|Doppelkreuz]] oder [[Pfeil (Symbol)|Pfeilen]] belegt werden. Sie verhalten sich wie die Kleeblätter aus Kara, sind also immer unter dem Lesekopf. Es gibt keine festgelegten Funktionen für die einzelnen Symbole, so können die Pfeile beispielsweise als Wegweiser in der Welt (ähnlich einer [[Lochkarte]]) oder als Rechenoperatoren interpretiert werden.&lt;br /&gt;
&lt;br /&gt;
Folgerichtig kann der Lesekopf nicht mehr – wie der Marienkäfer in Kara – die drei umliegenden Felder untersuchen, sondern nur noch seinen momentanen Standpunkt.&lt;br /&gt;
Es wird wieder grafisch mit Zuständen und Sensorprüfungen programmiert.&lt;br /&gt;
&lt;br /&gt;
==== LegoKara – Kara für Lego Mindstorms ====&lt;br /&gt;
Kara modifiziert seinen Programmausgang in LegoKara [[Lego Mindstorms|RCX]]-gerecht. Die grafisch geschriebenen Programme können auf den RCX heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
Die Welt bietet nur noch den Marienkäfer (LegoKara), Kleeblätter (Lichtsensor) und Baumstümpfe (Drucksensor), allerdings kommen drei RCX-Funktionen &amp;#039;&amp;#039;links drehen&amp;#039;&amp;#039;, &amp;#039;&amp;#039;rechts drehen&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Einstellungen&amp;#039;&amp;#039; hinzu.&lt;br /&gt;
&lt;br /&gt;
=== Weitere Versionen ===&lt;br /&gt;
* ScratchKara, eine Verknüpfung der Programmierumgebungen [[Scratch (Programmiersprache)|Scratch]] und Kara&lt;br /&gt;
* GreenfootKara, eine Implementierung von Kara in [[Greenfoot]]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Niki – der Roboter]]&lt;br /&gt;
* [[Logo (Programmiersprache)]]&lt;br /&gt;
* [[Java-Hamster-Modell]]&lt;br /&gt;
* [[Bildungsorientierte Programmiersprachen]]&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Raimond Reichert, Jürg Nievergelt, Werner Hartmann: &amp;#039;&amp;#039;Programmieren mit Kara&amp;#039;&amp;#039;. [[Springer Science+Business Media|Springer-Verlag]], 2. Auflage, Berlin 2005, ISBN 3-540-23819-0&lt;br /&gt;
* R. Reichert, J. Nievergelt, W. Hartmann: [https://www.swisseduc.ch/informatik/karatojava/docs/spielerisch_programmieren.pdf Ein spielerischer Einstieg in die Programmierung mit Java] (PDF; 447&amp;amp;nbsp;kB), Informatik-Spektrum 23 (5), Oktober 2000. Springer Verlag.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.swisseduc.ch/informatik/karatojava/index.html KaraToJava] auf [[SwissEduc]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Freeware]]&lt;br /&gt;
[[Kategorie:Lehrmittel]]&lt;br /&gt;
[[Kategorie:Java-Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Mindstorms]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Grundausstattung</name></author>
	</entry>
</feed>