Kara der programmierbare Marienkfer In der Welt des
Kara, der programmierbare Marienkäfer !
In der Welt des Marienkäfers. . . gibt es: • unbewegliche Baumstümpfe, • Pilze, die Kara verschieben und • Kleeblätter, die Kara legen und aufnehmen kann. . . und natürlich Kara selbst!
Karas Welt
Kara, der Marienkäfer. . . versteht einige Befehle, die er folgsam ausführt: mache einen Schritt vorwärts! drehe um 90° nach links! drehe um 90° nach rechts! lege ein Kleeblatt hin! nimm ein Kleeblatt auf!
Übung 1 • Die Welt von Kara können Sie selber gestalten: platzieren Sie beliebig viele Gegenstände auf der Wiese. Ziehen Sie mit Drag-and-Drop den gewünschten Gegenstand auf die Wiese. Will man einen Gegenstand löschen, so zieht man ihn mit Drag-and-Drop von der Wiese auf den Mülleimer. Bauen Sie die folgende Welt für Kara auf: Aufgabe: Kara soll nun zum Baumstumpf gehen. Unterwegs soll er jedes Kleeblatt aufnehmen. Liegt kein Kleeblatt auf einem Feld, so soll Kara eines hinlegen. Benutzen Sie dazu die Befehle am linken Rand. Am Schluss soll es so aussehen: Kara soll nun noch einen Schritt geradeaus machen. Was passiert?
Kara der Marienkäfer… Ziel: Kara so zu programmieren, dass er seinen Auftrag in verschiedenen Welten ausführen kann. . hat Sensoren, mit denen er seine Umwelt wahrnimmt: stehe ich vor einem Baumstumpf? ist links von mir ein Baumstumpf? ist rechts von mir ein Baumstumpf? stehe ich vor einem Pilz? stehe ich auf einem Kleeblatt?
Übung 2 a) Welche Sensoren würde man einsetzen, damit Kara den Auftrag aus Übung 1 erledigen kann? b) Gegeben sei diese Welt: Kara startet in der angezeigten Position und macht dann nacheinander die folgenden Aktionen: Start Füllen Sie folgende Tabelle aus. Überlegen Sie was Karas Sensoren in jedem Schritt „sehen“. × × × nach 1 Schritt nach 2 Schritten nach 3 nach 4 nach 5
Automaten im Alltag
Beispiel Geldautomat Fehlermeldung warte auf Karte gültig ? Nein Ja Fehlermedung neuer Bildschirm warte auf Abschluss der PIN-Eingabe neuer Bildschirm PIN korrekt ? Nein Ja warte auf Funktionswahl CASH-Funktion? Bezug-Funktion?
Automaten in der Informatik ØEin Automat bleibt in einem Zustand und wartet darauf über einen Sensor von aussen einen … ØInput zu erhalten. Angestossen durch diesen Input wählt er den … ØÜbergang, der mit dem gegebenen Input beschriftet ist, führt die angegebenen … ØAktionen aus und wechselt entweder in einen anderen Zustand oder bleibt im alten Zustand. ØJeder Automat hat einen Startzustand, in dem er mit der Arbeit beginnt.
Automaten in der Informatik Automaten basieren auf „Wenn…, dann…“-Aussagen. Wenn gewisse Bedingungen erfüllt sind, dann sollen bestimmte Aktionen ausgeführt werden.
Schüler und Zustände Die Versetzung ändert den Klassenzustand eines Schülers. Sitzen bleiben bedeutet: der Zustand bleibt, die Klasse wird wiederholt.
Übung 3 Zeichnen Sie einen Automaten, der einen Lichtschalter steuert. Ein Sensor meldet dem Automaten, wenn der Schalter gedrückt wurde. Die Aufgabe ist dann gut gelöst, wenn: der Automat korrekt arbeitet. die Zustände sprechende Namen haben. alle Übergänge eingezeichnet und mit Input und Aktionen beschriftet sind.
Lösung Lichtschalter Ein Lichtschalter hat nur zwei Zustände, ein und aus. Ein „Sensor“ meldet, wenn der Schalter betätigt wird. drücken start Licht aus Licht ein drücken
Übung 4 Zeichnen Sie einen Automaten für die Steuerung eines Videorecorders. Der Videorecorder hat der Einfachheit halber nur die folgenden Tasten: Bei dieser Aufgabe sollen alle möglichen Übergänge eingezeichnet werden. Das heisst, dass es aus einem Zustand für alle möglichen Inputs einen Übergang geben muss. Unter Umständen führt der Übergang wieder in denselben Zustand zurück.
Lösung Videogerät Spulen „forward“ „rewind“ „play“ start „pause“ Video abspielen Nichts tun Warten „play“ „stop“ Time out
Getränkeautomaten Dieser Automat. . . • akzeptiert nur • zeigt eingeworfenen Betrag an 0. 00 • gibt nur für 3, - aus
Das Leben eines Getränkeautomaten. . . 0, - 1. 00 2. 00 3. 00 1, - 2. 00 Coke 0. 00 Sprite 3. 00 3, -
Das Leben eines Getränkeautomaten. . . Frage: oder 0, - Zustand ? • stellt sich der Automat in einem Zustand • werden von seinen Sensoren beantwortet 1, - 2, - 3, -
Das Leben eines Getränkeautomaten. . . Frage: oder 0, - ? 1. 00 • die Antwort darauf gibt der Automat in einem Übergang • führt dabei gewisse Aktionen aus 2. 00 3. 00 1, - 2. 00 Coke Übergang 0. 00 Sprite 3. 00 3, -
Kara und Automaten ØDer Automat ist Karas Gehirn. Ø Er bekommt von den Sensoren Informationen über die Umgebung. Das ist der Input für unseren Automaten. Ø Die Aktionen unseres Automaten sind die Befehle an Kara, die er ausführen soll.
Kara, der Blättersammler Zustände Welche Zustände kommen vor?
Kara, der Blättersammler Übergänge und Aktionen Welche Übergänge kommen vor und welche Aktionen sollen ausgeführt werden? Karas Aktionen nächster Zustand × Blätter sammeln × × - Stopp
Übung 5 : Kara, der Blättersammler Aufgabe: Zeichnen Sie mit Hilfe der Zustände und der entsprechenden Übergänge den dazugehörigen Automaten.
Lösung Kara, der Blättersammler Automat
Übung 6 In dieser Aufgabe geht es darum einen bestehenden Automaten zu analysieren. Aufgabe: Gegeben ist die unten stehende Wiese. Zeichnen Sie den Weg ein, den Kara geht, wenn er durch den oben abgebildeten Automaten gesteuert wird. Hinweis: Wenn Kara während eines Ausweichmanövers in einen Baum rennt, dann wird eine Fehlermeldung ausgegeben und der Automat wechselt in den Stoppzustand.
Programmieren mit Kara Der Stoppzustand ist standardmässig schon gezeichnet. Im Feld, wo der Stoppzustand ist, kann der Automat gezeichnet werden. Links davon sind alle Operationen, die benötigt werden, um einen Automaten zu zeichnen.
Zustände einfügen 1 Die folgenden Operationen stehen zur Verfügung, um einen Automaten zu zeichnen: Um einen neuen Zustand zu erhalten, klickt man auf dieses Symbol. Es geht ein Zustandseditor auf, in dem du den Zustand editieren kannst. Einen Zustand kann man verändern, in dem man ihn zuerst mit der Maus anklickt und dann mit einem Mausklick auf dieses Symbol den Zustandseditor öffnet. Jeder Automat muss einen Startzustand haben. Markieren Sie einen Zustand und klicken Sie mit der Maus auf dieses Symbol, um den Zustand als Startzustand auszuzeichnen. Ein Mausklick auf dieses Symbol löscht den zuvor mit der Maus ausgewählten Zustand. Einen Übergang zwischen zwei Zuständen erhält man, wenn im Ausgangszustand in den äusseren Ring klickt, die Maustaste gedrückt hält, den Mauszeiger in den Folgezustand zieht und die Maustaste wieder los lässt.
Zustände einfügen 2 ØZeichnen Sie einen neuen Zustand mit einem Mausklick auf das dieses Symbol. ØGeben Sie dem neuen Zustand im Namensfeld einen entsprechenden Namen. ØWählen Sie dann die benötigten Sensoren und ziehen sie mit Drag-and-Drop in den Rahmen unter „Benutzte Sensoren“.
Übergänge zeichnen ØKlicken Sie in den äusseren Rand des Startzustandes und ziehen Sie den Mauszeiger auf den Folgezustand, ohne die Maustaste loszulassen. Hinweis: In der Ansicht des Automaten wird immer nur ein Übergang dargestellt.
Input und Aktionen ØDie Beschriftung der Übergänge mit Input und Aktionen machen wir im Übergangseditor. ØFügen Sie alle Sensorbelegungen und die Anweisungen an Kara den Übergängen hinzu.
Programm laufen lassen
Kara, der Blättersammler Aufgabe: Schreiben Sie ein Programm, das Kara geradeaus bis zum nächsten Baumstumpf führt. Kara weiss, dass geradeaus vor ihm ein Baumstumpf steht. Liegt auf einem Feld ein Blatt, soll Kara es aufnehmen. Beim Baumstumpf angekommen ist das Programm zu beenden. (Achtung: Nur wenn ein Baumstumpf vor Kara liegt, läuft das Programm korrekt. ) Das Bild links zeigt die Ausgangslage und auf dem Bild rechts sieht man wie es aussehen muss, nachdem Kara Ihren Auftrag erledigt hat.
Übung 7: Kara sucht einen Baumstumpf Aufgabe: Kara soll bis zum nächsten Baumstumpf laufen, dann 180° Drehung!
Kara sucht einen Baumstumpf Problem: bis zum nächsten Baumstumpf laufen, dann 180° Drehung! Problemlösung: es läuft folgender Dialog zwischen Computer und Kara ab: Computer: Stehst Du vor einem Baum? Kara: NEIN! JA! Computer: Dann lauf ein Feld weiter! Dann dreh Dich um 180° und bleib stehen!
Lösung Übung 7 Das Programm: ein Zustand „find tree“, ein Sensor „stehe vor Baum“
Übung 8: Kara, der Wächter Aufgabe: Kara soll linksherum bis Kleeblatt, dann rechtsherum bis Kleeblatt, dann linksherum. . . laufen
Lösung Übung 8 Das Programm: zwei Zustände: einer für Linksdrehung, einer für Rechtsdrehung
Kara, der Tunnelwächter Die Aufgabe: Kara soll den „Tunnel“ in beiden Richtungen endlos ablaufen Die Analyse: Kara ist zu jedem Zeitpunkt in genau einer dieser fünf Situationen: Nur vor ihm ist kein Baum Nur links von ihm ist kein Baum Nur rechts von ihm ist kein Baum Links und rechts kein Baum Links, rechts und vorne Bäume braucht drei Sensoren:
Kara, der Tunnelwächter Die Analyse: Kara ist zu jedem Zeitpunkt in genau einer dieser 5 Situationen: Das Programm: Kara muss nur diese 5 (von allen möglichen 8) Situationen berücksichtigen: Nur vor ihm ist kein Baum Nur links von ihm ist kein Baum Nur rechts von ihm ist kein Baum Links, rechts und vorne Bäume Links und rechts kein Baum Dies ist nur eine von allen möglichen Lösungen!
Übung 9: Kara und der Tunnel Aufgabe: a) Kara sucht den Eingang eines geraden Tunnels (Feld a). Schreiben Sie ein Programm, das ihn auf dem ersten Feld im Tunnelinneren anhalten lässt. Achtung: Manche Tunnels haben zunächst eine einseitige Wand, manche links, manche rechts. b) Kara will den Ausgang des Tunnels finden (Feld b). Dazu muss er zunächst den Tunnel durchqueren. Schreiben Sie ein Programm, das ihn auf dem ersten Feld nach dem Tunnel anhalten lässt - er soll nicht bis zum Ende der Galerie laufen!
Wozu sind Zustände gut ? • manchmal eine Frage des Programmierstils • als Gedächtnis: was hat Kara schon erledigt ? Beispiel: Aufgabe „suche Tunnelausgang“ 1. „enter“: suche Tunneleingang (links und rechts eine Wand) 2. „exit“: suche Tunnelausgang (links oder rechts keine Wand)
Weitere Übungen: Kara, der Parkettleger Aufgabe: Kara möchte sich als Parkettleger betätigen. Er will ein schachbrettartiges Muster legen. Programmieren Sie Kara so, dass er ein solches Muster innerhalb der Bäume erzeugt.
Einfaches Labyrinth Aufgabe: Kara sitzt in einem Labyrinth fest. Er möchte raus, denn beim Ausgang des Labyrinths wartet ein leckeres Kleeblatt auf ihn! Zwei Beispiele von Labyrinth-Welten: Jede horizontale Baumreihe ausser der untersten hat genau einen Ausgang. Diesen muss Kara jeweils finden. Hinter dem letzten Ausgang wartet das Kleeblatt auf ihn!
Kara – Pac man oder wie verfolge ich eine Spur Aufgabe: Kara möchte das uralte PC-Spiel Pac. Man spielen – in einer vereinfachten Version. Er soll eine Spur von Kleeblättern „auffressen“. Er weiss, dass diese Spur nie entlang eines Baumes geht – sie endet an einem Baum! So sehen „Spur-Welten“ aus: Programmieren Sie Kara so, dass er die Spur von Kleeblättern „auffrisst“! Da man weiss, dass die Spur nie entlang eines Baums geht, kann das Programm beendet werden, sobald Kara auf einem Kleeblatt vor einem Baum steht.
Hilfe für Pac. Man Warum klappt das Programm auch für eine Linkskurve?
Hilfe für Pac. Man In welche Richtungen kann Kara die Kleeblatt. Spur verfolgen (bedenke: Kara kann nicht sehen und weiß nicht wo er sich gerade befindet!!!) In alle!
Kara und die Ausserirdischen Aufgabe: Kara glaubt an Ausserirdische. Er ist überzeugt, dass bestimmte Muster von Kleeblättern in seiner Welt auf ihre baldige Ankunft hinweisen! Nur weiss er nicht so recht, welches Muster er erwarten soll. Er stellt sich vor, dass es eines von drei Mustern ist. Betrachten wir als erstes folgende Welt: Programmieren Sie Kara so, dass er prüft, ob in der Zeile, in der er steht, folgendes Muster vorkommt: Er soll solange das Muster suchen, bis er an einem Baum ankommt. Dann gibt er die Suche auf. Sobald er das Muster findet, soll er seine Freude darüber signalisieren, indem er sich links dreht und in die darüber liegende Zeile begibt. Danach kann er das Programm beenden. Findet er es nicht, geht er enttäuscht nach rechts in die darunter liegende Zeile.
Bezug zu den Bildungsstandards Die Schülerinnen und Schüler sind in der Lage: • selbstständig, zielorientiert und mit den jeweils angemessenen Methoden zur Lösung, Visualisierung und Strukturierung von Sachverhalten und Problemen informationstechnische Werkzeuge einzusetzen. • mithilfe geeigneter Programme einfache interaktive Anwendungen und Programme zur Simulationen und zum Steuern und Regeln zu erstellen.
Warum Kara? Kriterium Erläuterung Kara ist einfach Kara ist für Programmieranfänger konzipiert Kara setzt keinerlei Kenntnisse voraus Kara ist sehr einfach zu bedienen Syntaxfehler gibt es nicht! Kara ist methodisch wertvoll Kara bietet die Möglichkeit die Programmausführung schrittweise zu verfolgen farbige Untermalung des Programmablaufs während der Ausführung bis zur Anweisungsebene visuelle Darstellung des zugehörigen Zustanddiagramms Kara gibt eine Rückmeldung über die Korrektheit des erstellten Programms im Handumdrehen Erprobung an unterschiedlichen Welten sehr realitätsnah Kara gibt sinnvolle Fehlermeldungen aus, mit denen Schüler. Innen etwas anfangen können Kara weist bei der Ausführung der Programme auf Logikfehler hin Kara motiviert Kara macht Spaß, erzeugt Spannung und ist grafisch ansprechend Technische Vorteile Kara steht für den Unterricht frei zur Verfügung Einsatzfähigkeit auf verschiedenen Betriebssystemen einfache Installation ständige Weiterentwicklung durch ein kompetentes Team aus Informatikern an der ETH Zürich Weiterführung der Arbeit in der Oberstufe mit javakara möglich umfangreiche Materialsammlung mit Aufgaben und Vorträgen im Internet Unterstützung des Lehrers
- Slides: 50