Computational Thinking
The driving theme behind the computational thinking movement is the idea that knowledge and skills derived from the field of computer science have far reaching applications that can be beneficial to all learners. Central to this skillset is the ability to encode ideas into a form that can be interpreted and executed by a computational device. Though this idea, or close variants, have been proposed frequently under a variety of names over the last half century (diSessa, 2000; Guzdial & Soloway, 2003; Guzdial, 2008; Papert, 1980; Wilensky, 2001), Wing’s (2006) recent call to make computational thinking a subject everyone should learn has brought renewed interest and excitement to the cause of bringing these skills into the mainstream.
Despite a long history of research to draw on, no clear consensus of where the boundaries of computational thinking lie has emerged (Grover & Pea, 2013). Wing defines computational thinking as: “the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent” (Wing, 2011). The Computer Science Teachers Association succinctly captures both the central goals of computational thinking and the importance of the skills stating: “the study of computational thinking enables all students to better conceptualize, analyze, and solve complex problems by selecting and applying appropriate strategies and tools, both virtually and in the real world” (2011). A National Research Council report on the scope and nature of computational thinking detailed a lengthy list of skills including: heuristic reasoning, reformulation of difficult problems by reduction and transformation, parallel processing, testing, debugging, simulation, and search strategies. (NRC, 2010, p. 3). Replacing a constrained set of skills tightly coupled to programming with this broader set of concepts opens the door to a much wider set of possible designs that learners can engage with as part of developing computational thinking skills. This more inclusive view has motivated us to look beyond conventional computer science contexts to find opportunities to design novel, engaging computational thinking learning environments that build on existing digital practices of young learners.