Kara: Ein theoriebasierter Ansatz f ¨ ur Lernumgebungen zu fundamentalen Konzepten der Informatik Markus Br¨ andle, Werner Hartmann, J¨ urg Nievergelt, Raimond Reichert, Tobias Schlatter Technology & Education Swiss Federal Institute of Technology ETH Zentrum, 8092 Z ¨ urich, Switzerland (braendle | hartmann | nievergelt | reichert) @ inf.ethz.ch Abstract: In der heutigen Informationsgesellschaft sind Informatikkenntnisse und die Beherrschung von Informations- und Kommunikationstechnologien wichtige Schl¨ us- selqualifikationen. Zentrale Themen der Informatik sind die Formalisierung sowie Da- ten, Algorithmen und Programme. Das Unterrichten dieser Konzepte als Teil der All- gemeinbildung ist anspruchsvoll, und die heutigen Ans¨ atze sind oft nicht zufrieden- stellend. Ben¨ otigt werden einfache, intuitive, qualitativ hochstehende Lernumgebun- gen als Unterst¨ utzung f¨ ur Lehrerinnen und Sch¨ uler. Die theoretische Informatik bie- tet verschiedene Modelle, die sich ausgezeichnet als Basis f¨ ur solche Lernumgebun- gen eignen. Die von uns entwickelten Kara -Lernumgebungen basieren auf endlichen Automaten und umfassen: Eine Umgebung zur Einf¨ uhrung in die Programmierung (Kara); einen Ansatz zum Unterrichten der fundamentalen Konzepte der Concurrency (MultiKara); eine Einf¨ uhrung in die Lehre der Berechenbarkeit basierend auf zwei- dimensionalen Turing Maschinen (TuringKara); einen reibungslosen ¨ Ubergang zum Programmieren mit Java (JavaKara). Die Kara-Lernumgebungen werden an in vielen Schulen auf unterschiedlichen Stufen eingesetzt. Nachfolgend stellen wir die einzel- nen Umgebungen vor, im speziellen MultiKara und TuringKara. 1 Einleitung In der heutigen Informationsgesellschaft spielt die Beherrschung von Informations- und Kommunikationstechnologien eine immer gr¨ ossere Rolle. Diesem Umstand muss die schu- lische Grundausbildung Rechnung tragen. Im Zentrum sollten langlebige Konzepte der Informatik allgemein bildender Natur stehen. Unter anderem sollen Sch¨ ulerinnen und Sch¨ uler ein Verst¨ andnis f¨ ur Algorithmen entwickeln. Dieser Standpunkt wird ausf¨ uhrlich vorgestellt in [HN02]. Um ein Verst¨ andnis f¨ ur Algorithmen zu entwickeln, m¨ ussen Sch¨ ulerinnen die Gelegenheit haben, selber Algorithmen in konkrete Programme umzusetzen und so eigene Program- miererfahrung zu sammeln. Ein solcher Einstieg ins Programmieren sollte den Sch¨ ulern so vermittelt werden, dass sie sich auf das Wesentliche konzentrieren k¨ onnen. Die Sch ¨ uler m¨ ussen mit wenig Aufwand in kurzer Zeit erste lauff¨ ahige Programme erstellen k¨ onnen. Professionelle Programmiersprachen (Java, C, Ada) eignen sich nur beschr¨ ankt, da sie