· 

Computational Thinking - Denken wie ein Informatiker

1. Einführung

Was ist einer der grundlegendsten Unterschiede zwischen einem Informatiker und einem Nicht-Informatiker? Seine Denkweise! Computational Thinking ist eine der zentralen Fähigkeiten, die Informatiker während ihres Studiums erlernen und dann zum Lösen von Problemen einsetzen. In vielen Ländern (so auch in Deutschland) wird bereits darüber nachgedacht, wie man bereits Schülerinnen und Schülern diese Fähigkeiten beibringen kann und zwar unabhängig davon, ob sie später einmal Informatik oder Germanistik.studieren wollen. Denn Computational Thinking ist nicht, wie es der Name vermuten lässt, das "Denken wie ein Computer", sondern vielmehr ein Problemlösungsprozess, der weit über die Informatik alleine hinausgeht. 

In meinem Kurs "Algorithmen verstehen" geht es also nicht nur darum, die Funktionsweise diverser Algorithmen nachzuvollziehen und anwenden zu können, sondern auch darum die Fähigkeiten zu erwerben, selbst Algorithmen entwickeln zu können. Es ist egal, ob du Schüler oder Student der Biologie, BWL, Chemie, Physik, Geologie oder Informatik bist: Computational Thinking ist in allen Wissenschafts- und Alltagsbereichen eine in Zukunft unverzichtbare Fähigkeit. Um diese Fähigkeit zu erwerben, musst du die folgenden Teilbereiche meistern:

  • Ein Problem in mehrere Bestandteile zerlegen. In der Literatur ist das z. B. das Zerlegen eines Gedichts in das Reimschema, die Struktur, den Stil, die Bedeutung usw.. Wenn du ein Problem in seine Bestandteile zerlegst, erhältst du ein besseres Verständnis über seine eigentliche Natur. 
  • Musterkennung. In den Wirtschaftswissenschaften sind Muster z. B. in dem Verkauf bestimmter Waren finden. Man erkennt z. B., dass in den Monaten Juni bis September ein erhöhter Verkauf von Eiscreme zu verzeichnen ist und kann sich dann auf die Suche nach den Gründen begeben. Daraus kann man dann wiederum Verkaufsmodelle entwickeln, die langfristig Gewinne erwirtschaften. Es lohnt sich also durchaus auch für einen selbst, sich mit solchen Modellen zu beschäftigen.
  • Abstraktion. Durch Abstraktion identifiziert man die grundlegenden Prinzipien, die für die beobachteten bzw. erkannten Muster sorgen. Wenn du als Muster den sehr guten Geschmack deiner gebackenen Käsekuchen erkannt hast, identifizierst du im nächsten Schritt, was dafür gesorgt hat, dass der Käsekuchen so lecker war. Später kannst du die Ergebnisse deiner Abstraktion dazu nutzen, um Algorithmen (also Rezepte) zu entwerfen, die es auch anderen ermöglichen, leckere Käsekuchen zu backen.
  • Algorithmenentwurf. Am Ende eines Problemlösungsprozesses steht der Algorithmenentwurf, in dem du die Lösung als konkrete Handlungsanweisungen formulierst.

Das klingt im ersten Moment alles vielleicht etwas trocken. Du wirst mit der Zeit aber merken, dass du langfristig von dieser Art zu denken profitieren wirst. Egal, ob in der Schule, an der Uni oder im Alltag.

Die Informatik beschäftigt sich mit der systematischen Verarbeitung von Informationen. Dabei werden u. a. auch Fragen geklärt wie:

  • Wie visualisiert man Informationen?
  • Wie speichert man Informationen am besten?
  • Wie verarbeitet man Informationen?

Die Informatik befasst sich also auch mit Berechnungsmodellen und ihren Anwendungen unter Zuhilfenahme von Computern. Computational Thinking auf der anderen Seite umfasst Fertigkeiten und Denkweisen, die genutzt werden, um solche Berechnungsmodelle zu entwerfen und Computerprogramme zu schreiben.

Der Mathematiker und Erziehungswissenschaftler Seymour Papert war übrigens der erste, der den Begriff "Computational Thinking" verwendet hat. Laut ihm müsse Mathematik ganz anders unterrichtet werden als es bisher der Fall gewesen wäre. Man müsse Mathematik so vermitteln, wie Computer arbeiten. Die Informatikerin Jeannette Wing ist der festen Überzeugung, dass Computational Thinking das Wichtigste sei, das ein Informatiker in seinem Studium lernt. Sie sieht die Vorteile jedoch nicht nur im Informatik-Umfeld, sondern auch in vielen Bereichen jenseits der Computerwissenschaft. Sie ist diejenige, der wir die Popularität des Computational Thinkings zu verdanken haben, da durch ihre Argumente die Firma Microsoft mehrere Millionen Dollar zur Verfügung stellte, um ein Zentrum zu errichten, in dem Computational Thinking und auch sein Einfluss auf andere Wissenschaftsdisziplinen fernab der Informatik, untersucht werden kann.


2. Algorithmisches Denken

Ein Herzstück des Computational Thinkings ist das Denken in Algorithmen. Auch wenn Douglas Adams "42" als die Antwort auf alle Fragen des Lebens, des Universums und des ganzen Rests propagierte, ist für einen Informatiker eine Lösung ein Algorithmus. Ein bestimmtes Sudoku zu lösen, ist im Kontext des Computational Thinkings keine Leistung - ein Algorithmus, mit dem man ein beliebiges Sudoku lösen kann, hingegen schon! Bleiben wir doch beim Sudoku-Beispiel: Wenn du mehrere Sudokus gelöst hast, wirst du dir sicherlich eine Strategie überlegt haben, wie du die leeren Kästchen schrittweise mit den richtigen Zahlen füllst. Und genau das, was du dir dort überlegt hast, ist ein Algorithmus. Das ist eine Lösung, die im 21. Jahrhundert etwas wert ist! Wenn man den Algorithmus zum Lösen eines Sudokus auf andere Sudokus anwendet, erhält man auch für diese eine Lösung oder kommt zur Erkenntnis, dass ein bestimmtes Sudoku überhaupt nicht eindeutig lösbar ist. 

Das Entscheidende hierbei ist, dass man Sudokus ohne wirklich nachzudenken lösen kann, wenn du genaue Anweisungen formulierst, wie ein Sudoku zu lösen ist. Durch das Formulieren dieser Regeln ist ein Computer dann in der Lage, jede erdenkliche Variation eines Sudokus (oder eines anderen Problems) zu löse und zwar, indem er die von dir definierten Handlungsanweisungen/Regeln stumpf befolgt. Diese Herangehensweise an Probleme (also das Entwerfen von allgemeinen Algorithmen statt spezieller Lösungen für bestimmte Ausprägungen des Problems) ist das, was die Fähigkeit des algorithmischen Denkens und somit auch des Computational Thinkings so mächtig macht:

  • Ein Algorithmus zum Lösen von Kreuzworträtseln löst eine ganze Gruppe von Kreuzworträtseln (und nicht nur eines). 
  • Ein Algorithmus zum Lösen quadratischer Gleichungen löst eine ganze Gruppe von quadratischen Gleichungen (und nicht nur eine).
  • Ein Algorithmus zum Erkennen von Hunden auf Bildern, erkennt Hunde auf einer ganzen Gruppe von Bildern (und nicht nur auf einem). 

Es reicht zum Beispiel nicht aus zu wissen, dass 40+2=42 ist. Ein Informatiker möchte einen Algorithmus haben, der ALLE Additionsaufgaben lösen kann. In der Grundschule lernt jeder Schüler bereits einen Algorithmus kennen, mit dem er Zahlen addieren kann und einmal gelernt, kann er ihn auf viele verschiedene Probleme anwenden. Das ist der Grund dafür, dass Grundschüler überhaupt rechnen können ohne sich jedesmal von Grund auf neu überlegen zu müssen, wie man Zahlen addiert. Ein Computer kann auch rechnen (und zwar viel, viel besser als es ein Mensch je könnte). Und warum kann er das? Weil er, wie ein Grundschüler, von seinem Lehrer (dem Menschen) einen Algorithmus dafür beigebracht bekommen hat, wie man rechnet. Die Sprachen, die der Mensch dafür verwendet hat, sind Programmiersprachen. Deshalb lernen wir in meiner Reihe "Alle Programmiersprachen lernen" die Konzepte des Programmierens kennen und erkennen diese dann in verschiedenen Programmiersprachen wieder. Das ist der Teilbereich "Abstraktion" des Computational Thinkings.

Es geht jedoch nicht, wie es bisher den Anschein hatte, um reine Berechnungen. Wer in Algorithmen denkt, kann die Welt nachhaltig verändern. Die Gründer von Google, Facebook und Amazon sind der beste Beweis dafür. Wenn du für ein Problem einen Algorithmus formulierst statt nur eine konkrete Lösung anzugeben und diesen dann noch als Programm einem Computer beibringst, kannst du den Algorithmus blind für dich arbeiten lassen:

  • Du kannst dir Filme und Serien, die nur zu bestimmten Zeiten laufen, automatisiert mitschneiden lassen. 
  • Zudem kannst du einen Roboter deine Wohnung saugen lassen, während du auf der Arbeit bist.

Bei dem Fragenportal LETSROCKMATHE haben wir es uns zur Aufgabe gemacht, dein Lern- und Erklärverhalten zu analysieren und dadurch einen Algorithmus zu entwerfen, der dich optimal beim Lernen und Helfen unterstützt.


3. Der Einfluss auf andere Wissenschaften

Wie bereits angeklungen ist, kann Computational Thinking auch die Art, wie wir Wissenschaft betreiben, beeinflussen. Es kann also nicht nur auf das Auffinden von Algorithmen als Lösung von Problemen reduziert werden.

Betrachten wir einmal die klassische Arbeitsweise in den naturwissenschaftlichen Fächern. Diese basiert auf Experimenten. Während Mediziner Arzneimitteltests durchführen, Chemiker verschiedene Stoffe zur Reaktion bringen und Physiker Versuche in der realen Welt durchführen, arbeiten Biologen am lebenden Organismus. Wenn man eine Theorie hat, wie z. B. Krebsgewebe Zellen im menschlichen Körper angreift, welchen Einfluss Handystrahlen auf die Konzentrationsfähigkeit des Menschen hat oder wie eine Ameisenkönigin ihre Arbeiter kontrolliert, führt man klassischerweise Experimente durch. Ein Informatiker kann solche Versuche auch durchführen, nur entwirft er dazu Algorithmen, die genauso wie die am Experiment beteiligten Parteien arbeiten. Informatiker schaffen auf Basis solcher Algorithmen also Computermodelle, mit dem sie solchen Forschungsfragen durch Simulation nachgehen können. Innerhalb des Computermodells können dann solche Experimente durchgeführt werden und müssen nicht in die reale Welt verlagert werden, was enorme Kostenersparnisse bedeutet. Wenn die aufgestellten Hypothesen korrekt sind, verhält sich die Simulation wie vorhergesagt. Andernfalls stimmt etwas mit der Annahme nicht. Das ist wissenschaftliche Arbeit par ex­cel­lence. Derartige Computermodelle sind aber selbstverständlich nur möglich, weil wir im Laufe der Jahrzehnte sehr viel Wissen in den jeweiligen Bereichen sammeln konnten, die eine Simulation überhaupt erst ermöglichen. Das Computermodell kann aber auch weitere Gesetzmäßigkeiten zutage fördern, die dann wiederum in der realen Welt überprüft werden können.

Computational Thinking ist eine fundamental wichtige Reihe von Techniken, die uns Werkzeuge an die Hand geben, mit denen wir bestehende Dinge optimieren und noch tiefer über die uns umgebende Welt nachdenken können.

Kommentar schreiben

Kommentare: 2
  • #1

    Felix (Samstag, 13 April 2019 19:53)

    Gibt`s eigentlich ein empfehlungswertes Buch, das in die Informatik einführt? Ich habe immer das Problem in diesem Bereich entweder absolute Anfängerbücher zu haben, die erklären wie man mit einer Maus umgeht, oder sehr spezielle Literatur, die sich an absolute Profis richtet, die das hauptberuflich machen.
    Wo ist das Buch für den, der das Anfängerniveau hinter sich gelassen hat?

  • #2

    André Dalwigk (Montag, 15 April 2019 17:17)

    Hallo Felix!

    Für ein Informatik-Studium eignet sich meiner Ansicht nach das Buch "Fit fürs Studium" vom Verlag "Rheinwerk Computing" ganz gut. Ansonsten natürlich auch mein YouTube-Kanal https://youtube.com/InformatikByAndréDalwigk ;)

    Das Problem mit den unterschiedlichen Niveaustufen kenne ich leider auch. Oft wird da kein gesundes Mittelmaß gefunden.

    Viele Grüße
    André