Computational Thinking Pattern: Unterschied zwischen den Versionen

Aus Scalablegamedesign
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:


= Muster =
= Muster =
[[File:Computational Thinking.jpg|right|400 px|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.
Es gibt eine Reihe von Mustern in der aktuellen Literatur, zur besseren Übersicht werden sie hier in Gruppen eingeteilt.
{{clear}}


 
== Existenz ==
== Bauen ==


Verarbeitung erfordert oft, dass Elemente entstehen oder abgebaut werden.
Verarbeitung erfordert oft, dass Elemente entstehen oder abgebaut werden.
Zeile 15: Zeile 21:
=== Generieren ===
=== Generieren ===


[[File:generate.jpg|left|100 px|Generieren]]
[[File:generate.jpg|left|150 px|Generieren]]


Ein neues Element entsteht, zum Beispiel neben einem bestehenden. Beispiele sind:
Ein neues Element entsteht, zum Beispiel neben einem bestehenden. Beispiele sind:
Zeile 26: Zeile 32:
=== Absorbieren ===
=== Absorbieren ===


[[File:absorb.jpg|left|100 px|Generieren]]
[[File:absorb.jpg|left|150 px|Absorbieren]]


Ein Element verschwindet. Beispiele sind:
Ein Element verschwindet. Beispiele sind:
* Pac Man isst einen Punkt.
* Pac Man isst einen Punkt.
* Ein Auto verschwindet in einem Tunnel.
* Ein Auto verschwindet in einem Tunnel.
{{clear}}




{{clear}}


== Fortbewegung ==
== Fortbewegung ==
Zeile 41: Zeile 48:
=== Tastensteuerung ===
=== Tastensteuerung ===


[[File:navigate.jpg|left|100 px|Generieren]]
[[File:navigate.jpg|left|150 px|Tastensteuerung]]


Die Spielfigur bewegt sich nach den Tasten, die gedrückt werden.
Die Spielfigur bewegt sich nach den Tasten, die gedrückt werden.
Zeile 52: Zeile 59:
=== Ziehen ===
=== Ziehen ===


[[File:pull.jpg|left|100 px|Generieren]]
[[File:pull.jpg|left|150 px|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 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:
Zeile 61: Zeile 68:




=== Stossen ===
=== [[Stossen]] ===


[[File:push.jpg|left|100 px|Generieren]]
[[File:push.jpg|left|150 px|Stossen]]


Ein Agent schiebt einen anderen Agenten vor sich her. Dies ist ein oft verwendetes Muster in Puzzle-Spielen.
Ein Agent schiebt einen anderen Agenten vor sich her. Dies ist ein oft verwendetes Muster in Puzzle-Spielen.
Zeile 72: Zeile 79:
=== Transportieren ===
=== Transportieren ===


[[File:transport.jpg|left|100 px|Generieren]]
[[File:transport.jpg|left|150 px|Transportieren]]


Ein Agent führt einen anderen Agenten mit sich. In AgentCubes geschieht dies, indem die Agenten aufeinander gestapelt sind.
Ein Agent führt einen anderen Agenten mit sich. In AgentCubes geschieht dies, indem die Agenten aufeinander gestapelt sind.
{{clear}}
=== Choreographie ===
[[File:choreograph.jpg|left|100 px|Generieren]]
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".


{{clear}}
{{clear}}
Zeile 90: Zeile 88:
=== Kollision ===
=== Kollision ===


[[File:collide.jpg|left|100 px|Generieren]]
[[File:collide.jpg|left|150 px|Kollision]]


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




== Information ==


=== Befragen & Zählen (Polling) ===
== Komplexe Verhaltenssteuerung ==


[[File:poll.jpg|left|100 px|Generieren]]
=== Auszählen ===


Häufig wird der Spielverlauf beeinflusst vom Zustand einer Menge von Agenten. In diesem Fall muss eine Umfrage umgesetzt werden. Beispiele:
[[File:poll.jpg|left|150 px|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.
* Pac Man gewinnt, wenn keine Pillen mehr auf dem Spielfeld sind.
* Space Invaders ist fertig, wenn keine gegnerischen Raumschiffe mehr auf dem Spielfeld sind.
* Space Invaders ist fertig, wenn keine gegnerischen Raumschiffe mehr auf dem Spielfeld sind.
Zeile 112: Zeile 111:
{{clear}}
{{clear}}


=== Choreographie ===


=== Nummerieren & Identifizieren ===
[[File:choreograph.jpg|left|150 px|Choreographie]]


Wenn in einem Spiel Agenten gezielt angesteuert werden müssen, dann muss eine Möglichkeit vorhanden sein, diese zu identifizieren. Das kann zum Beispiel geschehen, indem die Agenten durchnummeriert werden.
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".


== Orientierung ==
{{clear}}


=== Pfad ===
Eine Möglichkeit, Spielfiguren gezielt zu bewegen, ist, sie einem Pfad entlang laufen zu lassen.


=== Diffusion ===
=== Diffusion ===


[[File:diffuse.jpg|left|100 px|Generieren]]
[[File:diffuse.jpg|left|150 px|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. Die Spielfigur bekommt also einen "Duft".
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.
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.
Zeile 133: Zeile 130:
{{clear}}
{{clear}}


=== Hill Climbing ===


[[File:climb.jpg|left|100 px|Generieren]]
=== Hügel ersteigen ===
 
[[File:climb.jpg|left|150 px|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.
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.
Zeile 147: Zeile 145:


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.
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) ===
=== 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.
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.

Aktuelle Version vom 26. September 2017, 15:05 Uhr

"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.