Skip to content

Computational Thinking

Algorithmen
teilweise übernommen von oinf.ch

Wie kommt man von einer (komplexen) Problemstellung auf eine algorithmische Beschreibung einer (schlauen) Lösung?

Mit Computational Thinking – «Computisches Denken» meint die Strategie, Lösungswege in eine Schritt-für-Schritt-Anleitung zu übersetzen.

Computational Thinking (auf Deutsch etwa «Informatisches Denken») beschreibt eine sehr allgemeines Menge von Denkfiguren (= Arten des Denkens), die bei der Problemlösung zum Einsatz kommen. Computational Thinking bezieht sich nicht notwendigerweise auf Algorithmen und auch nicht nur auf die Informatik. Vielmehr sollen die beschriebenen Denkweisen als Hilfestellung zur strukturierten Lösung aller möglichen Arten von Problemen dienen.

Die wichtigsten Denkfiguren des Computational Thinking sind:

Decomposition

Pizza in Bestandteile zerlegen

Ein grosses Problem wird in mehrere kleine zerlegt. Diese kleineren Teilprobleme sind einfacher zu handhaben bzw. zu bedenken, oft kann man sie einzeln nacheinander lösen. Dazu gehört ebenfalls die Strategie, zunächst eine einfachere Version des Problems zu lösen und den initialen Lösungsansatz dann auf immer allgemeinere Formen des Problems zu erweitern.

Pattern Recognition

Immer wieder Salami, Champignon und Oliven

Wiederkehrende Muster und ähnliche Teilprobleme, also gleichartige Strukturen werden identifiziert. So kann man sich bei der Lösungsfindung auf wenige Aspekte konzentrieren und durch die wiederholte Anwendung derselben Lösungsschritte auch umfangreiche Aufgaben meistern.

Abstraction

Eine Pizza ist Teig mit Zutaten

Das Problem wird aus einem gewissen Abstand betrachtet und über Details hinweggeschaut. Dieser Schritt ist beispielsweise nötig, um das Problem in seiner einfachst möglichen Form zu formulieren, in der nur noch die wirklich relevanten Informationen berücksichtigt werden.
Natürlich hilft die abstraktere Sichtweise auch bei Decomposition und Pattern Recognition, denn oftmals zeigt sich, dass zu Beginn verschieden erscheinende (Teil-)Probleme sich auf einen gemeinsamen Kern zurückführen lassen und mit derselben (wiederholten) Strategie zu lösen sind.
Bei komplexen Problemen ist es oft nötig, kontinuierlich mit verschiedenen Ebenen der Abstraktion umzugehen, beispielsweise wenn man eigentlich gerade eine Lösung für ein Teilproblem sucht, dabei aber den Zusammenhang mit dem Gesamtproblem auf der einen und der technischen Umsetzung auf der anderen Seite nicht ganz ausser Acht lassen darf.

Algorithm Design

Wie kann ich eine Pizza machen?

Die Lösung oder den Lösungsansatz wird in klar formulierte, einzelne Schritte aufgeteilt und eine Reihenfolge für diese Schritte festgelegt. Dazu gehört ebenfalls, dass man die Rahmenbedingungen für einen Algorithmus immer wieder überprüft (z.B. ob die Schritte eindeutig formuliert sind, ob der gefundene Lösungsansatz immer korrekte Ergebnisse liefert oder ob alle Varianten des Problems berücksichtigt sind).

Gymnasium Kirchenfeld, fts