Computational Thinking Tools: Unterschied zwischen den Versionen

Aus Scalablegamedesign
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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.
[[Datei:CT Tools-Grafik.png|mini|500px|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.
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 <b>Programming Support Tools</b> und <b>Creativity Support Tools</b>.
<br style="clear:both" />


 
==Programming Support Tools==
<ol>
<h3><li>Programming Support Tools</h3>
Diese Werkzeuge widmen sich der zielgerichteten Unterstützung von Lernenden in der kognitiven Dimension.
Diese Werkzeuge widmen sich der zielgerichteten Unterstützung von Lernenden in der kognitiven Dimension.
<ul>
<ul>
<li><b>Syntaktisch</b>: Werkzeuge, um syntaktische Probleme zu vermeiden wie z.B., drag and drop programming.
<li><b>Syntaktisch</b>: <i>Werkzeuge, die helfen, reine Syntaxfehler zu vermeiden wie z.B., drag and drop programming</i>. 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).
<li><b>Semantisch</b>: Werkzeuge, die zur Erforschung von Funktionen dienen wie zB., integrierte Hilfe-Funktionen, Live Programming.  
 
<li><b>Pragmatisch</b>: Werkzeuge, die Lernenden dabei unterstützen, die Bedeutung bzw. Funktionsweise eines Programms zu erkunden.</ul>
<li><b>Semantisch</b>: <i>Werkzeuge, die zur Erforschung von Funktionen dienen wie zB., integrierte Hilfefunktionen und Live Programming</i>. 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.
 
<li><b>Pragmatisch</b>: <i>Werkzeuge, welche die Untersuchung dessen, was Programme in bestimmten Situationen bedeuten, unterstützen</i>. 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).
</ul>


<h3><li>Creativity Support Tools</h3>
==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:
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:
<ul>
<ul>
<li><b>Application Programming Interfaces (APIs)</b>. APIs sind Produktivität unterstützende Werkzeuge, die für die Benutzer wichtige Funktionen implementieren, welche sie langwierig und mit grossem Aufwand selbst implementieren müssten.  
 
<li><b>Affordances</b>: Diese Werkzeuge haben klar definierte Ergiebigkeiten, das heisst klar erkennbare Funktionen, die Benutzern unmittelbar helfen, kreativ zu sein. Zum Beispiel die vier “Links”-, “Rechts”-, “Auf”- und “Ab”-Knöpfe am BeBoot zeigen deutlich, wie man den BeBoot programmieren muss, damit dieser sich in eine spezifische Richtung bewegt.
<li><b>Vordefinierte Bausteine</b>. Eine existierende Sammlung von 2D- oder 3D-Bausteinen kann, ähnlich wie die Bausteine in LEGO, kombiniert werden in 2D- und 3D-Artefakten.
<li><b>Design Scaffolds</b>: Design Scaffolds bieten Design-Gerüste an die sich vielseitig nutzen lassen. Ähnlich wie Tabellenkalulationsprogramme bietet AgentSheets ein 2D Grid an welches zu unterschiedlichsten zwecken genutzt werden kann. Minecraft und AgentCubes sind auf 3D Grids basiert welche sich extrem vielseitig nutzen lassen. </ul>
 
</ol>
<li><b>Benutzer-kreierte Bausteine</b>: könnte, ermöglichen digitale Creativity Support Tools es den Benutzern, auch selbst eigene, neue 2D/3D-Bausteine zu erstellen.
 
<li><b>Interaktionen</b>: 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.  
 
</ul>

Aktuelle Version vom 20. Februar 2018, 16:16 Uhr

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.