Intuitive Modelle Der Informatik
Total Page:16
File Type:pdf, Size:1020Kb
Institut für Informatik Didaktik der Informatik Intuitive Modelle der Informatik Dissertation zur Erlangung des akademischen Grades "doctor rerum naturalium" (Dr. rer. nat.) in der Wissenschaftsdisziplin "Didaktik der Informatik" eingereicht am 1. März 2007 an der Mathematisch-Naturwissenschaftlichen Fakultät der Universität Potsdam von Dipl.-Inform. Michael Weigend Potsdam, den 1. März 2007 1 1. Gutachter: Prof. Dr. Andreas Schwill, Universität Potsdam 2. Gutachter: Prof. Dr. Carsten Schulte, Freie Universität Berlin 3. Gutachter: Prof. Dr. Werner Hartmann, Pädagogische Hochschule Bern Disputation am 26.11.2007 2 Abstract (deutsch) Intuitive Modelle der Informatik sind holistische gedankliche Vorstellungen über informatische Konzepte, die mit subjektiver Gewissheit verbunden sind. Menschen verwenden sie, wenn sie die Ar- beitsweise von Computerprogrammen nachvollziehen oder anderen erklären, die logische Korrektheit eines Programms prüfen oder in einem kreativen Prozess selbst Programme entwickeln. Intuitive Modelle können auf verschiedene Weise repräsentiert und kommuniziert werden, etwa verbal-abstrakt, durch ablauf- oder strukturorientierte Abbildungen und Filme oder konkrete Beispiele. Diskutiert werden in dieser Arbeit grundlegende intuitive Modelle für folgende inhaltliche Aspekte einer Programmausführung: Allokation von Aktivität bei einer Programmausführung, Benennung von Entitäten, Daten, Funktionen, Verarbeitung, Kontrollstrukturen zur Steuerung von Programmläufen, Rekursion, Klassen und Objekte. Mit Hilfe eines Systems von Online-Spielen, der Python Visual Sandbox, wird die psychische Realität verschiedener intuitiver Modelle bei Programmieranfängern nachgewiesen und fehlerhafte Anwendungen (Fehlvorstellungen) identifiziert. Schlagworte Analogie, Bildung, Didaktik, erklären, Fehlvorstellung, Informatik, Intuition, mentales Modell, Metapher, Problem lösen, programmieren, verstehen, visualisieren, Python Visual Sandbox. Abstract (English) Intuitive models in computer science are Gestalt-like mental concepts about information process- ing, which are accompanied by subjective confidence. People use them, when they try to understand the semantics of a computer programme, explain an algorithmic idea to someone else, check the logi- cal correctness of existing code or create computer programmes. Intuitive models can be represented and communicated in different ways using static pictures, animated movies, concrete examples or verbal language. In this paper basic intuitions concerning the following issues are discussed: allocation of activity within a running programme, assignment of names to entities, data, functions, processing concepts, control of programme execution, recursion, classes and objects. By observing activities with a set of specially designed online games (the Python Visual Sandbox), evidence has been collected to proof the psychological existence of certain intuitive models among high school students and identify inappropriate applications (misconceptions). Keywords Analogy, computer science, didactics, education, explaining, intuition, mental model, metaphor, misconception, problem solving, programming, understanding, visualization, Python Visual Sandbox. 3 Danksagung An erster Stelle gilt mein Dank Prof. Dr. Andreas Schwill (Universität Potsdam) für die vielen Er- munterungen, Anregungen und wissenschaftlichen Stellungnahmen zu meiner Arbeit. Meine Vorträge in Potsdam in den letzten drei Jahren waren immer eine Quelle für Motivation, Inspiration und Er- kenntnisgewinn, nicht zuletzt auf Grund scharfsinniger Anmerkungen von Ralf Romeike und anderen Mitarbeitern und Gästen des Instituts für Didaktik der Informatik. Die empirischen Erhebungen wären nicht möglich gewesen ohne die Kooperation der vielen Lehre- rinnen und Lehrern, Schülerinnen und Schülern, Studentinnen und Studenten, die an Visualisierungs- übungen und Workshops mit der Python Visual Sandbox teilgenommen haben und mir hoffentlich verzeihen, dass ich an dieser Stelle nur ihre Schulen bzw. Universitäten erwähnen kann: Arlington County School (Arlington, Virginia, USA), Rudolf-Diesel-Gymnasium (Augsburg), Ernst-Abbe- Gymnasium (Eisenach), Kopernikus-Gymnasium (Wissen), Gustav-Heinemann-Oberschule (Berlin), Humboldt-Gymnasium (Berlin), International American Highschool (Hongkong), International Ger- man and Swiss Highschool (Hongkong), Holzkamp-Gesamtschule (Witten), Klara-Schumann- Gymnasium (Bonn), Westfälische Wilhelms-Universität Münster, FernUniversität Hagen. Dank auch an Prof. Dr. Ming Ming Chiu und Prof. Dr. Fong Lok Lee (Chinese University of Hong Kong) für die anregenden Korrespondenzen und persönlichen Gespräche über Metaphern und E- Learning. Verbunden fühle ich mich der Python Community – insbesondere Jeff Elkner – für die Dis- kussion der Python Visual Sandbox auf der PyCon 2005 in Washington D. C. Nicht unerwähnt bleiben soll Hendrik Büdding (Universität Münster), der sich die Arbeit gemacht hat, das Manuskript kritisch durchzusehen. 4 Inhaltsverzeichnis Einleitung 12 1 Intuitive Modelle und informatisches Wissen 14 1.1 Intuition als Wissen 14 1.2 Intuition als prozedurales Wissen 14 1.3 Intuitive Modelle als bedeutungsbezogenes deklaratives Wissen 15 1.3.1 Begriffe – Identifikation von Objekten 15 1.3.2 Schemata – Speichern struktureller Merkmale 15 1.3.3 Mentale Modelle 16 1.4 Merkmale intuitiver Modelle 16 1.5 Phänomenologische Primitive 18 1.6 Intuitive Modelle und Fehlvorstellungen 18 2 Repräsentation intuitiver Modelle 20 2.1 Duale Kodierung von Wissen 20 2.2 Vielfalt und Flüchtigkeit 21 2.3 Repräsentation und Metaphorisierung 21 2.3.1 Uneigentliche Redeweise in der Informatik 21 2.3.2 Metaphern und analoges Denken 22 2.3.3 Metaphern als Bilder für intuitive Modelle 23 2.4 Beispiele als Repräsentationen intuitiver Modelle 25 2.4.1 Prinzipien der Beispielbildung 25 2.4.2 Prototypische Beispiele 26 2.4.3 Repräsentation durch eine Beispielkollektion 26 2.4.4 Beispiel-basiertes Problemlösen 27 2.5 Strukturorientierte und ablauforientierte Repräsentationen 27 2.6 Modellrepräsentationen im Unterricht 28 3 Verwendung intuitiver Modelle 29 3.1 Verstehen 29 3.1.1 Verstehen aus Sicht der Hermeneutik 30 3.1.2 Verstehen durch intuitive Modelle 30 3.2 Erklären 31 3.2.1 Fokussierung 31 3.2.2 Mehrperspektivität: Viele Modelle für eine Sache 33 3.3 Problemlösen 33 3.3.1 Antizipatorische Intuitionen 33 3.3.2 Ansatz und Verfeinerung 34 3.3.3 Paradigmatische Modelle und Software-Entwicklung 35 3.3.4 Entwurfsmuster (Design Patterns) 36 3.3.5 Use Cases – intuitive Modelle für Funktionalität 36 3.3.6 Intuitive Modelle im agilen Programmieren – The Planning Game 37 3.4 Kontrollmodelle 37 3.4.1 Zusicherungen 38 4 Empirische Erforschung intuitiver Modelle 40 4.1 Forschungsansätze und methodische Probleme 40 4.2 Visualisierungsübungen 40 4.3 Die Python Visual Sandbox 41 5 4.3.1 Die PVS als Spiel 41 4.3.2 Lernen mit der PVS 42 4.3.3 Überblick über den technischen Aufbau der Python Visual Sandbox 42 4.4 Python Visual 43 4.5 Python Puzzle 44 4.5.1 Dokumentation einer Session 46 4.5.2 Auswertung der Python Puzzle Sessions 46 4.5.3 Verwendung von Tipps 47 4.6 Python Puzzle assert 48 4.7 Python Quiz 48 4.7.1 Bewertung der Antworten 49 4.7.2 Dokumentation einer Session 49 4.7.3 Schlussfolgerungen zur Intuitivität von Modellen 50 4.8 Workshops mit der PVS 50 4.9 Systematisierung intuitiver Modelle der Informatik 51 5 Akteurmodelle 52 5.1 Daten als Akteure – Datenflüsse 52 5.2 Namen als Akteure 53 5.3 Funktionen 53 5.4 Allmächtige Steuerungsentität – monoaktive Systeme 53 5.5 Objekte 54 6 Benennung von Entitäten 55 6.1 Behältermodell und Referenzierungsmodell 55 6.2 Erscheinungsmodelle 56 6.3 Wem gehört ein Name? Zeiger versus Etiketten 58 6.4 Vermischung von Namensmodellen 59 6.5 Namen als Bezeichnungen für Rollenträger 60 6.6 Implizite Namen 60 6.7 Indirekte Namen 62 6.7.1 Funktionsaufrufe und mathematische Terme 62 6.7.2 Benennung durch Literale 63 6.8 Assoziationen 63 6.9 Benennung als Unterordnung 64 7 Daten 66 7.1 Ansicht versus Literal 66 7.2 Verwechseln von Wert (Datum) und Literal 66 7.3 Figürliche Ansichten 66 7.4 Nichts 67 7.5 Platzhalter für variable Teile in Dokumenten 68 7.6 Daten als Entitäten oder Zustände von Objekten 69 8 Funktionen 71 8.1 Funktion als Box mit Ein- und Ausgang für Daten 72 8.2 Dateneingabe über „Sensoren“ 73 6 8.3 Übergabe von Referenzen bei der Eingabe 74 8.4 Ursprung der Eingabespezifikation 74 8.5 Vergleich von Eingabemechanismen 74 8.6 Übergabe von Referenzen bei der Ausgabe 76 8.7 Ausgabe als Signal 78 8.8 Durchlässigkeit der Systemgrenze 79 8.8.1 Geschlossene Box 79 8.8.2 Box mit „Seitentür“ 79 8.8.3 Direkter Zugriff auf externe Objekte 79 8.8.4 Vergleich von offenen und geschlossenen Funktionsmodellen 80 8.9 Dynamische und statische Funktionsmodelle 81 8.10 Auslösemechanismen 83 9 Kontrolle – Steuerung 84 9.1 Handhabung von Kontrolle: Kontrollfluss und Kontrollübergabe 84 9.2 Anweisungssequenzen 84 9.3 Bedingte Anweisungen 85 9.3.1 Verzweigung des Kontrollflusses 85 9.3.2 Kontrolle von Datenflüssen – Datenweichen und Datensperren 86 9.3.3 Ereignismodell – Steuersignale 86 9.4 Iterationen – datengesteuerte Wiederholungen 86 9.5 Wiederholungen mit nicht antizipierbarem Ende 88 9.5.1 Kontrollierte Wiederholung einer holistischen Aktivität 89 9.5.2 Schleifen 90 9.6 Rekursion 90 9.6.1 Rekursion als Schleife 91 9.6.2 Rekursion als Selbstaufforderung 91 9.6.3 Fehlerhafte Verwendung des Modells der Selbstaufforderung 92 9.6.4 Delegationsmodell 93 9.6.5 Protokoll-Modelle für rekursive Algorithmen 93 9.6.6 Schema einer