Computational Thinking Pattern: Unterschied zwischen den Versionen
(9 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 == | |||
== | |||
Verarbeitung erfordert oft, dass Elemente entstehen oder abgebaut werden. | Verarbeitung erfordert oft, dass Elemente entstehen oder abgebaut werden. | ||
Zeile 26: | Zeile 32: | ||
=== Absorbieren === | === Absorbieren === | ||
[[File:absorb.jpg|left|150 px| | [[File:absorb.jpg|left|150 px|Absorbieren]] | ||
Ein Element verschwindet. Beispiele sind: | Ein Element verschwindet. Beispiele sind: | ||
Zeile 42: | Zeile 48: | ||
=== Tastensteuerung === | === Tastensteuerung === | ||
[[File:navigate.jpg|left|150 px| | [[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 53: | Zeile 59: | ||
=== Ziehen === | === Ziehen === | ||
[[File:pull.jpg|left|150 px| | [[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 62: | Zeile 68: | ||
=== Stossen === | === [[Stossen]] === | ||
[[File:push.jpg|left|150 px| | [[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 73: | Zeile 79: | ||
=== Transportieren === | === Transportieren === | ||
[[File:transport.jpg|left|150 px| | [[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}} | {{clear}} | ||
Zeile 91: | Zeile 88: | ||
=== Kollision === | === Kollision === | ||
[[File:collide.jpg|left|150 px| | [[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 102: | Zeile 99: | ||
== | == Komplexe Verhaltenssteuerung == | ||
=== | === Auszählen === | ||
[[File:poll.jpg|left|150 px| | [[File:poll.jpg|left|150 px|Polling]] | ||
Häufig wird der Spielverlauf beeinflusst vom Zustand einer Menge von Agenten. In diesem Fall muss | 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 114: | Zeile 111: | ||
{{clear}} | {{clear}} | ||
=== Choreographie === | |||
[[File:choreograph.jpg|left|150 px|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". | |||
{{clear}} | |||
=== Diffusion === | === Diffusion === | ||
[[File:diffuse.jpg|left|150 px| | [[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. Der Agent 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". | ||
Zeile 138: | Zeile 130: | ||
{{clear}} | {{clear}} | ||
[[File:climb.jpg|left|150 px| | === 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. |
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 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
Ein neues Element entsteht, zum Beispiel neben einem bestehenden. Beispiele sind:
- Ein Raumschiff feuert einen Schuss ab.
- Aus einer Höhle kommen Monster.
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
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
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
Ein Agent schiebt einen anderen Agenten vor sich her. Dies ist ein oft verwendetes Muster in Puzzle-Spielen.
Transportieren
Ein Agent führt einen anderen Agenten mit sich. In AgentCubes geschieht dies, indem die Agenten aufeinander gestapelt sind.
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
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
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
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
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.