Computational Thinking Patterns (Portuguese)
A computational thinking pattern describes interactions between objects that are common to a large set of applications including game design and computational science. The computational thinking patterns captured here are a growing collection of patterns found to be useful in educating a wide array of users ranging from middle school students building video games to experienced scientist building computer models. The type of pattern description depends on the audience. Experienced computer scientists may appreciate the compact, formal quality of a UML diagram. For instance the interaction between a frog and truck in the Frogger game can easily be capturing as a UML sequence diagram. Middle school students, in contrast, may prefer that same interaction captured in a video featuring a person manipulating a plastic frog and truck to illustrate the interaction in a more concrete way. The computational thinking pattern is the same but it can, and should, in the spirit of scalable game design, be expressed in a number of ways differing in terms of level of concreteness and formality.
Computational thinking patterns are common to a number of computer science applications including game design, computational science and robotics. We conceptualize computational thinking education as a spiral approach starting with basic computational thinking patterns. For motivational reasons we typically start with game design. These basic computational thinking patterns are used to make basic 1980 arcade style game such as Frogger and Pac-man. The same patterns can be employed in computation science. This is very much in the spirit of teachers asking "now that you can build Space Invaders, can you build a computational science model of a mud slide?" We believe that if we cannot stimulate this kind of transfer then there may not be much, if any, computational thinking going on. Gradually, students move on to more sophisticated computational thinking patterns such as Maslow’s hierarchy of needs which can be used in game design to build sophisticated artificial intelligent agents used in games such as The Sims. This kind of idea based on layered behaviors maps nicely onto architectures found in robotics called subsumption architectures. Our research explores how this kind of transfer can be established - because we know it will not just happen automatically - and how we can evaluate it.