2. Was ist Computational Thinking?#

Nach wenigen Jahrzehnten der Digitalisierung erkennen wir heute in der Wissenschaft, dass das Denken (Thinking) im Bezug auf arithmetische und kombinatorische Operationen (Computation), einen völlig neuen Weg der Forschung und Entwicklung öffnet. Jedes Forschungsfeld hat heute einen Zweig des wissenschaftlichen Rechnens. Hier nur ein kleiner Auszug:

  • Computerphysik,

  • Computerbiologie,

  • Computersoziologie,

  • Computerpsychologie,

  • Computerkunst,

  • Computergestütztes Design

Auch gibt es immer größer werdende Anstrengungen, Computational Thinking wie das Lesen und Schreiben in den modernen Schulunterricht zu integrieren. Es scheint heute so wesentlich, dass es zur Vorbereitung auf die große, weite, digitale und mit Algorithmen durchzogene Welt unabdingbar geworden ist. Was aber ist Computational Thinking?

Lernziel

Sie können den Begriff Computational Thinking beschreiben, einordnen und gegenüber der Informatik und des Programmierens abgrenzen.

Definitionen des Begriffs Computational Thinking (CT) gibt es wie Sand am Meer. Wenn sie auch unterschiedliche Elemente betonen, so haben sie allesamt einen gemeinsamen Kern. Der Ursprung des Begriffs reicht bis in die 1950er Jahre zurück. Bekannt wurde er jedoch erst durch die Informatikerin Jeanette Wing, die ihn im Bereich der Schulbildung populär gemacht hat. Sie spricht in ihrem Artikel Computational Thinking von

CT als Konzept welches das Lösen von Problemen und das Entwerfen von Systemen regelrecht umarmt. – [Wing, 2006] (Übersetzung)

Shute et al. [2017] argumentieren, dass CT benötigt wird um Probleme algoritmisch (mit und ohne Hilfe des Computers) zu lösen. CT sei eine Art des Denkens und Handelns, welches sich durch bestimmte Fähigkeiten manifestiert. Es basiere auf den zentralen Prinzipien der Informatik. Es kann als Tätigkeit aufgefasst werden bei der Werkzeuge und Techniken der Informatik angewendet werden, um sowohl über natürliche wie auch künstliche Systeme und Prozesse nachzudenken.

Julian Fraillon et al. beschreiben Computational Thinking als

eine individuelle Fähigkeit einer Person um Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme zu bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem (digitalen) Computer operationalisiert werden können. – [Fraillon et al., 2019]

Computational Thinking entspringt aus den Möglichkeiten und Limitierungen, die Computer uns zur Verfügung stellen. Welche Form diese Computer annehmen, d.h., ob Mensch oder Maschine ist sekundär. Rechnersysteme und Berechnungsmodelle bestärken uns heute neue Probleme anzugehen, die früher als unlösbar galten. Die Frage ‚Was können wir lösen?‘ konkretisierte sich zu ‚Was ist berechenbar?‘ Eine Frage die wir bis heute nur teilweise beantworten können. Zudem fragen wir heute ‚Was der Mensch eigentlich noch kann, was die Maschine nicht kann?‘ und ‚Worin ist uns die Maschine überlegen?‘. Was ist also der fundamentale Unterschied zwischen menschlicher und künstlicher Intelligenz und gibt es diesen Unterschied tatsächlich?

Computational Thinking in seiner grundlegenden Form ist eine Aktivität, ein Denkprozess, der durch praktische Anwendung feingeschliffen wird. Es ist die Summe der mentalen Fähigkeiten mit denen wir

  1. Algorithmen bzw. Berechnungsschritte entwerfen, welche uns die Arbeit abnehmen, und

  2. die Welt als ein Zusammenspiel von Prozessen der Informationsverarbeitung erklären und interpretieren können.

In ihrem Artikel Computational thinking: the developing definition Selby and Woollard [2013] identifizieren Cynthia Selby und John Woollard CT ebenfalls als Denkprozess (Art und Weise um über Berechnungen nachzudenken) und fügen zwei Techniken an, die wir um weitere zwei erweitern:

  1. Abstraktion nutzen (Beschreibung gemeinsamer zugrundeliegender Eigenschaften und Funktionalitäten einer Menge von Entitäten)

  2. Dekomposition (Zerteilung komplexer Probleme in einfache wohl-definierte Teilprobleme)

  3. Muster erkennen (Strukturen in Informationen entdecken und nutzen)

  4. Algorithmen entwerfen (Lösungsstrategien entwerfen und diese formalisiert wiedergeben)

All diese Techniken sind miteinander verwoben.

Computational Thinking für Fortgeschrittene verlangt jedoch nach viel Erfahrung und einem gewissen Wissensstand im jeweiligen Anwendungsgebiet. Um wohlklingende Musik algorithmisch zu komponieren oder die Aerodynamik eines Flugzeugs durch Simulationen zu untersuchen, braucht es mehr als Mustererkennung, Dekomposition, Abstraktion und Algorithmen. Für ein gelungenes Musikstück braucht es Musikverständnis und für derartige Simulationen physikalischer Phänomene ist Wissen aus dem Bereich der Strömungsmechanik unerlässlich.

Um weitreichende Informationsverarbeitungssysteme und deren Interaktion mit uns Menschen zu begreifen, ist es notwendig Systeme, Programme, Algorithmen und menschliches Verhalten nicht im Vakuum, sondern als großes Ganzes zu betrachten. Schon heute interagieren wir mit künstlichen Intelligenzen bzw. intelligenten Systemen, deren Intelligenz durch Menschen implantiert wurde. Wir kommen noch nicht mit intelligenten künstlichen Körpern, wie etwa denen aus der Science Fiction Dystopie die Matrix, in Berührung. Die künstliche Intelligenz mit der wir es zu tun haben ist viel engmaschiger und dadurch unauffälliger in unser Leben integriert—wir können sie nicht so leicht ausfindig machen.

Um das Wesen dieser Intelligenz zu verstehen wird Computational Thinking gebraucht. Es warten spannende Fragen auf uns:

  • Können wir künstliche Intelligenz von einem bewussten intelligenten Lebewesen irgendwann nicht mehr unterscheiden (schwache KI)?

  • IST eine solche künstliche Intelligenz ein solches Lebewesen (starke KI)?

Um die angesprochene Verflechtung zwischen Mensch und Maschine zu begreifen und zu analysieren ist es notwendig wie Informatiker*innen, Soziolog*innen und Psycholog*innen zu denken. Die Auswirkungen der Digitalisierung ist in allen Bereichen unseres Lebens spürbar. Von der Transformation der Kinos und Musikalben hin zu Streaming-Diensten, der ständigen Erreichbarkeit von Informationen, Meinungen, Diensten und Menschen, bis zur Vorhersage des menschlichen Verhaltens durch die Analyse weniger Mausklicks, ist alles dabei. Welche Auswirkung hat die Interaktion mit dieser informationsverarbeitenden Welt auf uns Menschen? Dienen diese Systeme uns oder dienen wir ihnen? Welche Chancen aber auch welche Gefahren und Risiken bringen sie? Für das Stellen und Betrachten dieser Fragen ist ein kühler Kopf—ist Computational Thinking—eine notwendige Vorraussetzung.

Nach Jeanette Wing bedeutet Computational Thinking konzepieren, nicht programmieren. Es ist eine fundamentale Fähigkeit um in der technologisierten Gesellschaft zurechtzukommen und keine routinierte Fähigkeit. Computational Thinking ist eine Denkweise des Menschen nicht der Maschinen. Es bedeutet nicht wie ein Computer, sondern wie ein Informatiker oder eine Informatikerin zu denken [Wing, 2006].

Digitale Computer sind an und für sich primitive Maschinen, die wir nutzen um auf kreative Weise spannende Probleme zu lösen. Dabei schöpft die Informatik ihre formale Basis aus der Mathematik—sie ist eine Formal- bzw. Strukturwissenschaft, jedoch keine Naturwissenschaft! Da Informatiker*innen Systeme erschaffen, die mit der Welt interagieren ist die Informatik zudem eine Ingenieurwissenschaft. Damit ergänzt und kombiniert Computational Thinking formales, mathematisches und schaffendes Denken.

Computational Thinking erzeugt Ideen oder Konzepte und keine Verbrauchsgüter. Es ist nicht nur das Programm oder die Software/Hardware die als Resultat übrig bleibt. Computational Thinking erzeugt Konzepte des Berechnens, welche wir in einen Ideenkatalog aufnehmen können um künftige Probleme zu lösen oder die Welt anders interpretieren zu können. Computational Thinking ist für uns alle erlernbar und findet fast überall statt. Das Bild der Informatiker*innen als reine Programmierer*innen war schon immer unsinnig. Die Fähigkeit des Computational Thinkings steckt in jedem von uns und ist heute vielleicht tatsächlich so wichtig wie das Lesen und Schreiben.

Was also bedeutet Computational Thinking für uns? Wir verwenden die Defintion, welche in der ICILS 2018 Studie (International Computer and Information Literacy Study) herausgearbeitet wurde:

Computational Thinking

Computational Thinking (CT) bezieht sich auf die individuelle [und universal anwendbare] Fähigkeit einer Person, eine Problemstellung zu identifizieren und abstrakt zu modellieren, sie dabei in Teilprobleme oder-schritte zu zerlegen, Lösungsstrategien zu entwerfen und auszuarbeiten und diese formalisiert so darzustellen, dass sie von einem Menschen (oder auch einem Computer) verstanden und ausgeführt werden können. – Universität Paderborn, ICILS 2018

Es ist eine universelle Aktivität bei der wir (1) Probleme identifizieren, (2) diese modellieren und in kleine Probleme zerlegen, (3) Lösungen entwerfen um schließlich (4) unsere Lösung in einer unmissverständlichen (formalen) Form zu beschreiben.