Kategorien
Uncategorized

Computer Science Unplugged

Durch den Hinweis eines Kollegen bin ich über einen Artikel von Tim Bell mit dem Titel „CS Unplugged or Coding Classes?“ (Link) gestolpert, der in den Communications of the ACM veröffentlicht wurde. Darin beschreibt der Autor eine Diskussion, die in entsprechenden Kreisen wohl schon länger stattfindet und die mich ein Stück weit ratlos zurücklässt.

Zum Hintergrund: In den 1990er Jahren wurde Informatik teilweise ohne Computer unterrichtet, einfach weil es in Schulen gar keine keine entsprechende Hardware gab. Aber auch als die Ausstattung der Schulen besser wurde, wurden Ideen der Unplugged-Informatik beibehalten als Ergänzung zur Arbeit „an der Maschine“.

Extrempositionen, schon wieder

Das Überraschende für mich ist, dass die Diskussion über die Rolle der Unplugged-Informatik wohl teilweise von Extrempositionen aus geführt wird. Scheinbar gibt es ernsthaft Leute, die die Auffassung vertreten, man solle jede verfügbare Informatik-Minute auch am Computer zubringen. Und es gibt offenbar auch Leute, die der Meinung sind, man könne speziell die Ideen des Computational Thinking (auf das ich demnächst einmal ausführlicher eingehen muss) doch auch prima ganz ohne Computer vermitteln.

Das bringt mich zu einem Punkt, den ich in diesem Blog schon mehrfach angesprochen habe und der allmählich zu einer Art Mantra zu werden scheint: Ist es eigentlich tatsächlich so schwer, Mittelwege gehen? Muss wirklich jede Diskussion auf „alles oder nichts“ hinauslaufen? In welchem Bereich des wirklichen Lebens hätten denn solche Extrempositionen jemals funktioniert?

Käme beispielsweise jemand auf die Idee, das Schreinerhandwerk völlig ohne Kontakt zu Holz zu unterrichten? Oder besteht umgekehrt eine Schreinerlehre ausschließlich aus dem Hand-Werk, ohne Theorie, Material- und Werkzeugkunde oder künstlerischer Anwendung? Wird jemand ein herausragender Musiker, wenn er niemals ein Instrument spielt? Oder indem er endlos Partituren übt ohne sich jemals mit Theorie, Komposition, Geschichte oder der Wirkung von Musik auf Menschen zu beschäftigen?

Selbstwirksamkeit und Selbstkontrolle

Bell bezieht in seinem Artikel auch klar Position gegen eine ausschließliche Unplugged-Informatik. Sein Hauptargument dabei ist, dass das tatsächliche Arbeiten mit dem Computer den Schülern das Gefühl gibt, tatsächlich etwas erschaffen und verändern zu können – die berühmte Selbstwirksamkeit, ein Aspekt, der leider in allzu vielen Bereichen der Schule zu kurz kommt.

An dieser Stelle sei mir ein kleiner Exkurs erlaubt. Ich liebe den TEDx-Talk der großartigen Temple Grandin, in dem sie verschiedene Arten zu denken diskutiert und wie die Schule nicht diese jeweiligen Stärken fördert, sondern den durchschnittlichen Schüler, der ein bisschen von allem kann, bevorzugt. Vor allem aber betont sie auf ihre unnachahmliche Art, dass Selbstvertrauen und die Fähigkeit, Dinge zu erschaffen, nur entstehen, wenn wir aus Erfahrung gelernt haben, dass wir einen Unterschied in der realen Welt machen können. Ein Schulsystem, das Kindern diese fundamentale Erfahrung weitgehend vorenthält, hält sie genau wie ich für eine Katastrophe.

Vor diesem Hintergrund ist die praktische Arbeit mit dem Computer tatsächlich eine der wenigen, die Schülern und Studenten heutzutage überhaupt offenstehen. Darauf zu verzichten (aus welchen Gründen auch immer) beraubt sie der Möglichkeit, wenigstens an dieser Stelle einmal kreativ zu werden, etwas Konkretes, Funktionierendes zu erschaffen und nicht allein der Welt des Abstrakten zu verbleiben.

Ich persönlich schätze aber auch noch eine andere Eigenschaft des Computers in der Ausbildung, und zwar auch dann, wenn das Ziel gar nicht Informatik, sondern „nur“ Computational Thinking heißt: Der Computer ist ein unbestechlicher Schiedsrichter. Er lässt sich auf keine Diskussionen ein, ob die eigene Lösung nicht eigentlich doch brillant ist (und nur der Lehrer zu ignorant, um diese Brillanz zu erkennen) – wenn das Programm nicht läuft oder nicht das tut, was man erwartet hat, dann hat man etwas nicht verstanden und muss so lange weitermachen, bis man den Fehler gefunden hat. In der Informatik-Ausbildung ist das ein Grund, warum manche das Programmieren nicht mögen – es nimmt ihnen die Ausreden und zwingt sie, sich mit dem Thema wirklich so lange auseinanderzusetzen, bis sie den Durchbruch geschafft haben.

Kritische Leser mögen einwenden, dass das ein wenig nach konvergentem Denken klingt, also danach, dass man die eine, richtige Antwort finden soll und dass Kreativität dabei eher fehl am Platz ist. Das ist aber ein weit verbreitetes Missverständnis. Für jedes echte Informatik-Problem gibt es (beweisbar) unendlich viele Lösungen, und das Entwickeln einer guten und effizienten Lösung ist tatsächlich in den meisten Fällen eine kreative Tätigkeit, die in den Bereich des divergenten Denkens fällt. Das bedeutet aber nicht, dass man sich bei der praktischen Umsetzung Schlampigkeit erlauben darf, was die Programmierung übrigens mit dem Kunsthandwerk gemeinsam hat: Wenn ich mein Werkzeug nicht beherrsche, kann ich meine kreativen Ideen eben nicht umsetzen. Und eine Idee, die in der praktischen Umsetzung nicht funktioniert, ist eben doch nicht genial, sondern nur ein Traumgebilde.

Damit schließt sich übrigens auch der Kreis zum Mastery Learning, das ich an anderer Stelle bereits diskutiert habe. Es sollte nicht das Ziel von Ausbildung sein, alles mal angesprochen, aber nichts wirklich verstanden zu haben. Die Arbeit am Computer ist in besonderer Weise dazu geeignet, dem Lernenden ein Mittel zur Selbstkontrolle an die Hand zu geben. So kann er sich eine Arbeitsweise aneignen, bei der ein Thema wirklich verstanden wird – es muss verstanden werden, sonst läuft das Programm nicht.

Zusammenfassend würde ich daher davon ausgehen, dass der Unterricht in Informatik (und auch Computational Thinking) davon profitiert, wenn man den Mittelweg geht, d.h. sowohl Unplugged-Elemente als auch Programmierung einsetzt. Und die Studien, die im Artikel von Tim Bell zitiert wird, deuten darauf hin, dass diese Intuition richtig ist. Zum Glück.

Kategorien
Uncategorized

Problemlösen als Suchproblem

Das Modell von Newell und Simon

Die legendären Psychologen und KI-Pioniere Allen Newell und Herbert A. Simon beschrieben das Problemlösen in ihrem Buch Human Problem Solving (1972) in Form eines Suchproblems. Dazu überlegt man sich Folgendes:

  • Zu Beginn befindet sich das Problem in einem Startzustand. Ziel der Problemlösung ist es, einen Endzustand mit bestimmten Eigenschaften zu finden. Je nach Art des Problems kann es einen oder viele Endzustände geben (oder sogar die Erkenntnis, dass es keinen Endzustand gibt, der die gewünschten Eigenschaften besitzt).
  • Der Problemlöser verfügt über eine Reihe sogenannter Operatoren, mit denen er das Problem in einen neuen Zustand überführen kann.
  • Bei einem „echten“ Problem reicht es nicht aus, nur einen einzigen Operator anzuwenden, um in einen Zielzustand zu gelangen. Man muss eine Kombination von Operatoren finden, mit denen man in mehreren Schritten zum Ziel gelangt.

Die Menge aller möglichen Problemzustände wird auch als Problemraum bezeichnet – die Kunst des Problemlösens besteht dann darin, diesen Problemraum so effizient wie möglich zu durchsuchen.

Beispiel: Verschiebepuzzle

Beginnen wir mit einem künstlichen, stark verregelten Problem mit einem einzigen Zielzustand: einem sogenannten Verschiebepuzzle. Das nachstehende Beispiel zeigt auf der linken Seite einen möglichen Startzustand; Ziel ist es, den auf der rechten Seite abgebildeten Zielzustand zu erreichen. Dabei darf in jedem Schritt immer nur ein Stein verschoben werden, indem er auf das freie Feld bewegt wird.

Verschiebepuzzle – Start- und Zielzustand

Je nach Situation auf dem Brett sind daher pro Schritt maximal 4 verschiedene Züge möglich. Im ersten Zug können beispielsweise die Steine 4, 5, 1 oder 8 bewegt werden. Im zweiten Zug entstehen dann wieder andere Möglichkeiten, wie im folgenden Suchbaum dargestellt:

Verschiebepuzzle – erste Züge

Um eine Lösung zu finden, muss man eben diesen Baum durchsuchen. Da aber bereits ein Suchbaum mit nur 10 Zügen (die meist nicht ausreichen) knapp 75.000 Zustände besitzt und somit von einem Menschen nicht mehr vollständig durchsucht werden kann, braucht man eine Strategie, die klüger ist als „einfach mal alles ausprobieren“. Hilfreich sind dabei beispielsweise ein Qualitätsmaß (Ist der neue Zustand besser oder schlechter als der vorangegangene?), Erfahrung (Routinierte Spieler können oft gedanklich mehrere Züge zu einem einzigen Operator zusammenfassen und sparen so viel Zeit) und die Fähigkeit, mehrere Züge voraus zu denken und zu bewerten, ohne sie tatsächlich ausführen zu müssen.

Real-Life Problems

Nun mag das obige Beispiel noch recht konstruiert wirken, aber letztlich geschieht beim Lösen von Alltagsproblemen auch nichts anderes.

Stellen Sie sich vor, Sie kommen eines Abends aus dem Training und stellen fest, dass ein Reifen an ihrem Auto platt ist. Es ist dunkel, Sie können kaum etwas erkennen. Was tun Sie? Sie können zum Telefon greifen und den ADAC (oder einen kompetenten Freund) anrufen. Sie können ins Fitnessstudio zurückgehen und dort nach Hilfe fragen. Sie können sich selbst an die Arbeit machen und dabei feststellen, dass in Ihrem Auto gar kein Ersatzrad liegt (wie sie es in der Fahrschule vielleicht noch gelernt haben), sondern lediglich ein Reparaturkasten. Lernen Sie jetzt auf die Schnelle, Reifen zu reparieren? Suchen Sie sich jetzt doch Hilfe? Oder fahren Sie den Wagen einfach mit gesetztem Warnblinker auf der Felge heim? Letztlich stehen Sie vor einer Vielzahl von Handlungsalternativen, die unterschiedliche Vor- und Nachteile haben und oft auch nicht in einem Schritt zur Lösung führen, sondern weitere Schritte nach sich ziehen. Was genau Sie tun können, hängt von den Operatoren ab, die Ihnen zur Verfügung stehen, und unterscheidet sich von Person zu Person – der eine hat viele Bekannte, die er um Hilfe bitten könnte, der andere hat schon einmal einen Reifen repariert usw. Und zu guter Letzt mag auch jeder andere Anforderungen an den Zielzustand stellen – der eine will einfach nur nach Hause und hat kein Problem damit, den Wagen morgen von der Werkstatt abholen zu lassen, der andere will seinen fahrbaren Untersatz so schnell wie möglich wieder fahrtauglich bekommen.

Der Hauptunterschied zwischen Alltagsproblemen und konstruierten Problemen vom obigen Typ ist, dass die Zahl der Operatoren und möglichen Zustände bei Alltagsproblemen für gewöhnlich deutlich größer ist. Auch gibt es meist nicht nur einen einzigen Zielzustand, sondern eine ganze Reihe möglicher „Lösungen“, die unterschiedlich gut sind und mit unterschiedlichem Aufwand erreicht werden können. Unser Gehirn verwendet daher zum Problemlösen Heuristiken – es macht sich gar nicht erst die Mühe, eine perfekte Lösung zu finden, sondern versucht mit einem Näherungsverfahren eine akzeptable Lösung zu finden, die mit überschaubarem Aufwand erreicht werden kann.

Letztlich handelt es sich aber auch hier um ein Suchproblem, das durch einen Baum modelliert werden kann (auch wenn der Baum wahrscheinlich zu groß ist, um ihn aufzuschreiben). Informatiker erkennen die Art von Algorithmen, mit denen man solche Bäume durchsucht, sofort, und wir werden sie uns in den nächsten Beiträgen genauer ansehen – auch, weil sie uns helfen, die verschiedenen Klassen von Problemen und die dafür geeigneten Suchstrategien zu unterscheiden.

Kategorien
Uncategorized

Ein Lob der Prokrastination

„Prokrastination“ ist eines dieser Modewörter, die vor 25 Jahren noch kaum jemand kannte und die heute in aller Munde sind. Auf Deutsch spricht man auch von „Aufschieberitis“: Wer prokrastiniert, schiebt seine Aufgaben vor sich her, statt sie zu erledigen. Morgen, morgen, nur nicht heute… Gearbeitet wird erst, wenn die Deadline so nahe ist, dass die Panik sich auch von der besten Netflix-Serie nicht mehr unterdrücken lässt.

Prokrastination ist gerade für Personen, die sich ihre Zeit selbst einteilen können, ein riesiges Problem. An Hochschulen beispielsweise wird von Studierenden, aber sicherlich auch von so manchem Professor prokrastiniert, was das Zeug hält. So mag es nicht überraschen, dass es sogar Anti-Prokrastinationskurse gibt, und in so manchem Kurs zum Zeitmanagement wird ausgiebig diskutiert, was man gegen Prokrastination tun kann.

Die Phasen des kreatives Problemlösens

Wer schon einmal in der Verlegenheit war, ein größeres Denkproblem lösen zu müssen, und dabei erfolgreich war, der kennt vermutlich die folgenden Phasen des kreativen Problemlösens (z.B. nach Graham Wallas: The Art of Thought):

  1. Vorbereitung (preparation): Man beschäftigt sich anfangs intensiv mit dem Thema – man denkt darüber nach, schmiedet Pläne, sammelt Informationen, probiert Ideen aus usw. Dabei stellt sich irgendwann heraus, dass die gewohnten Methoden nicht zum Ziel führen – man steckt fest.
  2. Inkubation (incubation): Die eigentliche Erkenntnis, die man sucht, lässt sich häufig durch bewusstes Nachdenken nicht erzwingen. Der Verstand benötigt Zeit, um das Problem umzustrukturieren – ein unbewusster Prozess, der nicht selten stattfindet, während man etwas gänzlich anderes tut.
  3. Erkenntnis (illumination): Irgendwann fällt der sprichwörtliche Groschen – die Erkenntnis trifft den Problemlöser nicht selten wie der sprichwörtliche Blitz aus heiterem Himmel.
  4. Überprüfung (verification): Nicht jede Idee, die man hat, ist auch wirklich eine brauchbare Lösung. Sie muss daher überprüft werden – sie wird überdacht, ausprobiert, diskutiert o.ä.

Nach meiner Erfahrung sind alle vier Schritte beim kreativen Problemlösen unumgänglich. Gerade Schritt 2 wird dabei bei planerisch veranlagten Menschen gerne vergessen: Man schreibt einfach in den Kalender „8:00-12:00: Problem X lösen“ und vergisst dabei, dass das so gar nicht funktioniert. Ja, man muss sich intensiv mit dem Problem beschäftigen, aber dann muss man loslassen und das Unterbewusstsein seine Arbeit tun lassen. Ob man in der Zeit spazierengeht (wie es erstaunlich viele berühmte Mathematiker getan haben), eine Raucherpause einlegt, mit den Kollegen oder Kommilitonen quatscht oder Tischfußball spielt, ein Nickerchen macht, Sport treibt oder den Abwasch erledigt, spielt dabei keine große Rolle. Wichtig ist nur, dass das Gehirn sich nicht übermäßig anstrengen muss, damit Ressourcen für das Lösen des Problems zur Verfügung stehen. Und nicht selten wird man dann irgendwann mit einem Heureka-Moment belohnt. Bei mir selbst ist dies beispielsweise oft morgens direkt nach dem Aufwachen der Fall – das Gehirn hat mein Problem vom Vortag sprichwörtlich im Schlaf gelöst. Nicht jede Idee, die dabei herauskommt, taugt auch etwas (dafür hat man dann ja Schritt 4), aber ohne die Inkubationspause gibt es gar nicht erst eine Idee.

Zurück zur Prokrastination

In einem TED-Talk erklärt Psychologe Adam Grant, dass die so gefürchtete Prokrastination in Wirklichkeit genau hier ihren Nutzen hat: Sie zwingt uns, die Pause einzulegen, die das Gehirn benötigt, um das Problem zu lösen. Als kreative Denker sind nach seiner Analyse vor allem solche Menschen erfolgreich, die ein Projekt zunächst intensiv starten, dann prokrastinieren und dann gegen Ende (z.B. zur Deadline) hin wieder Vollgas geben.

Natürlich gibt es dafür eine Reihe von unabdingbaren Voraussetzungen. Zunächst einmal bringt natürlich auch das intensivste Prokrastinieren nichts, wenn man es versäumt hat, sich zuvor intensiv mit dem Thema auseinanderzusetzen. Und „intensiv“ ist hier wirklich das Zauberwort: Es genügt nicht, sich mal eben die Aufgabenstellung durchzulesen und dann vor den Fernseher zu fallen in der Erwartung, dass die Ideen dann schon kommen werden. Man muss mit der Fragestellung kämpfen, bis man guten Gewissens sagen kann: „Ich habe alles gemacht, was mir jetzt eingefallen ist“. Aber dann ist der richtige Zeitpunkt zum Prokrastinieren: dafür, etwas ganz anderes zu tun, damit das Unterbewusstsein seinen Job erledigen kann.

Ebenfalls wichtig ist es, die Prokrastination irgendwann zu beenden. Denn nicht selten gibt das Gehirn die neuen Ideen erst dann frei, wenn man wieder anfängt, sich mit dem Thema zu beschäftigen. Und es muss ja auch noch genügend Zeit sein, um diesen Prozess zu wiederholen, falls die erste Idee nicht gleich der Gewinner ist.

Mir ist schon klar, dass es pathologische Fälle von Prokrastination gibt, bei denen die Betroffenen überhaupt nichts mehr fertig bekommen und dringend Hilfe benötigen. Aber die „kleine Prokrastination“, die ich selbst mir als Student immer wieder zum Vorwurf gemacht habe (Aufgabenblatt anfangen, nicht mehr weiterkommen, Minesweeper spielen, Aufgabenblatt kurz vor der Deadline doch noch lösen), ist in Wahrheit ein ziemlich cleverer Mechanismus unseres Gehirns, um uns dazu zu bringen, die dringend benötigte Denkpause einzulegen, die neue Erkenntnisse überhaupt erst ermöglicht.

Natürlich muss man das Ganze nicht „Prokrastination“ nennen, und natürlich kann man solche Pausen auch ganz bewusst im Tagesplan vorsehen. Es mag kein Problem sein, acht oder zehn Stunden am Stück Routineaufgaben nachzugehen. Aber wenn die eigene Tätigkeit darin besteht, neue Probleme zu lösen (oder beispielsweise neuen Stoff zu verstehen), dann sind Inkubationspausen unabdingbar. Man sollte sie nicht verteufeln, indem man sie als „Aufschieberitis“ schlechtredet, sondern sie ganz bewusst zu einem festen Teil des Tagesablaufs machen.