Computational Thinking

Schematische Darstellung von Computational Thinking, generiert mit Claude Opus

Am Anfang eines Computerprogramms steht immer zunächst einmal eine diffuse Idee eines Menschen als grobes Zielbild für eine Problemlösung. Erst durch «Computational Thinking» (informatisches Denken) und die damit gemeinten gedanklichen Prozesse, kann die Software entstehen. Computational Thinking umfasst die Fähigkeit, Muster zu erkennen, komplexe Probleme zu zerlegen, Konzepte oder Zielbilder zu abstrahieren und in Abläufen/Sequenzen zu denken und alle gedanklichen Prozesse, die dafür notwendig sind.

Zurzeit gibt es mehrere Auffassungen, aus was sich informatisches Denken zusammensetzt (u.a. BBC Bitesize, FHNW, PHZH). Einer der Ansätze ist, dass «Computational Thinking» aus Techniken wie Dekomposition, Abstraktion, Algorithmen und Evaluation/Debugging besteht. Diese Techniken sind nicht nur in der Programmierung wichtig, sondern stärken die allgemeinen Problemlösekompetenzen.

Dekomposition: Zerlegen eines komplexen Problems in überschaubare Teilprobleme.

Abstraktion: Beschreibt den Vorgang, sich auf das Wichtigste zu beschränken und Irrelevantes wegzulassen. Hierzu zählt auch die Mustererkennung.

Algorithmen: Entwerfen logischer und geordneter Anweisungen zur Lösung einer Klasse von Problemen (Probleme, die etwas gemeinsam haben). Dazu zählt der Algorithmus-Entwurf (geordnete Schritte zur Lösung des Problems), Effizienz (finden der bestmöglichen Lösung) oder Automatisierung (Anwendung zur Lösung ähnlicher Probleme).

Evaluation/Debugging: Erkennen und lösen von Fehlern (und daraus lernen).

Der Prozess des «Computational Thinking» läuft meist dreistufig ab:

1. Ausführung und Bewertung der Lösungsrepräsentation: Z.B. Umsetzung eines Kuchenrezepts und die anschliessende Überprüfung.

2. Problemformulierung: präzise Fragestellung basierend auf einer Problemanalyse, Zerlegung in Teilprobleme.

3. Repräsentation einer Lösung: Darstellung einer möglichen Problemlösung z.B. eine Möbelmontageanleitung

Die Art und Weise wie Informatiker*innen zu Denken benötigen wir auch oft in unserem Alltag. Es sind grundlegende Fähigkeiten, die jeder Mensch beherrschen muss, um in unserer Gesellschaft bestehen zu können. Zum Beispiel beim Kochen eines Gerichtes nach Rezept werden die Prinzipien des «Computational Thinking» angewendet:  Nachdem das Wasser im Topf zu sieden beginnt, kann das Salz beigefügt und die Pasta in das sprudelnde Wasser gelegt werden. Währenddessen bleibt Zeit, um die Zutaten für die Sauce vorzubereiten oder den Salat nebenbei zu waschen. Der Prozess des Kochens beinhaltet parallele sowie aufeinanderfolgende Arbeitsschritte. 

Das Verständnis für den Unterschied zwischen sequenziellen und parallelen Prozessen ist grundlegend, um Lösungsstrategien für Probleme entwickeln zu können, in eine formale Sprache (Flussdiagramm) zu übersetzen und schliesslich in einer Programmiersprache für den Computer zu formulieren.  

Der Lehrplan 21 trägt dem Rechnung, in dem die überfachlichen Kompetenzen konkret die Problemlösefähigkeit benennen und im Modullehrplan Medien und Informatik das Programmieren im Sinne des Formalisierens als Kompetenzstufe integriert ist.

MI.2.2 | Informatik | Algorithmen

Die Schülerinnen und Schüler können einfache Problemstellungen analysieren, mögliche Lösungsverfahren beschreiben und in Programmen umsetzen.

Die Schülerinnen und Schüler…
können formale Anleitungen erkennen und ihnen folgen (z.B. Koch- und Backrezepte, Spiel- und Bastelanleitungen, Tanzchoreographien).
können durch Probieren Lösungswege für einfache Problemstellungen suchen und auf Korrektheit prüfen (z.B. einen Weg suchen, eine Spielstrategie entwickeln). Sie können verschiedene Lösungswege vergleichen.
können Abläufe mit Schleifen und Verzweigungen aus ihrer Umwelt erkennen, beschreiben und strukturiert darstellen (z.B. mittels Flussdiagrammen).
können einfache Abläufe mit Schleifen, bedingten Anweisungen und Parametern lesen und manuell ausführen.
verstehen, dass ein Computer nur vordefinierte Anweisungen ausführen kann und dass ein Programm eine Abfolge von solchen Anweisungen ist.
können Programme mit Schleifen, bedingten Anweisungen und Parametern schreiben und testen.
können selbstentdeckte Lösungswege für einfache Probleme in Form von lauffähigen und korrekten Computerprogrammen mit Schleifen, bedingten Anweisungen und Parametern formulieren.
können selbstentwickelte Algorithmen in Form von lauffähigen und korrekten Computerprogrammen mit Variablen und Unterprogrammen formulieren.

Weitere Pinchos, die weiterführend zu diesem Thema interessant sein könnten sind: Algorithmen, Programmieren

Video PH Bern zum Thema Computational Thinking

BY Konsortium MIA21
Dieser Beitrag ist lizenziert unter der Creative Commons Namensnennung 4.0 International Lizenz (CC BY 4.0).

Autorschaft