i

Strukturierung – Fehler in Algorithmen und Programmen

Jeder macht Fehler

In der Erkundung hast du ein relativ schwieriges Problem gelöst. Falls dir das nicht auf Anhieb gelungen ist, dann ist das kein Grund zur Sorge. Fehler gehören zum Programmieren dazu. Deshalb schauen wir uns auf dieser Seite an, welche Fehlertypen häufig auftreten. Nur wenn du weißt, welche wann auftreten können, bist du in der Lage, sie zu korrigieren oder gar zu verhindern.

Aufgabe 1

Bei der Suche nach geeigneten Ideen für das Blätter-Such-Problem hat Schüler A. das hier notiert:

Kleeblatt suchen:
SOLANGE nicht auf einem Kleeblatt, mache Folgendes:
    WENN vor einem Baum, dann
        den Baum / die Baumreihe umlaufen
    einen Schritt weitergehen
das Kleeblatt aufheben

Erkläre anhand konkreter Situationen, warum diese Idee das Problem nicht löst.

Spiele diese Idee einmal mit den folgenden drei Beispielwelten durch:

Kara sucht ein Kleeblatt – Beispiel 1

Kara sucht ein Kleeblatt – Beispiel 2

Kara sucht ein Kleeblatt – Beispiel 3

Aufgabe 2

Schülerin B. hat den folgenden Algorithmus (als Struktogramm) entwickelt. Ihre Lehrerin ist jedoch nicht überzeugt. Schreibe an B. eine kurze Erklärung, was sie falsch gemacht hat.

Struktogramm mit Fehlern

Aufgabe 3

(a) Das folgende Programm von Schüler C. ist nicht richtig. Findest du den Fehler direkt? Probiere auf jeden Fall aus, was passiert, wenn du das Programm mit Python Kara ausführst. Interpretiere das Ergebnis.


while not kara.onLeaf():
    if kara.treeFront()
        kara.turnLeft()
        kara.move()
        kara.turnRight()
        kara.move()
        while kara.treeRight():
            kara.move()
        kara.turnRight()
        kara.move()
        kara.turnLeft()
    else:
        kara.move()
kara.removeLeaf()

(b) Das folgende Programm von Schülerin D. ist nicht richtig. Findest du den Fehler direkt? Probiere auf jeden Fall aus, was passiert, wenn du das Programm mit Python Kara ausführst. Interpretiere das Ergebnis.


while not kara.onLeaf():
    if kara.treeFront():
        kara.turnLeft()
       kara.move()
        kara.turnRight()
        kara.move()
        while kara.treeRight():
            kara.move()
        kara.turnRight()
        kara.move()
        kara.turnLeft()
    else:
        kara.move()
kara.removeLeaf()

Fehler vergleichen

Aufgabe 4

(a) Fehler können in den unterschiedlichen Schritten des Problemlösens auftreten. Gehe die Fehler der Schüler:innen A. bis D. durch und ordne sie einem Schritt des algorithmischen Problemlösens zu.

(b) Man kann die aufgetretenen Fehler in zwei Klassen einteilen: Auf der einen Seite gibt es Syntaxfehler – das sind Fehler, bei denen die Regeln der Programmiersprache nicht beachtet wurden. Dem gegenüber stehen Logische Fehler – Fehler, bei denen die Ablauflogik nicht richtig ist und deshalb das Programm nicht funktionieren wird. Ordne die Fehler von A. bis D. diesen beiden Fehlertypen zu.

(c) Ordne zu: In welchen Schritten der Problemlösung können Syntaxfehler auftreten? In welchen können logische Fehler auftreten?

Das Wichtigste notieren

Aufgabe 5

Notiere dir, welche beiden Fehlertypen wir unterscheiden und wo sie auftreten können. Du kannst dafür den unteren Abschnitt des Wissensspeichers nutzen.

Im Wissensspeicher soll übersichtlich und prägnant das neu Gelernte dokumentiert werden. Die vorgegebene Struktur auf dem Wissensspeicher soll sicherstellen, dass alles Wichtige festgehalten wird; so werden z.B. nicht nur Definitionen, sondern in der Regel auch Beispiele, Vernetzungen oder Konventionen gefordert. Der Wissensspeicher kann verwendet werden, um ein im Unterricht erstelltes Tafelbild einfacher ins Heft zu übertragen. Es ist mit ihm aber auch möglich, die Sicherung stärker schüler:innen-orientiert zu gestalten: Je nach Unterrichtsgestaltung können die Schüler:innen nach einer Erarbeitung und Besprechung den gesamten Wissensspeicher selbst ausfüllen (im Unterricht, ggf. auch in der Hausaufgabe) oder hierfür zusätzlich das Online-Schulbuch zu Hilfe nehmen.

Suche

v
6.1.4.6
dev.inf-schule.de/imperative-programmierung/kara/algorithmen/strukturierung_fehler
dev.inf-schule.de/6.1.4.6

Rückmeldung geben