Computational Thinking Tools

Aus Scalable Game Design
Version vom 20. Februar 2018, 16:16 Uhr von Alex (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Grafik zu Computational Thinking Tools
Die Forschung zeigt, dass allgemeine Programmierwerkzeuge ineffizient sein können für die Vermittlung von Computational Thinking. Oft müssen lange, aufwendige Programme geschrieben werden, welche nur wenige Computational Thinking Konzepte abdecken. Das ist nicht im Sinne der Informatischen Bildung in Primarschulen. Computational Thinking Tools richten sich, im Gegensatz von Programmierwerkzeugen, nicht an zukünftige Programmierer sondern sogenannte Computational Thinkers. Das heisst, z.B., Spiele und Simulation können mit sehr geringen Aufwand und maximaler Unterstützung der Werkzeuge von SchülerInnen kreiert werden.

Computational Thinking Tools setzen sich mit zwei fundamentalen Herausforderung auseinander. Viele SchülerInnen nehmen Programmieren als schwierig und langweilig war. “Schwierig” ist eine kognitive Dimension und “langweilig” eine affektive Dimension dieser grundsätzlichen Herausforderung. Für diese Herausforderung braucht es Programming Support Tools und Creativity Support Tools.

Programming Support Tools

Diese Werkzeuge widmen sich der zielgerichteten Unterstützung von Lernenden in der kognitiven Dimension.

  • Syntaktisch: Werkzeuge, die helfen, reine Syntaxfehler zu vermeiden wie z.B., drag and drop programming. Auf der syntaktischen Ebene kann die Form eines Programms durch Offenlegung bzw. Anzeige der Mechanismen gesteuert werden. Zum Beispiel können Blöcke in AgentSheets / AgentCubes optionale Parameter haben. Die Sichtbarkeit dieser optionalen Parameter wird durch Anzeigemechanismen gesteuert. Wenn Nutzer auf ein Dreieck-Symbol klicken, werden optionalen Parameter ein- bzw. ausgeblendet. Darüber hinaus lassen sich mittels solcher Dreieck-Symbole alle Regeln einer Methode ein- oder ausblenden. Wenn die Regeln ausgeblendet sind, zeigt eine Methode immer noch ihre Dokumentation an. Der Anzeigemechanismus hat somit die Funktion eines Schalters: Er erlaubt den einfachen und schnellen Wechsel der Ansicht von der vollumfänglichen Implementierung der Methode einerseits oder nur deren Spezifikation andererseits. Der optionale Anzeigemechanismus für Parameter ist für den Begriff der zufälligen Komplexität in dem Sinne relevant, dass optionale Parameter typischerweise gewählt werden, um weniger wichtige oder sogar qualitativ unterschiedliche Parameter zu erfassen, die möglicherweise nicht relevant sind, um die Hauptfunktion eines Programms zu verstehen. In AgentSheets / AgentCubes werden im Gegensatz zu regulären Parametern, die beschreiben, was getan werden sollte, optionale Parameter verwendet, um zu beschreiben, wie es gemacht werden sollte (Repenning 2017).
  • Semantisch: Werkzeuge, die zur Erforschung von Funktionen dienen wie zB., integrierte Hilfefunktionen und Live Programming. Auf der Ebene der Semantik ist die Domain-Orientation (Fischer 1994) die Bereitstellung von Funktionen, die die Anforderungen spezifischer Anwendungsdomänen widerspiegeln. Der Hauptzweck der Domain-Orientierung im Sinne einer Verringerung der unbeabsichtigten Komplexität besteht darin, die ansonsten erforderlichen Funktionen eines Aufbaus von Grund auf zu eliminieren. Wenn eine Programmierumgebung häufig verwendet wird, um wissenschaftliche Visualisierungen zu erstellen, sollte sie eine Domain-Orientierung mit entsprechenden Funktionen enthalten, die für das Erstellen dieser Visualisierungen relevant und nützlich sind.
  • Pragmatisch: Werkzeuge, welche die Untersuchung dessen, was Programme in bestimmten Situationen bedeuten, unterstützen. Diese Werkzeuge sollten dem Nutzer praxisnah und effizient dabei helfen, Ideen umzusetzen oder über Probleme nachzudenken, indem sie sich auf konkrete Situationen und Kontexte beziehen anstatt auf allgemeine Theorien zu verweisen. Conversational Programming (Repenning 2013), ein pragmatisches Werkzeug integriert in AgentCubes, untersucht die spezifische Situation, in der sich Objekte befinden, und zeigt dann den Benutzern durch farbige Annotationen des Programms an, wie sich diese Objekte verhalten werden. In einem Frogger 3D-Spiel kann der Benutzer beispielsweise den Frosch, der über Strassen hüpfen soll, selektieren, um zu verstehen, was als nächstes mit dem Frosch passieren wird. Ist der Frosch zum Beispiel unmittelbar neben einem auf ihn zuratenden Auto zeigt das Conversational Programing, dass gleich eine Kollision erfolgt, durch welche der Frosch ‘sterben’ und das Spiel neu startet (Repenning 2017).

Creativity Support Tools

Diese Werkzeuge unterstützen Lernende primär bei Herausforderungen in der affektiven Dimension. Das Ziel von Creativity Support Tools ist es, den kreativen Prozess zu fördern, zu beschleunigen und zu erleichtern [NSF]. Im speziellen sollen Benutzer dabei unterstützt werden Artefakten wie zum Beispiel 3D Welten, Spiele, Simulation, Roboter, oder Mobile Apps zu erschaffen, die sie selbst interessieren. Dabei gibt es drei Stufen von Unterstützung:

  • Vordefinierte Bausteine. Eine existierende Sammlung von 2D- oder 3D-Bausteinen kann, ähnlich wie die Bausteine in LEGO, kombiniert werden in 2D- und 3D-Artefakten.
  • Benutzer-kreierte Bausteine: könnte, ermöglichen digitale Creativity Support Tools es den Benutzern, auch selbst eigene, neue 2D/3D-Bausteine zu erstellen.
  • Interaktionen: Um dynamische Artefakte zu kreieren, bedarf es Interaktionen zwischen den Bausteinen aber auch Interaktionen zwischen Bausteinen und den Benutzern. Diese Interaktionen sind im einfachen Fall vordefiniert. In komplexeren Fällen werden diese durch die Benutzer selbst anhand von sogenanntem End-User Programming (Lieberman, Paternò, and Wulf 2006) definiert werden.