Informatik ohne Stecker

Modul 3 - Kontrollfluss

In diesem Modul soll den Schülern das Konzept von Instruktionsfolgen und Kontrollfluss näher gebracht werden. Meist hat im Informatikunterricht bereits eine Beschäftigung mit Programmen stattgefunden, hier soll es aber vor allem darum gehen, die Befehlsabarbeitung als fundamentale Idee zu verstehen.

  • "Wir haben ja bereits geklärt, das Computer verschiedenartig repräsentierte Daten durch Algorithmen, also eine Art Kochrezept, verarbeiten können. Eine grundlegende Idee ist dabei, einen Algorithmus als Folge von Verarbeitungsbefehlen an den Computer zu verstehen."
  • Zur Auffrischung kann man hier Selection Sort als Befehlsfolge wiederholen: 'Vergleiche das aktuelle Element mit dem darauffolgenden Element !', 'Gehe zum nächsten Element !', 'Tausche diese beiden Elemente !' Die gleiche Art von Diskussion funktioniert auch mit jedem anderen Algorithmus, der bis dahin besprochen wurde.
  • "Ein Computerprogramm ist nichts anderes als eine Liste von Instruktionen, welche der Computer in irrwitziger Geschwindigkeit abarbeiten kann. Die Sprache, in der diese Instruktionen notiert werden, nennt man daher Programmiersprache." (Hier bietet sich ein Vergleich zu natürlichen Sprachen an - Syntax, Worte und deren Interpretation. In der HPI Schülerakademie werden von den gleichen Schülern später noch Programmiersprachen benutzt, man kann also schon einmal darauf verweisen.)
  • "Bei menschlicher Sprache herrscht oft ein gemeinsames Verständnis dessen, was mit der Aussage 'gemeint' ist. Ein typisches Beispiel ist der Satz 'Gehe durch diese Tür', der natürlich bei einer geschlossenen Tür nicht wortwörtlich gemeint ist."
  • "Computer agieren hier anders, sie befolgen immer die gegebenen Anweisungen, auch wenn sie sich damit sich selbst oder der Umwelt schaden."
  • "Ein typisches Beispiel sind Staubsaugerroboter, welche sehr aufwändig programmiert werden müssen, damit jede potentiell auftretende Situation behoben werden kann. Einen Computer zu programmieren, der jede Anweisung 'blind' befolgt, ist also ziemlich kniffelig. Programmierer müssen exakt formulieren, was sie vom Computer wollen. Jeder kleine Fehler kann potentiell riesige Konsequenzen haben - wie z.B. beim Flugzeug oder Spaceshuttle."
  • "Programmfehler werden typischerweise Bug genannt, da in den frühen 40‘ern eine tote Motte in einem mechanischen Rechner Fehler verursachte." ( bug.pdf)

Aktivität - Blinder Gehorsam

Bei dieser Aktivität können die Schüler selbst nachvollziehen, wie die gleichen Instruktionen je nach Interpretation zu unterschiedlichen Ergebnissen führen. Dies festigt nochmal das Prinzip von Instruktionsfolgen und der daraus resultierenden 'Bugs'.

Jeder Schüler erhält eine Kopie des Blattes  blindbild_blatt.pdf.

Anschließend soll jeweils ein ausgewählter Schüler eines der folgenden Bildern durch mündliche Instruktionen zum Zeichnen beschreiben, ohne das er das Bild den Mitschülern zeigt. Diese versuchen, exakt das gleiche Bild zu produzieren:

 blindbild_A.pdf,  blindbild_B.pdf,  blindbild_C.pdf,  blindbild_D.pdf,  blindbild_E.pdf und  blindbild_F.pdf.

Die Originalversion dieser Aktivität findet sich unter csunplugged.org/programming-languages, mit einer interessanten erweiterten Variante.

Aktivität - Der simulierte Computer

Mit dem Wissen über das 'blinde' Abarbeiten von Instruktionen können nun die Grundlagen der Abarbeitung von Computer-Programmen nachgespielt werden.

  • "Bei diesem Spiel wollen wir die grundlegenden Aktivitäten von Computern nachvollziehen. Dazu simulieren wir mit Gruppen von Schülern verschiedene Bauteile eines Computers. Wir benötigen pro Gruppe eine CPU, eine ALU und den Bildschirm, also 3 Leute." (Je nach Alter der Schüler sollte man hier die tatsächliche Funktionsweise der einzelnen Computer näher erläutern. Ausserdem sollte erwähnt werden, das in realen Computer-Systemen die CPU die Speicherung von Zwischenergebnissen in Registern übernimmt und die ALU Bestandteil des Prozessors ist. Zur Klärung der Abkürzungen können die Worttafeln aus  rechnerkomponenten.pdf verwendet werden.)
  • Jede Gruppe erhält jeweils eines der Blätter:  uebung_computer_cpu.pdf,  uebung_computer_alu.pdf,  uebung_computer_display.pdf
  • "Die CPU führt das Programm mit den Instruktionen aus und verteilt dementsprechend Aufgaben an die anderen Komponenten. Die originalen Instruktionen sind für den Rest nicht sichtbar. Die ALU führt alle gestellten mathematischen Operationen aus und merkt sich temporär die Ergebnisse. Die Anzeige nimmt alle Zeichenanweisungen entgegen und präsentiert erst zum Schluss das grafische Ergebnis." (Hier kann auch erläutert werden, das reale Systeme tatsächlich erst Pixel für Pixel berechnen, bevor das Bild angezeigt wird. Dies passiert mit mindestens 25 Bildern pro Sekunde, um flüssige Animationen zu erzeugen.
  • "Wie man sehen kann, führen Computer nur blind Befehle aus. Was passiert beispielsweise, wenn die CPU aufgrund einer fehlerhaften Eingabe eine Koordinate > 9 mitteilt ?" (Die Schüler hier meist sehr kreativ: Zeichenanweisung wird ignoriert, Anzeige meldet Fehler an die CPU zurück, Schreiboperation erfolgt in anderem Teil des Bildschirms)
  • "Was passiert, wenn die CPU schneller rechnet, als die Anzeige ihre Werte aktualisieren kann ?" (Es gibt verschiedene Möglichkeiten, die auch wieder direkt in die Praxis übertragbar sind: Der letzte Befehl wird 'überschrieben' und somit ignoriert - schlecht - oder der Computer enthält eine Warteschlange für Instruktionen an andere Komponenten.)
  • "Es gibt tatsächlich in Computer-Systemen eine solche Warteschlange, die 'Pipeline' genannt wird. Sie erlaubt es, das die CPU Instruktionen in maximaler Geschwindigkeit verarbeitet, ohne permanent ausgebremst zu werden." ( cpu_pipeline.pdf)
  • "Was passiert wenn die Anzeige schneller als die CPU ist ?"
  • "Das Koordinatensystem der Anzeige beginnt typischerweise wie bei uns oben links, während es in der Mathematik seinen Urpsrung unten links hat. Woran könnte das liegen ?" (Abstraktion einer geschriebenen Seite, während die Mathematik steigende Werte auf der Y-Achse verdeutlicht.)

Die Originalversion dieser Aktivität findet sich unter cse4k12.org/how_computers_work/.

Aktivität - Schatzinsel

  • "Aufgrund der verschiedenen Instruktionen wechselt der Computer häufiger seinen Zustand oder den des Systems, in dem er eingebaut ist." (Beispiel Ampelschaltung, Tag-/Nacht-Beleuchtung)
  • "Informatiker benutzen dafür ein interessantes Konzept, welches 'endlicher Zustandsautomat' heißt. Ein einfaches Beispiel ist ein Telefoncomputer, der einem verschiedene Tasten als Menü anbietet - ,1‘ für Mailbox u.s.w. Die Tastendrücke sind die Eingaben für einen Mechanismus, den man als endlichen Zustandsautomaten darstellen kann." (Es bietet sich hier an, die Erläuterung durch eine Skizze an der Tafel zu ergänzen.)
  • "Kennt ihr weitere Beispiele ?" (Staubsaugerroboter, Bankautomaten, prinzipiell jede Art von Menüführung in technischen Systemen)
  • "Im folgenden Spiel wollen wir das Prinzip der Zustandsautomaten ein wenig nachvollziehen. Dafür spielen wir die Reise von Piraten rings um die Schatzinsel nach."
  • 3 Schüler verteilen sich im Raum, jeder repräsentiert durch sein Schild den Einsielder auf einer Insel ( inseln-demo.pdf). Auf der Rückseite der Schilder befinden sich die Routeninformationen für diese Insel, die nur der jeweilige Einsiedler kennt und daher versteckt hält. ( inseln-demo-routen.pdf).
  • "Von jeder Insel gibt es es zwei Routen in unterschiedliche Richtungen. Man darf auf jeder Insel dem Einsiedler nach genau einer Route - A oder B - fragen, danach hat er bis nach der Abfahrt keine Lust mehr. Da wir keine komplette Landkarte besitzen, müssen wir uns diese jetzt durch ausprobieren ermitteln." (Hier sollte man einen Schüler die Fragerunde vorführen lassen. Ein guter Startpunkt ist die Schiffswrackbucht. Es empfiehlt sich, an der Tafel eine Kopie der drei Inselkarten zu haben und die bereits absolvierten Wege entsprechend zu protokollieren. Das Lernziel besteht in dem Verständnis, das man in Schleifen und Sackgassen geraten kann und globales Wissen - die Karte - nur durch die Ansammlung von lokalen Wissen entsteht. Es gibt also keine Aktivität, die einen großen 'Überblick' in einem Schritt produziert. Idealerweise kommt man auch auf die Idee der Zustandsautomaten zurück und macht die entsprechenden Analogien explizit.)
  • "Jetzt führen wir die gleiche Aktivität mit allen Schülern durch. Dabei soll man den Weg zur Schatzinsel finden. Startpunkt ist wieder die Schiffswrackbucht." (Grundlage ist hier die erweiterte Variante mit mehr Inseln -  inseln.pdf und  inseln-routen.pdf. Die Schüler füllen das entsprechende Übungsblatt -  uebung_inselkarte.pdf - aus. Diese Aktivität eignet sich ideal als Freiluft-Ereignis, da alle Schüler zwischen den Inseln herumrennen. Die Einsiedler sollten ihre Auskunft nur in's Ohr flüstern, damit die nachfolgenden Piraten nicht von der Information profitieren. Besonders schnelle Schüler bekommen die Aufgabe, alternative Wege zur Schatzinsel ebenfalls zu finden und eine komplette Karte zu erstellen.)
  • "Was ist die schnellste Route ? Was ist die langsamste Route ? Welche Route enthält Schleifen "
  • "Man kann die Karte auch anders zeichnen - die Inseln sich einfache Kreise und die Zielinsel - der sog. terminale Zustand - ist ein doppelter Kreis." (Hier könnte man die Ergebnisse einsammeln oder interaktiv zusammenstellen.)
  • "Hier sind weitere Beispiele für Zustandsautomaten. Welche Routen gibt es ? Könnt ihr ein Muster erkennen ?" ( automatas.pdf - (a) funktioniert nur bei ungerader Anzahl von A's, (b) funktioniert nur bei alternierender Sequenz, (c) funktioniert nur, wenn mindestens ein B enthalten ist)

Als Hausaufgabe zum Vertiefen des Verständnisses von Zustandsautomaten kann das Münzrätsel ( uebung_muenzraetsel.pdf) verteilt werden.

Die Originalversion dieser Aktivität findet sich unter csunplugged.org/finite-state-automata.

Materialiensammlung

 bug.pdf
 blindbild_blatt.pdf
 blindbild_A.pdf
 blindbild_B.pdf
 blindbild_C.pdf
 blindbild_D.pdf
 blindbild_E.pdf
 blindbild_F.pdf
 rechnerkomponenten.pdf
 uebung_computer_cpu.pdf
 uebung_computer_alu.pdf
 uebung_computer_display.pdf
 cpu_pipeline.pdf
 inseln-demo.pdf
 inseln-demo-routen.pdf
 inseln.pdf
 inseln-routen.pdf
 uebung_inselkarte.pdf
 automatas.pdf
 uebung_muenzraetsel.pdf