Alexander Meets Michotte: A Simulation Tool Based on Pattern Programming and Phenomenology

Introduction Educational end-user game programming tools Many educational visual programming tools are aimed at lowering the barrier of entry into computer science for end-users (Kelleher & Pausch, 2005). These tools often deemphasize syntax by enabling rule-based programming through drag and drop interfaces. Evidence shows that this strategy is successful at motivating students in the area of computer science (Kelleher & Pausch, 2005; Squire, 2003). [FIGURE 1 OMITTED] For example, a tool we currently employ at the University of Colorado Scalable Game Design Lab is AgentCubes. AgentCubes is an agent-based rapid end-user game and simulation prototyping tool (Repenning, 2011). In AgentCubes, users can quickly create 3D games consisting of agents, which are the in-game characters. Each agent contains a depiction of how it looks and behaviors that are the set of rules that dictate its action throughout the game run. Agent behaviors rely on if/then conditionality rules wherein each rule has 2 parts: an "if part containing conditions and a "then" part containing actions. AgentCubes currently provides users with a palette of 14 different conditions and 36 different actions that users can combine to create different agent behaviors. Figure 1 depicts a Lobster agent with one behavior rule that moves the lobster to the right when the right arrow key is hit. Previous research has shown that students can go from no prior programming experience to making their first game, Frogger, in 5 hours using AgentCubes (Repenning, Webb, & Ioannidou, 2010). How end-user game programming relates to computational thinking and simulation design In addition to motivating students through game design, many educational end-user programming tools also have the potential to enable "computational thinking" (Repenning, Webb, & Ioannidou, 2010). At present time, computational thinking is defined to include the following six items: problem formulation, logically organizing and analyzing data, representing data through abstractions such as models, automating solutions through algorithmic thinking, implementing effective solutions optimally, and transferring solutions to solve a large variety of problems (Barr, Harrison, & Conery 2011). Enabling simulation and modeling activities is a means by which these tools can facilitate computational thinking in the classroom. Jeanette Wing, former Assistant Director of the National Science Foundation and a major proponent of computational thinking, states the following: "The abstraction process--deciding what details we need to highlight and what details we can ignore--underlies computational thinking" (Wing, 2008). In creating representational systems of real world phenomena, users choose which aspects of the real world to model based on what problem they are attempting to solve or gain insight into. Ideally, computational thinking can be achieved by enabling a user to take a problem from the real world, create a representation of this problem using an end-user programming tool, and run experiments while altering simulation parameters to get a better understanding of the real world concept being studied. Computational thinking patterns In an attempt to formalize the link between game design and simulation creation, we have come up with a construct entitled "Computational Thinking Patterns. " Computational Thinking Patterns are agent behaviors users initially learn in game design but transfer to agent behaviors used in simulations (Basawapatna, Koh, Repenning, Webb, & Marshall, 2011). In this respect, Computational Thinking Patterns can be thought of as the "units of transfer" between game and simulation design. For example, in the game Pacman, users might learn the tracking pattern implementation to enable Ghost agents to chase after the Pacman agent. Similarly, in a predator/prey simulation a user might use the tracking pattern to have a hungry Fox agent chase after a Rabbit agent. …