DGB 2: Programmieren Testen Debuggen
← Digitale Grundbildung 2. Klasse
Programmieren bedeutet, eine Lösung so genau zu beschreiben, dass ein Computersystem sie ausführen kann. In der 2. Klasse stehen kleine, verständliche Programme im Mittelpunkt: Abläufe planen, Befehle kombinieren, Variablen, Eingaben, Ausgaben und Bedingungen verwenden, systematisch testen und Fehler gezielt beheben.
Lehrplanbezug
| Bereich | Zuordnung |
|---|---|
| Kompetenzbereich | Produktion |
| Perspektiven | T, I |
| Schwerpunkt | Einfache Programme erstellen, testen und debuggen |
| Kompetenz | Einfache Programme in einer geeigneten Lernumgebung entwickeln, Testfälle planen, Fehler lokalisieren und Programme schrittweise verbessern. |
Lernziele
Die Schülerinnen und Schüler können:
- eine Entwicklungs- oder Lernumgebung grundlegend bedienen;
- Programm und Quelltext bzw. Blockfolge unterscheiden;
- einfache Befehlsfolgen erstellen und ausführen;
- Eingaben entgegennehmen und Ausgaben erzeugen;
- Variablen zum Speichern veränderlicher Werte verwenden;
- einfache Bedingungen für Entscheidungen einsetzen;
- Wiederholungen in einfachen Aufgaben erkennen und gegebenenfalls verwenden;
- Syntaxfehler, Laufzeitprobleme und logische Fehler in einfachen Beispielen unterscheiden;
- Programme schrittweise statt nur am Ende testen;
- eigene Testfälle mit Normal-, Rand- und Fehlersituationen entwickeln;
- Debugging als systematische Fehlersuche erklären;
- Änderungen kontrolliert durchführen und nach jeder Änderung erneut testen;
- ein kleines Programm planen, umsetzen, dokumentieren und verbessern.
Lerninhalte
Entwicklungsumgebung und Programm
Eine Programmierumgebung stellt Werkzeuge zum Schreiben bzw. Zusammensetzen, Starten und Testen von Programmen bereit. In blockbasierten Systemen werden Befehle als Blöcke kombiniert; in textbasierten Sprachen werden Anweisungen geschrieben.
Die konkrete Umgebung ist austauschbar. Entscheidend sind algorithmisches Denken, Daten und Testen.
Sequenzen und klare Abläufe
Eine Sequenz ist eine geordnete Folge von Anweisungen. Bereits ein kleines Programm kann Eingabe lesen, einen Wert verarbeiten und eine Ausgabe anzeigen.
Die Reihenfolge muss logisch stimmen. Wie bei einem Algorithmus führen ausgelassene oder vertauschte Schritte zu falschen Ergebnissen.
Variablen
Variablen speichern Werte, die im Programm verwendet oder verändert werden. Beispiele sind Punktestand, Name, Temperatur oder Anzahl von Versuchen.
Aussagekräftige Namen wie `punkte` oder `anzahlVersuche` erleichtern das Lesen und spätere Debuggen.
Bedingungen und Wiederholungen
Mit Bedingungen kann ein Programm abhängig von einem Wert unterschiedlich reagieren: Wenn die Antwort richtig ist, erhöhe die Punkte; sonst zeige einen Hinweis. Wiederholungen führen Anweisungen mehrfach aus.
Die 2. Klasse benötigt noch keine komplexen Algorithmen. Wichtig ist, die Logik in kleinen Schritten nachvollziehen zu können.
Testen
Ein Programm sollte früh und häufig getestet werden. Nach einem kleinen Arbeitsschritt wird geprüft, ob das Ergebnis dem erwarteten Verhalten entspricht. So lässt sich ein Fehler leichter dem zuletzt geänderten Bereich zuordnen.
Gute Tests verwenden verschiedene Eingaben und prüfen nicht nur einen einzigen Erfolgsfall.
Debugging
Debugging bedeutet, Fehler systematisch zu finden und zu beheben. Hilfreich ist: Fehler reproduzieren, betroffenen Bereich eingrenzen, Zwischenwerte beobachten, eine Vermutung bilden, nur eine gezielte Änderung vornehmen und erneut testen.
Wahlloses Verändern vieler Stellen gleichzeitig erschwert die Fehlersuche.
Fehlerarten
Ein Syntaxfehler verletzt Regeln der Programmiersprache. Ein Laufzeitproblem tritt beim Ausführen auf. Ein logischer Fehler lässt das Programm zwar laufen, aber ein falsches Ergebnis erzeugen.
In blockbasierten Umgebungen treten klassische Syntaxfehler seltener auf, logische Fehler bleiben dennoch wichtig.
Dokumentieren und verbessern
Ein kleines Projekt sollte Ziel, wichtige Variablen, Testfälle und bekannte Grenzen dokumentieren. Nach der ersten funktionierenden Version können Bedienung, Fehlermeldungen und Lesbarkeit verbessert werden.
Programmieren ist damit ein iterativer Prozess: planen, erstellen, testen, verbessern.
Aufgaben für den Unterricht
Entwicklungsumgebung erkunden und Grundfunktionen nutzen
Die Lernumgebung wird systematisch statt zufällig erkundet.
Arbeitsauftrag: Finde Bereich für Code, Start/Stop, Ausgabe, Speichern und Hilfe. Erstelle eine beschriftete Übersicht.
Erwartetes Ergebnis: Orientierung in der Programmierumgebung.
Erstes einfaches Programm erstellen
Ein klar begrenztes Programm wird umgesetzt.
Arbeitsauftrag: Erstelle ein Programm, das nach einem Namen fragt und eine passende Begrüßung ausgibt.
Erwartetes Ergebnis: Funktionierende Ein- und Ausgabe.
Programme schrittweise testen
Ein Programm wird in kleinen Stufen aufgebaut.
Arbeitsauftrag: Teste nach jedem neuen Block bzw. Codeabschnitt und notiere erwartetes und tatsächliches Ergebnis.
Erwartetes Ergebnis: Dokumentierter Testprozess.
Fehlerhafte Programme debuggen
Vorbereitete Programme enthalten einfache Fehler.
Arbeitsauftrag: Finde und behebe mindestens drei Fehler. Beschreibe jeweils Symptom, Ursache und Korrektur.
Erwartetes Ergebnis: Nachvollziehbare Fehlersuche.
Eingaben und Ausgaben programmieren
Nutzereingaben werden verarbeitet.
Arbeitsauftrag: Erstelle einen Mini-Rechner, ein Quiz oder eine Umrechnung mit mindestens einer Eingabe und einer Ausgabe.
Erwartetes Ergebnis: Anwendungsnahes Programm.
Variablen gezielt einsetzen und überprüfen
Zwischenwerte werden sichtbar gemacht.
Arbeitsauftrag: Verwende mindestens zwei Variablen und gib ihre Werte während des Testens gezielt aus.
Erwartetes Ergebnis: Verständnis von Zustandsänderungen.
Eigene Testfälle entwickeln
Nicht nur der Normalfall wird geprüft.
Arbeitsauftrag: Definiere vor dem Test mindestens fünf Fälle, darunter einen Rand- oder Fehleingabefall, und notiere das erwartete Ergebnis.
Erwartetes Ergebnis: Systematische Testsammlung.
Programme gegenseitig prüfen
Peer-Testing erweitert die Sicht auf Fehler.
Arbeitsauftrag: Tauscht Programme aus, führt die Testfälle der anderen Gruppe aus und gebt sachliches Feedback.
Erwartetes Ergebnis: Testbericht mit reproduzierbaren Beobachtungen.
Ein kleines Projekt planen, erstellen und verbessern
Ein vollständiger Entwicklungszyklus wird durchgeführt.
Arbeitsauftrag: Plane ein Quiz, Spiel oder Hilfsprogramm, setze eine erste Version um, teste sie und dokumentiere zwei Verbesserungen.
Erwartetes Ergebnis: Kleines fertig getestetes Projekt.
Reflexion und Ergebnissicherung
Der Entwicklungsprozess wird sprachlich gesichert.
Arbeitsauftrag: Erkläre mit einem eigenen Beispiel den Unterschied zwischen Programmieren, Testen und Debuggen.
Erwartetes Ergebnis: Sicheres Prozessverständnis.
Selbstcheck
- Ich kann eine einfache Programmierumgebung bedienen.
- Ich kann Eingaben, Ausgaben und Variablen verwenden.
- Ich kann einfache Bedingungen erklären.
- Ich teste Programme schrittweise.
- Ich kann Fehler reproduzieren und systematisch eingrenzen.
- Ich kann ein kleines Programm planen, testen und verbessern.