#separator:tab #html:true #tags:input-processing-output-quiz #columns:Vorderseite Rückseite

Aus welchen drei Teilen besteht nach dem IPO-Modell jedes Teilproblem, das ein Computer lösen kann?

  1. Planung, Umsetzung, Dokumentation
  2. Hardware, Software, Daten
  3. Eingabe, Verarbeitung, Ausgabe
  4. Sender, Kanal, Empfänger

Jedes Stück, das ein Computer lösen kann, hat eine Eingabe, eine Verarbeitung und eine Ausgabe.

Warum bringt ein Kasten mit klarer Eingabe und klarer erwarteter Ausgabe seinen Test gleich mit?

  1. Weil der Computer bei jedem Aufruf selbst meldet, ob die gelieferte Ausgabe zur Eingabe passt.
  2. Weil du eine bekannte Eingabe hineingeben und das Ergebnis mit der erwarteten Ausgabe vergleichen kannst.
  3. Weil man in einem klar geschnittenen Kasten beim Lesen des Codes sofort sieht, welche Zeile welchen Teil der Ausgabe erzeugt.
  4. Weil die Verarbeitung im Kasten dann so überschaubar ist, dass sie kaum noch falsch sein kann.

Eine bekannte Eingabe und eine erwartete Ausgabe sind schon ein Test, ohne Blick in den Kasten.

"

Vor einem Farbsensor mit vier Messkanälen leuchtet eine rote Lampe. Was ist die tatsächliche Eingabe, mit der ein Empfängerprogramm arbeitet?

  1. Die Farbe Rot, so wie sie auch ein Mensch sieht, der neben dem Sensor steht.
  2. Das Wort ""red"", das der Sensor als erkannte Farbe an das Programm meldet.
  3. Vier Zahlen: die Anteile von Rot, Grün und Blau und die Gesamthelligkeit.
  4. Ein kleines Bild der Lampe, aus dem das Programm die Farbe an der hellsten Stelle abliest.
"

Die Eingabe des Kastens ist das, was der Sensor liefert, und die Entscheidung ist die Arbeit des Programms.

"

Eine Strecke überträgt Text mit Licht als Kette von Kästen. Welche Aussagen treffen zu? (Mehrere richtige Antworten möglich.)

""hi"" → encode() → Farben → Licht → Sensor → decode() → ""hi""
  1. Die Ausgabe von encode() ist die Eingabe des nächsten Kastens.
  2. Sender und Empfänger müssen vorher vereinbaren, welche Farbe für welchen Buchstaben steht.
  3. decode() kann unabhängig davon arbeiten, was encode() macht.
  4. Die Kette zeigt, in welcher Reihenfolge die Daten durch das System fließen.
  5. Die Kästen lassen sich in beliebiger Reihenfolge anordnen, solange jeder vorkommt.
"

Kästen in einer Reihe zeigen den Datenfluss, und Sender und Empfänger passen nur zusammen, wenn sie dieselbe Vereinbarung nutzen.

Betrachte diese Funktion als IPO-Kasten. Was sind ihre Eingabe und ihre Ausgabe?

def encode(text):
colours = []
for letter in text:
colours.append(colour_for(letter))
return colours
  1. Die Eingabe ist ein Text, die Ausgabe eine Liste von Farben.
  2. Die Eingabe ist eine Liste von Farben, die Ausgabe ein Text.
  3. Die Eingabe ist Licht, die Ausgabe sind vier Sensorwerte.
  4. Die Eingabe ist ein einzelner Buchstabe, die Ausgabe eine einzelne Farbe.

Die Parameter einer Funktion sind ihre Eingabe, ihr Rückgabewert ist ihre Ausgabe, und ein Aufruf darin ist ein kleinerer Kasten.

"

Du willst einen Kasten classify() prüfen, der aus vier Sensorwerten eine Farbe entscheidet. Welcher Test passt zum IPO-Modell?

  1. classify() eine Stunde lang mit laufenden Messwerten arbeiten lassen und schauen, ob es ohne Absturz durchhält.
  2. classify() mit zufälligen Zahlen aufrufen und prüfen, dass keine Fehlermeldung kommt.
  3. Gespeicherte Messwerte, die sicher bei roter Lampe entstanden sind, hineingeben und prüfen, ob ""red"" herauskommt.
  4. Den Quelltext von classify() Zeile für Zeile lesen und jede Bedingung im Kopf mit Beispielwerten nachvollziehen.
" "

Ein Test braucht Eingaben, deren richtige Ausgabe du vorher kennst.

"

Aus dem IPO-Kasten ergeben sich zwei Fragen: Wie arbeitet der Kasten, und wie werden Eingabe und Ausgabe für die Maschine dargestellt? Welche davon beantwortet ein Programm?

  1. Beide: Ein Programm legt auch fest, wie Farben und Zeichen dargestellt werden.
  2. Die Frage der Verarbeitung: Ein Programm beschreibt, wie der Kasten arbeitet.
  3. Die Frage der Darstellung: Ein Programm legt fest, wie Daten aussehen.
  4. Keine von beiden: Programme sind ein eigenes, drittes Thema.

Programme beantworten, wie ein Kasten arbeitet; die Darstellung beantwortet, was seine Ränder überquert.

Dasselbe IPO-Modell erscheint auf mehreren Ebenen. Welche Aussagen treffen zu? (Mehrere richtige Antworten möglich.)

System:      Nachricht → Sender   → Licht
Funktion: Text → encode() → Farben
Logikgatter: 1, 1 → AND → 1
  1. Von außen betrachtet ist der ganze Sender ein einziger Kasten: Nachricht hinein, Licht heraus.
  2. Öffnest du den Kasten, wird seine Verarbeitung zu einer Kette kleinerer Kästen mit eigenen Eingaben und Ausgaben.
  3. Ein einzelnes Logikgatter ist zu klein für das IPO-Modell, weil es nichts verarbeitet, sondern nur Strom durchlässt oder sperrt.
  4. Welche Ebene die richtige ist, hängt von der Frage ab, die du gerade untersuchst.

Die Form bleibt auf jeder Ebene gleich, und die richtige Ebene ist die, auf der sich deine Frage prüfen lässt.

Eine Textübertragung über eine Lichtstrecke liefert am Ende falschen Text. Was ist nach dem Kastenmodell der sinnvollste nächste Schritt?

  1. Die ganze Übertragung so oft wiederholen, bis der Text stimmt.
  2. Den großen Kasten öffnen und einen inneren Kasten, etwa encode(), für sich mit bekannter Eingabe prüfen.
  3. Den Quelltext von Sender und Empfänger nebeneinanderlegen und die Stelle suchen, an der die Vereinbarung nicht zusammenpasst.
  4. Den Abstand zwischen Sender und Empfänger verändern und erneut senden.

Folge den Daten und prüfe eine Grenze nach der anderen, bis du den Kasten findest, an dem sie zuerst falsch werden.

Warum „sieht“ der Computer keine Farbe, sondern nur Zahlen?

  1. Weil der Farbsensor zu billig ist; ein besserer würde Farben direkt liefern.
  2. Weil eine Maschine nur mit Dingen arbeiten kann, die in einer verarbeitbaren Darstellung vorliegen, meistens als Zahlen.
  3. Weil der Umweg über Zahlen eine Eigenheit der Programmiersprache ist; eine Sprache mit eingebautem Farbtyp würde die Farbe direkt sehen.
  4. Weil die Lampe nie reines Rot ausstrahlt.
  5. Weil er die Farbe sehr wohl erkennt, sie intern aber als Zahlen ablegt und deshalb nur so weitergeben kann.

Ein Computer arbeitet nur mit Darstellungen, und die Bedeutung kommt aus der Regel im Programm.

Auch ein KI-Assistent ist ein IPO-Kasten: Deine Worte gehen hinein, Code kommt heraus, und hineinsehen kannst du nicht. Was folgt daraus?

  1. Der Kasten ist fertig und muss nicht mehr geprüft werden.
  2. Die Eingabe spielt kaum eine Rolle: Der Assistent liefert zu jeder Frage ähnlich guten Code, egal wie du sie stellst.
  3. Du kennst die Eingabe und prüfst die Ausgabe, weil dir die Verarbeitung verschlossen ist.
  4. Der Kasten arbeitet am schnellsten, also sollte möglichst viel Arbeit dorthin.

Mit einem Test musst du einem Kasten, in den du nicht hineinsehen kannst, nicht vertrauen.

"

Welcher der folgenden Aufrufe ist ein Test mit eingebauter Erwartung?

def to_signal(brightness):
if brightness > 100:
return ""on""
return ""off""
  1. to_signal(150) aufrufen und prüfen, dass ""on"" herauskommt.
  2. to_signal(150) aufrufen und sich das Ergebnis ansehen.
  3. to_signal() mit vielen verschiedenen Werten aufrufen, um die Funktion gut auszulasten.
  4. Prüfen, dass der Aufruf keine Fehlermeldung erzeugt.
" "

Die Erwartung steht vor dem Ergebnis; ohne sie ist ein Aufruf kein Test.

" "

Was gehört zur Eingabe des Kastens classify(), der aus den Messwerten eines Sensors eine Farbe entscheidet?

  1. Die erkannte Farbe, zum Beispiel ""red"".
  2. Die vier Messwerte des Sensors.
  3. Der Quelltext von classify().
  4. Die Farbe, wie ein Mensch sie sieht.
"

Eingabe, Verarbeitung und Ausgabe sind drei verschiedene Dinge: Messwerte, Regel und Entscheidung.