DGB 3: Computational Thinking
← Digitale Grundbildung 3. Klasse
Computational Thinking ist eine Methode zum strukturierten Problemlösen. Ein Problem wird zerlegt, Muster werden gesucht, Unwichtiges wird ausgeblendet und daraus entsteht ein eindeutiger Algorithmus. Erst danach wird der Lösungsweg in Blöcke, Pseudocode oder Programmcode übersetzt und getestet.
Lehrplanbezug
| Bereich | Zuordnung |
|---|---|
| Kompetenzbereich | Produktion |
| Perspektiven | T, I |
| Schwerpunkt | Computational Thinking nachvollziehen und Lösungswege in Programmiersprache umsetzen |
| Kompetenz | Probleme zerlegen, Muster erkennen, abstrahieren, Algorithmen entwerfen und einfache Lösungswege in einer Programmiersprache oder blockbasierten Umgebung umsetzen und testen. |
Lernziele
Die Schülerinnen und Schüler können:
- die Kernideen Zerlegung, Mustererkennung, Abstraktion und algorithmisches Denken erklären;
- größere Probleme in bearbeitbare Teilprobleme zerlegen;
- Wiederholungen und Gemeinsamkeiten erkennen;
- wichtige von unwichtigen Informationen unterscheiden;
- Algorithmen als eindeutige Schrittfolgen formulieren;
- Sequenzen, Bedingungen und Schleifen verwenden;
- Ablaufpläne oder Pseudocode lesen und erstellen;
- einfache Lösungen in einer geeigneten Programmier- oder Lernumgebung umsetzen;
- Programme mit Testfällen prüfen und Fehler systematisch beheben;
- Lösungswege vergleichen, begründen und auf ähnliche Probleme übertragen;
Lerninhalte
Was Computational Thinking bedeutet
Computational Thinking ist nicht auf Computer beschränkt. Es beschreibt Denkstrategien, mit denen komplexe Aufgaben systematisch lösbar werden.
Das Ziel ist eine Lösung, die so klar beschrieben ist, dass sie von einem Menschen oder Computer nachvollzogen werden kann.
Probleme zerlegen und strukturieren
Eine große Aufgabe wird in kleinere Teile zerlegt. Bei einem Quizprogramm können dies Fragen speichern, Antwort einlesen, Antwort prüfen, Punkte zählen und Ergebnis ausgeben sein.
Zerlegung macht sichtbar, welche Teilprobleme unabhängig bearbeitet werden können.
Muster erkennen und Gemeinsamkeiten nutzen
Wiederkehrende Abläufe können zusammengefasst werden. Wenn zehn Fragen immer gleich geprüft werden, muss der Prozess nicht zehnmal neu erfunden werden.
Mustererkennung führt häufig zu Schleifen, Funktionen oder wiederverwendbaren Programmteilen.
Wesentliches hervorheben und Unwichtiges ausblenden
Abstraktion konzentriert sich auf Merkmale, die für die Lösung notwendig sind. Für einen Fahrkartenautomaten sind Farbe der Jacke oder Lieblingsmusik der Nutzerin irrelevant.
Zu starke Vereinfachung kann wichtige Informationen verlieren; gute Abstraktion ist daher eine begründete Auswahl.
Algorithmen als eindeutige Schrittfolgen
Ein Algorithmus ist eine geordnete, ausführbare und endliche Schrittfolge. Unklare Anweisungen wie „mach es passend“ sind für Computer ungeeignet.
Ablaufpläne und Pseudocode helfen, Logik zu prüfen, bevor konkreter Programmcode geschrieben wird.
Grundstrukturen der Programmierung verstehen
Eine Sequenz führt Befehle nacheinander aus. Eine Bedingung entscheidet abhängig von einem Wahrheitswert. Eine Schleife wiederholt Schritte.
Variablen speichern veränderliche Werte, Eingaben liefern Daten und Ausgaben machen Ergebnisse sichtbar.
Beispiele vom Problem zur Programmlösung
Ein Zahlenratespiel beginnt mit Problemdefinition und Ablauf. Danach werden Eingabe, Vergleich, Ausgabe und Wiederholung festgelegt. Erst anschließend erfolgt die technische Umsetzung.
Diese Reihenfolge verhindert, dass Programmieren zu blindem Ausprobieren einzelner Befehle wird.
Testen, Fehler finden und verbessern
Programme werden mit normalen, besonderen und fehlerhaften Eingaben getestet. Fehler werden reproduziert, eingegrenzt und schrittweise korrigiert.
Debugging ist keine Niederlage, sondern ein normaler Teil der Softwareentwicklung.
Übertragen und weiterentwickeln
Ein gelöster Algorithmus kann oft auf ähnliche Aufgaben übertragen werden. Eine Schleife zum Durchlaufen einer Fragenliste kann auch für Messwerte oder Namen verwendet werden.
Reflexion fragt, welche Teile allgemein und welche speziell für das ursprüngliche Problem waren.
Aufgaben für den Unterricht
Probleme in Teilaufgaben zerlegen
Arbeitsauftrag: Zerlegt eine Klassenveranstaltung oder ein kleines Softwareprojekt in klar abgegrenzte Teilprobleme.
Erwartetes Ergebnis: Zerlegungsbaum.
Muster in Aufgaben erkennen
Arbeitsauftrag: Markiert wiederkehrende Schritte in mehreren ähnlichen Arbeitsabläufen.
Erwartetes Ergebnis: Musterliste.
Unwichtiges ausblenden und Wesentliches wählen
Arbeitsauftrag: Entscheidet bei einem Problem, welche Informationen für die Lösung gebraucht werden.
Erwartetes Ergebnis: Abstraktionskarte.
Algorithmen als Schrittfolgen formulieren
Arbeitsauftrag: Schreibt eine eindeutige Anleitung für eine Alltagshandlung und testet sie mit einer anderen Gruppe.
Erwartetes Ergebnis: getesteter Algorithmus.
Ablaufpläne und Flussdiagramme erstellen
Arbeitsauftrag: Übertragt einen Algorithmus mit Start, Entscheidung, Wiederholung und Ende in ein Flussdiagramm.
Erwartetes Ergebnis: Ablaufplan.
Lösungswege in Programmiersprache umsetzen
Arbeitsauftrag: Programmiert eine kleine Aufgabe mit Eingabe, Verarbeitung und Ausgabe in einer geeigneten Lernumgebung.
Erwartetes Ergebnis: lauffähiges Programm.
Bedingungen und Schleifen gezielt einsetzen
Arbeitsauftrag: Erweitert das Programm um eine Entscheidung und mindestens eine sinnvolle Wiederholung.
Erwartetes Ergebnis: erweiterte Version.
Fehler finden und Programme verbessern
Arbeitsauftrag: Bearbeitet ein vorbereitetes fehlerhaftes Programm und dokumentiert Fehlerursache und Korrektur.
Erwartetes Ergebnis: Debugging-Protokoll.
Eigene Problemlösungen entwickeln
Arbeitsauftrag: Plant und programmiert ein kleines Quiz, Rechentool oder Spiel mit klaren Anforderungen.
Erwartetes Ergebnis: Mini-Projekt.
Lösungswege vergleichen und reflektieren
Arbeitsauftrag: Vergleicht zwei funktionierende Lösungen nach Verständlichkeit, Aufwand und Übertragbarkeit.
Erwartetes Ergebnis: Lösungsvergleich.
Reflexion zum Abschluss
Arbeitsauftrag: Erkläre an deinem Projekt, wo Zerlegung, Mustererkennung, Abstraktion und Algorithmus vorkommen.
Erwartetes Ergebnis: CT-Reflexion.
Selbstcheck
- Ich kann den Schwerpunkt „Computational Thinking nachvollziehen und Lösungswege in Programmiersprache umsetzen“ mit eigenen Worten erklären.
- Ich kann die Kernideen Zerlegung, Mustererkennung, Abstraktion und algorithmisches Denken erklären.
- Ich kann größere Probleme in bearbeitbare Teilprobleme zerlegen.
- Ich kann Wiederholungen und Gemeinsamkeiten erkennen.
- Ich kann wichtige von unwichtigen Informationen unterscheiden.
- Ich kann Algorithmen als eindeutige Schrittfolgen formulieren.