Kara, der programmierbare Marienkäfer !
Jan 21, 2016
Kara, der programmierbare Marienkäfer !
... gibt es:• unbewegliche Baumstümpfe,• Pilze, die Kara verschieben und • Kleeblätter, die Kara legen
und aufnehmen kann
... und natürlich Kara selbst!
In der Welt des Marienkäfers...
Karas Welt
... 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!
Kara, der Marienkäfer...
Ü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…
... 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?
Ziel: Kara so zu programmieren, dass er seinen Auftrag in verschiedenen Welten ausführen kann.
Ü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:
Füllen Sie folgende Tabelle aus. Überlegen Sie was Karas Sensoren in jedem Schritt „sehen“.
Start nach 1 Schritt
nach 2 Schritten
nach 3 nach 4 nach 5
×
×
×
Automaten im Alltag
Beispiel Geldautomat
warte auf KarteKarte
gültig ?Nein Ja
Fehler-meldung
warte auf Abschluss
der PIN-Eingabe
PIN korrekt ?Nein Ja
Fehler-medung
warte auf Funktionswahl
CASH-Funktion?Bezug-Funktion?
neuer Bildschirm
neuer Bildschirm
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.
Die Versetzung ändert den Klassenzustand einesSchülers.Sitzen bleiben bedeutet: der Zustand bleibt, dieKlasse wird wiederholt.
Schüler und ZuständeSchüler und Zustände
Ü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
Lichtaus
Lichtein
drücken
drücken
start
Ein Lichtschalter hat nur zwei Zustände, ein und aus.
Ein „Sensor“ meldet, wenn der Schalter betätigt wird.
Ü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
Nichtstun
Videoabspielen
„play“
„stop“
start Warten
„pause“
„play“
Time out
Spulen
„play“„forward“„rewind“
Dieser Automat...
•akzeptiert nur
•zeigt eingeworfenen Betrag an
•gibt nur aus
für 3,-
0.000.00
Getränkeautomaten
0,- 1,- 2,- 3,-1.001.00 2.002.00 3.003.00
2.002.00 3.003.00
0.000.00
CokeCoke
SpriteSprite
Das Leben eines Getränkeautomaten...
Frage: oder ?
0,- 1,- 2,- 3,-
Zustand
• stellt sich der Automat in einem Zustand
• werden von seinen Sensoren beantwortet
Das Leben eines Getränkeautomaten...
1.001.00 2.002.00 3.003.00
2.002.00 3.003.00
0.000.00
0,- 1,- 2,- 3,-
Übergang
Frage: oder ?
• die Antwort darauf gibt der Automat in einem Übergang
• führt dabei gewisse Aktionen aus
CokeCoke
SpriteSprite
Das Leben eines Getränkeautomaten...
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ättersammlerZustä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
× Blätter sammeln
× - Stopp
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ättersammlerAutomat
Ü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.
Aufgabe: Kara soll bis zum nächsten Baumstumpflaufen, dann 180° Drehung!
Übung 7: Kara sucht einen Baumstumpf
Kara sucht einen Baumstumpf
Problem: bis zum nächsten Baumstumpflaufen, dann 180° Drehung!
es läuft folgender Dialog zwischen Computer und Kara ab:
Computer: Stehst Du vor einem Baum?Kara: NEIN!
Computer: Dann laufein Feld weiter!
Dann dreh Dich um 180° und bleib stehen!
Problemlösung:
JA!
Lösung Übung 7
Das Programm:ein Zustand „find tree“,ein Sensor „stehe vorBaum“
Aufgabe: Kara soll linksherum bis Kleeblatt,dann rechtsherum bis Kleeblatt,dann linksherum... laufen
Übung 8: Kara, der Wächter
Lösung Übung 8
Das Programm: zwei Zustände: einer für Linksdrehung,einer für Rechtsdrehung
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 allenmöglichen 8) Situationenberücksichtigen:
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
Dies ist nur eine von allen möglichen Lösungen!
Kara, der Tunnelwächter
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.
Übung 9: Kara und der Tunnel
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!
• 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)
Wozu sind Zustände gut ?
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 PacMan 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 PacMan
Warum klappt das Programm auch für eine Linkskurve?
Hilfe für PacMan
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ülerInnen 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
Unterstützung des Lehrers
umfangreiche Materialsammlung mit Aufgaben und Vorträgen im Internet