Computational Thinking Pattern

Aus Scalablegamedesign
Version vom 26. September 2017, 15:05 Uhr von MichaelMittag (Diskussion | Beiträge) (→‎Auszählen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

"Computational Thinking" meint, dass Probleme so formuliert werden, dass sie von Computern bearbeitet werden können.

"Computational Thinking Patterns" sind Denk- und Analysemuster, welche dazu dienen, Computational Thinking umzusetzen. Indem Kinder "Computational Thinking Patterns" anwenden, lernen sie, Probleme computergerecht zu formulieren. "Computational Thinking Patterns" können auch in der realen Welt gesehen werden und schlagen somit eine Brücke zwischen der Alltagserfahrung und der Computertechnik.


Muster

Computational Thinking Pattern

Computational Thinking Patterns (Informatische Denkmuster) befinden sich an der Schnittstelle zwischen menschlicher und maschineller Informationsverarbeitung. Im Rahmen von Scalable Game Design und der Vermittlung auf Primarstufe verwenden wir Muster, welche auf Spiele anwendbar sind und sich recht nahe am Alltagserleben von Kindern befinden. Kinder können beispielsweise sehr gut nachvollziehen, was beim "Schieben" geschieht und welche verschiedene Möglichkeiten es gibt, etwas zu schieben. Sie können dieses Alltagswissen dann verwenden, um informatische Probleme zu lösen, wie sie im Rahmen der Spieleprogrammierung auftreten.

Im Erlernen von regulärem Programmieren werden üblicherweise weitere Denkmuster erworben, welche näher daran orientiert sind, wie Computer funktionieren: Entscheidungsbedingungen (if...then), Schleifen (for...next), Funktionen, Klassen, Methoden und so weiter. Diese werden hier nicht explizit besprochen, sondern werden von den Kindern beiläufig erworben, da sie in der Funktionsweise von AgentSheets und AgentCubes enthalten sind, auch ohne dass sie speziell von den Benutzenden als Struktur erzeugt werden müssen.

Es gibt eine Reihe von Mustern in der aktuellen Literatur, zur besseren Übersicht werden sie hier in Gruppen eingeteilt.

Existenz

Verarbeitung erfordert oft, dass Elemente entstehen oder abgebaut werden.

Generieren

Generieren

Ein neues Element entsteht, zum Beispiel neben einem bestehenden. Beispiele sind:

  • Ein Raumschiff feuert einen Schuss ab.
  • Aus einer Höhle kommen Monster.


Absorbieren

Absorbieren

Ein Element verschwindet. Beispiele sind:

  • Pac Man isst einen Punkt.
  • Ein Auto verschwindet in einem Tunnel.


Fortbewegung

In einem Spiel bewegen sich Spielfiguren über ein Feld.

Tastensteuerung

Tastensteuerung

Die Spielfigur bewegt sich nach den Tasten, die gedrückt werden.

Je nach Spiel bewegt sich die Spielfigur auch konstant vorwärts und ändert einfach die Richtung, wenn eine Taste gedrückt wird.


Ziehen

Ziehen

Ein Agent zieht einen anderen Agenten hinter sich her. Dieses Pattern ist nicht besonders häufig in Spielen, aber es eignet sich gut als Beispiel, da es viele Möglichkeiten gibt, es umzusetzen. Beispiele sind:

  • Ein Zug zieht Wagen nach sich.
  • In "Snake" zieht der Kopf der Schlange die weiteren Elemente des Körpers nach sich.


Stossen

Stossen

Ein Agent schiebt einen anderen Agenten vor sich her. Dies ist ein oft verwendetes Muster in Puzzle-Spielen.


Transportieren

Transportieren

Ein Agent führt einen anderen Agenten mit sich. In AgentCubes geschieht dies, indem die Agenten aufeinander gestapelt sind.


Kollision

Kollision

Die Kollision von zwei Agenten wird überwacht und das Spiel reagiert darauf. Kollision ist in den meisten Spielen wichtig:

  • Die Spielfigur wird durch Kollision mit Wänden daran gehindert, das Spielfeld zu verlassen.
  • Das Spiel wird beendet, wenn die Spielfigur mit einem Gegner kollidiert.
  • Ein Gegner wird vom Spielfeld entfernt, wenn er Kontakt mit einem Projektil macht, welches die Spielfigur abgefeuert hat.


Komplexe Verhaltenssteuerung

Auszählen

Polling

Häufig wird der Spielverlauf beeinflusst vom Zustand einer Menge von Agenten. In diesem Fall muss ausgezählt werden. Beispiele:

  • Pac Man gewinnt, wenn keine Pillen mehr auf dem Spielfeld sind.
  • Space Invaders ist fertig, wenn keine gegnerischen Raumschiffe mehr auf dem Spielfeld sind.

Choreographie

Choreographie

Für komplexe Bewegungen mehrerer Agenten kann es notwendig sein, dass die Bewegungen zentral choreographiert werden. So bewegen sich eine Reihe von Agenten synchron, zum Beispiel die Raumschiffe im Spiel "Space Invaders".


Diffusion

Diffusion

Damit sich eine Spielfigur gezielt bewegen kann, wird Information auf dem Spielfeld verteilt. Typischerweise wird die Information von einem Agenten gestreut und nimmt dann ab, je weiter man vom Agenten entfernt ist. Der Agent bekommt also einen "Duft".

Ein Beispiel ist, wenn Gegner die Spielfigur verfolgen sollen. Die Spielfigur streut dann einen "Duft", und die Gegner können dem Duft folgen, um zur Spielfigur zu gelangen. Dieses Muster erlaubt es, recht komplexe Bewegungsmuster umzusetzen.


Hügel ersteigen

Hügel ersteigen

Dieses Muster ist das Gegenstück zur Diffusion. Wenn auf dem Spielfeld Information verteilt ist, dann können die Spielfiguren Ziele verfolgen, indem sie einfach "dem Duft folgen", also von Feldern mit tiefen Werten zu Feldern mit höheren Werten aufrücken.


Kollaboratives Hill Climbing (mehrere Agenten)

Ein sehr komplexes, aber nicht allzu schwierig umzusetzendes Muster ist, dass Agenten zusammenarbeiten, um zum Gipfel zu gelangen. So können Gegner verschiedene Wege verfolgen, um zur Spielfigur zu gelangen.

In der Umsetzung geht man so vor, dass ein Gegner jeweils den Duft absorbiert an der Stelle, wo er selbst gerade ist. So folgen die anderen Gegner dann anderen Pfaden, um zur Spielfigur zu gelangen. Die Spielfigur wird von den Gegnern sozusagen umzingelt.


Hierarchisches Hill Climbing (mehrere Bedürfnisse)

Ein anderes komplexes Muster ist, dass die Spielfigur mehreren Düften folgt. Zum Beispiel sucht sie Nahrung auf, wenn sie Hunger hat, und geht zu Bett, wenn sie müde ist. Zur Umsetzung muss eine Hierarchie umgesetzt werden, so dass jeweils klar ist, welches Bedürfnis am stärksten ist.