Modul 2
Computational Thinking
Willkommen in Modul 2 »Computational Thinking«. Dieses Modul führt in einen der zentralen Skills für das 21. Jahrhundert ein. Hier lernt Ihr, schwierige Aufgaben zu automatisieren und das systematische Lösen komplexer Probleme, die sowohl im privaten Alltag als auch im Beruf auftreten können.
Computational Thinking –
Was ist das eigentlich?
Computational Thinking (CT) ist ein Prozess zur Problemlösung, der hilft selbst komplexe, scheinbar unlösbare Herausforderungen zu bewältigen. Dabei geht es darum, ein Problem zu vereinfachen und eine Lösung so zu formulieren, dass sie von einem Computer ausgeführt werden kann.
CT beruht auf vier Grundpfeilern, die ausführlich in folgender Anleitung beschrieben werden. Ein großer Teil dieses Moduls besteht darin, diese Pfeiler in der Praxis anzuwenden. Ihr solltet also auf jeden Fall die Anleitung lesen:
📒 Anleitung: CT & 4 Pfeiler
Quelle: www.bbc.co.uk/education/guides/zp92mp3/revision
Anwendungsbeispiel
Computational Thinking und dessen vier Grundpfeiler lassen sich am besten anhand von Beispielen veranschaulichen. Im folgenden Beispiel sollen die Kosten für den 3D-Druck einer Kleinserie berechnet werden. Einige werden bereits in der Lage sein, das Beispielproblem intuitiv zu lösen, aber die Anwendung von Computational Thinking wird es uns ermöglichen, es systematisch zu bearbeiten. Das wird uns auf komplexere Herausforderungen vorbereiten.
Expertinnen-Interview mit Dr. Carmen Köhler
Wann ist Computational Thinking im Beruf oder Alltag nützlich, was hat das mit einer beruflichen Ausbildung zu tun? All das erklärt Euch Dr. Carmen Köhler in diesem Video!
»Practice makes perfect«
Wir haben nun einen guten Eindruck davon bekommen, dass Computational Thinking einige Aufgaben im Beruf erleichtern kann, und nun wollen wir es in unseren Alltag integrieren. Da Computational Thinking eine Fähigkeit ist, die durch Übung erlernt wird – ähnlich wie das Gitarrespielen oder Autofahren – werden wir uns nun auf praktische Übungsaufgaben konzentrieren. Dazu werden wir im Open Roberta Lab programmieren, da es einen einstiegsfreundlichen Rahmen bietet, um unsere Fähigkeiten im rechnerischen Denken zu stärken. Diese Fähigkeiten können dann leicht auf andere Kontexte oder Programmiersprachen übertragen werden.
In dieser Übung helft Ihr einem Landwirt. Dieser möchte sein Ackerfeld wie auf dem Bild dargestellt ernten, d. h. es sollen Quadrate verschiedener Längen abgefahren werden. Entwickelt mittels Computational Thinkings ein Programm, um Quadrate mit variabler Länge zu fahren. Diese Aufgabe dient vor allem dem Warmwerden, wer es also sehr eilig hat, kann sie auslassen. In jedem Fall habt Ihr hier die Lösung:
✏️ Übung: Die Ernte (Quadratfahrt)
💡 Lösung: Die Ernte (Quadratfahrt)
»It’s dangerous to go alone! Take this.«
Das Lösen von Problemen kann sich manchmal überwältigend anfühlen – vor allem am Anfang, wenn man noch wenig Erfahrung mit dem systematischen Lösen von Problemen auf der Grundlage der vier CT-Pfeiler hat. Aber keine Sorge, es gibt noch weitere Tipps, die Ihr beim Lösen und Programmieren von Problemen beachten könnt. Wir haben sie für Euch in der folgenden Anleitung zusammengestellt.
📒 Anleitung: Allgemeine Hinweise
Übung: Linienfolger
Ihr habt bereits ein gutes Verständnis dafür, wie Computational Thinking zur Lösung von Problemen eingesetzt wird. Daher werdet Ihr in dieser Aufgabe ein schon recht komplexes Problem lösen: Der Berliner Flughafen will als Hauptstadtflughafen technisch top ausgestattet sein und seine Gepäckwagen automatisieren. Die Gepäckwagen sind mit zwei Farbsensoren ausgestattet und sollen entlang einer vorgegebenen Linie fahren. Im folgenden Video erfahrt Ihr, wie dieses Problem mit Hilfe von Computational Thinking angegangen werden kann.
Ihr könnt auch versuchen, die Aufgabe zunächst selbst zu lösen und dazu das folgende Arbeitsmaterial als Anleitung verwenden.
✏️ Übung: Linienfolger
💡 Lösung: Linienfolger
🖼️ Hintergrundbild: C-Linie
Geschafft? Großartig! Das Lösen dieses Problems war echt nicht leicht! Dennoch konntet Ihr mittels Computational Thinking eine simple Lösung entwickeln. »Schön und gut, aber in meiner Branche werde ich niemals einen Gepäckwagen auf einem Flughafen automatisieren«, werden einige von Euch vielleicht denken. Das ist ein fairer Einwurf, aber stellt Euch das Lösen dieses Problems im Open Roberta Lab wie ein Training im Fitnessstudio vor: Ihr habt Eure Problemlösungsmuskeln gestärkt, was sich auch außerhalb des Fitnessstudios bemerkbar machen wird, somit auch in Eurem Beruf.
🎥 Wie so oft in der Programmierung, ist die hier erarbeitete Lösung nicht die einzig mögliche. Eine etwas komplexere Lösung, bei der das Fahrzeug gleichmäßiger fährt, wird im folgenden Video von Daniel Jung und Sophie Charlotte vorgestellt.
Divide and Conquer!
Ihr habt bereits festgestellt, dass die Zerlegungen von komplexen Problemen in kleinere Bestandteile unglaublich hilfreich ist.
Jedoch sind manche Zerlegungen geschickter als andere und erleichtern das Lösen von Problemen erheblich. Eine Dekompositionsstrategie sticht besonders hervor: Divide and Conquer (D&C). Divide and Conquer kann zum Beispiel in der Logistik eingesetzt werden, um Gegenstände effizient zu sortieren oder inmitten des Chaos zu finden. Das folgende Video gibt einen ersten Einblick, wie diese Methode beim Suchen und Finden helfen kann.
Das Video zeigt, dass die geschickte Zerlegung des Problems das Finden der gesuchten Bohne ungemein erleichtert. Dabei ist die Divide & Conquer-Methode nicht auf das Suchen oder Sortieren beschränkt, sondern ist ein allgemeines Hilfsmittel. In folgender Anleitung wird das Verfahren genauer erklärt, sodass wir es unserer Werkzeugkiste zur Problemlösung hinzufügen können.
📒 Anleitung: Divide & Conquer
Das Divide & Conquer-Verfahren ist bereits eine fortgeschrittenes Werkzeug. Macht Euch daher keine Sorgen, wenn ihr Euch nicht auf Anhieb damit wohlfühlt. Seht es eher als einen Ausblick auf weitere Problemlösungsstrategien.
Weitere interessante Links zum Thema Divide & Conquer:
» Divide and Conquer | Classic CS Unplugged
Hier findet Ihr noch zwei weitere Videos zu D&C-Suchalgorithmen.
» Merge Sort
Hier seht Ihr eine Visualisierung des D&C-Algorithmus »Merge Sort«
Übung: Kornfeld-Kunst
»Übung macht den Meister.« Um Eure Fähigkeiten zum systematischen Problemlösen zu festigen, wollen wir an dieser Stelle noch eine letzte gemeinsame Übung machen. Wenn Ihr dann das nächste Mal im Beruf oder Alltag mit einem Problem konfrontiert werdet, habt Ihr die vier Pfeiler des Computational Thinkings verinnerlicht und werdet die Situation souverän meistern.
Diesmal hat der Nachbar des Landwirts aus der vorherigen Übung »Die Ernte« ein Problem, denn er möchte seinen Nachbarn beeindrucken. Dazu will er kunstvoll geometrische Formen in sein Kornfeld mähen. Entwickelt mittels Computational Thinkings ein Programm, das ihm dabei hilft, Vielecke zu fahren. Details zu den Anforderungen, die das Programm erfüllen soll, findet Ihr in folgendem Arbeitsmaterial:
✏️ Übung: Kornfeld-Kunst
💡 Lösung: Kornfeld-Kunst
🎉 Glückwunsch!
Habt Ihr es bereits geschafft? Dann habt Ihr unglaublich viel getan und Euch eine neue Denkweise angeeignet, die Euch den Alltag erheblich erleichtern kann. Genial! Das müsst Ihr feiern! Lasst uns noch einmal zusammenfassen: In diesem Modul habt Ihr die Fähigkeit des Computational Thinkings erlernt und bereits mehrfach angewandt. Dabei habt Ihr komplexe Programmierprobleme zerlegt, Muster erkannt, Unwesentliches abstrahiert und Schicht-für-Schritt-Lösungen entwickelt. Das Open Roberta Lab diente uns dabei als eine Art Fitnessstudio, in dem wir gezielt unsere Problemlösemuskeln gestärkt haben. Ihr seid nun in der Lage, Lösungen zu programmieren, die einige Prozesse automatisieren und Euch das Leben erleichtern können. Wenn Ihr also in nächster Zeit vor einer großen, wiederkehrenden Herausforderung steht, versucht einfach, die erlernte Denkweise anzuwenden 😉
Im nächsten Modul beschäftigt Ihr Euch mit dem großen Themengebiet der Künstlichen Intelligenz (KI) und was uns in den kommenden Jahren noch erwarten wird. Dort lernt Ihr, was sich hinter dem Begriff »KI« verbirgt, an welchen Stellen wir sie bereits heute und in Zukunft einsetzen und welche Chancen und Herausforderungen, u. a. auch unter ethischen Gesichtspunkten, sie mit sich bringt. Außerdem geht es natürlich in die Praxis: Gemeinsam trainieren wir erstmals Künstliche Neuronale Netze.