Training Computational Thinking: Game-Based Unplugged and
Plugged-in Activities in Primary School
Katerina Tsarava1, Korbinian Moeller1,2,3, Niels Pinkwart4, Martin Butz5, Ulrich Trautwein6,3
and Manuel Ninaus1,3
1Leibniz Institut für Wissensmedien, Germany
2Department of Psychology, University of Tübingen, Germany
3LEAD Graduate School and Research Network, University of Tübingen, Germany
4Department of Computer Science, Humboldt-Universität zu Berlin, Germany
5Department of Computer Science, University of Tübingen, Germany
6Hector Research Institute of Education Sciences and Psychology, University of Tübingen,
Abstract: Computational thinking (CT) denotes the idea of developing a generic solution to a problem by decomposing it,
identifying relevant variables and patterns, and deriving an algorithmic solution procedure. As a general problem solving
strategy, it has been suggested a fundamental cognitive competence to be acquired in education - comparable to literacy
and numeracy. However, integrating CT into general curricula has been challenging. Therefore, the current project aims at
developing an extra-curricular training of CT for primary school students. From a literature review we identified seven
concepts central to CT: i) sequencing, ii) loops, iii) parallelism, iv) events, v) conditionals, vi) operators, and vii) data/variables.
In our targeted educational training program, we will specifically address these concepts (which are shared concepts
between CT and programming / computer science education) in 2-step procedures using corresponding game-based
unplugged and plugged-in activities. Playful unplugged activities, such as a treasure hunt board game for the concept of using
variables as placeholders for information, shall allow students getting a first grip on CT processes by actively engaging them.
In the game, a treasure is to be hunted by completing a series of arithmetic operations, in which players have to handle
different variables (e.g., dice faces, scores, etc.). Building on this unplugged activity, a related plugged-in scenario is a
programmable simulation of rain drops filling a glass. While raindrop and glass volume are constants, the fill level of the glass
may be the variable to manipulate. In both kinds of activities we aim at clarifying the association between CT-based solving
real-life problems and aspects of different STEM disciplines. The series of unplugged and plugged-in activities are integrated
into a gamified approach suitable for primary school children, employing badges for mastering specific CT processes to
increase students’ engagement and for giving feedback about their learning progress. The instructional design will integrate
principles of constructionism, game-based and project-based learning, such that students will construct knowledge through
playing and interacting with interdisciplinary educational scenarios. The course will be empirically evaluated with 3rd and
4th graders in primary schools. Thereby, the idea of evidence-based instruction is pursued to ensure efficiency and validity
of our training.
Keywords: computational thinking, programming, coding, unplugged activities, game-based learning, gamification
In recent years, there is growing emphasis on the importance of computer programming or coding skills as 21st
century skills (Wing, 2006, 2010; NRC, 2011). For STEM disciplines, in particular, programming/coding has been
argued to be an indispensable instrument for solving complex problems or increasing efficiency through
automation (Wing, 2010). Thus, fostering those relevant skills early on in education seems a desirable
prerequisite, preparing children for current and future demands of our knowledge societies, spanning from job
requirements to leisure time activities. Against this background, the current article proposes an educational
course and training for 3rd and 4th-graders to foster programming/coding skills. However, in contrast to most
similar courses, we take a more cognitive skill-oriented approach, integrating the training of
programming/coding skills into the conceptual theoretical framework of computational thinking (henceforth
CT), by employing 2-step procedures using unplugged and plugged-in activities. Moreover, we embedded this in
a game-based constructivist pedagogical approach with the aim of introducing CT to young students (by means
Katerina Tsarava et al.
of coding). CT as an overarching cognitive skill is closely related to the different STEM disciplines (e.g., Sanders,
2009). Thus, CT allows for an interdisciplinary perspective on the use of actual coding skills to solve real world
problems. Accordingly, the main contribution of this study will be the development of an integrated framework
that fosters coding competence as a practical skill and CT competence as a conceptual cognitive skill.
In the following, we will first elaborate on the close association between programming/coding as a practical and
CT as a cognitive skill, before highlighting the relevance of CT for modern educational programs. We then provide
a short overview of existing coding and CT trainings, followed by a detailed description of the training we
developed to foster coding in 3rd and 4th-graders and a brief conclusion.
1.1 Coding and computational thinking
Computer programming – also referred to as coding – has been coined a crucial 21st century skill due to the
constantly increasing need to keep up with the growing impact of information and communication technologies
(henceforth ICT) on human activities. ICT have become prevalent in many facets of everyday life, like production,
health and education, security, job requirements, but also leisure time activities etc. This is reflected in latest
interest of scientific organizations and also governments (e.g., European Schoolnet, European Coding Initiative)
all over the world on the establishment of an effective framework for introducing ICT, coding, and CT skills to
students already at a young age. Although these three terms share common meanings, they should not be
confused as identical. ICT skills refer to general skills related to the use of computer devices and relevant digital
content, like software, digital documents, etc. In contrast, coding skills describe the practical ability to write and
design software programs as functional computer applications. Finally, CT denotes more general cognitive
problem solving skills based on systematic and computationally oriented procedures (Balanskat & Engelhardt,
2015). Each of these skills is important not only to become a competent user of ICT, but also to be able to meet
the needs of our increasingly digitized world. However, while programming/coding is considered a more
practical skill, we want to emphasize that CT reflects a broader cognitive concept that is fundamentally critical
for becoming computationally literate, besides the fact that at least rudimentary CT is essential for the
acquisition of more practical coding skills (Balanskat & Engelhardt 2015; Garcia-Peñalvo et al., 2016). At the same
time, fostering CT, detached from coding, might result in rather subpar and abstract educational scenarios. This
fact supports latest efforts and increased interest into fostering CT as a conceptual cognitive skill, that can be
applied interdisciplinarily in different domains over the mere training of practical skills, such as coding (e.g.,
Yadav et. al, 2016; see also Figure 1).
Being able to code reflects the “21st century vision of students who are not just computer users but also
computationally literate creators” (https://k12cs.org/). Unsurprisingly, ideas to specifically promote and teach
coding abilities already starting in primary school have become increasingly popular (e.g., Balanskat &
Engelhardt, 2015; https://code.org/). Central concepts in coding are the generic ideas of sequencing, loops,
parallelism, events, conditionals, operators, and data/variables (e.g., Brennan & Resnick, 2012). Interestingly,
coding as a practical skill shares these concepts with the psychological construct of CT as a cognitive skill (see
Figure 2). Computational Thinking is construed 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” (Cuny et al., 2010). CT denotes the idea of developing a generic solution to a
problem by decomposing it, identifying relevant variables and patterns, and deriving an algorithmic solution
procedure (e.g., Wing, 2006; Kazimoglu, 2013). In fact, this closely resembles the proceeding in coding. As such,
code is usually organized in loops of sequences of defined events, that involve specific operations performed on
the to-be defined variables. Correspondingly, CT skills specifically draw on processes such as algorithmic
thinking, conditional logic, decomposition, abstraction, pattern matching, parallelization, evaluation, and
generalization (e.g. Wing, 2010; Briggs, 2014); thereby reflecting cognitive instantiations of concepts central to
coding. Importantly, these concepts as well as their cognitive counterparts in CT are not to be understood as
domain-specific in the sense that they can only be applied to the domain of computer science. Instead, CT should
be viewed as a much more general problem solving strategy, which can be applied to different domains over
and beyond computer science (e.g., deductive reasoning). Therefore, CT has been suggested a fundamental
cognitive competence that should be acquired in education – comparable to literacy and numeracy (Yadav et
Katerina Tsarava et al.
Figure 1: Illustration of Google trends over the course of time, for the search terms “computational thinking”
and “programming skills”. Worldwide interest (y-axis) reflects search interest of the corresponding
topic relative to the highest point in the chart (https://trends.google.com/trends/). [Accessed
Figure 2: Illustration of association between the practical skills of coding, CT as corresponding cognitive skills
and the broad applicability of CT as a general problem solving strategy to different content domains
such as STEM
Katerina Tsarava et al.
1.2 Computational thinking in education
As a general problem solving strategy, influences of CT are closely related to STEM disciplines (Barr and
Stephenson, 2011). Furthermore, CT has also begun to influence areas of active study over and beyond STEM
such as algorithmic medicine, computational archaeology, computational economics/finance, digital humanities
etc. (Wing, 2010). For this reason, governments and educational institutions all over the world worked on a
coherent definition of CT and the integration of CT in the curricula of educational programs of primary,
secondary, and higher education over the last decade. For instance, educational institutions in the US revised
their undergraduate curriculum in computer science and changed their first course in computer science to cover
fundamental principles and processes of CT as a cognitive skill (e.g. Perkovic et al., 2010; Wing, 2010). Moreover,
in 2013, the computer science curriculum for universities in the UK was revised, by focusing strongly on the
promotion of CT as a widely applicable and transferable skill in computer science (Brown et al., 2014).
Furthermore, the relevance and importance granted to CT is also reflected by the fact that in 2014 the European
Coding Initiative was founded. In collaboration with several European Ministries of Education, members of the
European Schoolnet and the support of major technological enterprises (e.g., Microsoft, Facebook), the initiative
aims at promoting a sensible integration and evaluation of coding and CT in the official educational curricula
(Balanskat & Engelhardt, 2015).
This envisaged societal relevance of CT and its wide range of applicability let us decide to develop a training of
practical coding skills, integrated into a course on CT applied to various STEM contexts for 3rd and 4th graders.
To realize broad applicability of the training and because of reasons of platform independency, we suggest that
coding in young ages should not be based on a specific programming language, as these change rapidly according
to market and technology changes. For this reason, we aimed at fostering children’s coding skills on the broader
and more transferrable level of CT. Moreover, we tried to avoid common concerns on introducing coding already
in primary school (Garcia-Peñalvo, 2016) by i) implementing a game-based approach of learning by doing, ii)
focusing on cognitive processes of CT and not on practical coding skills related to specific programming
languages, iii) using unplugged haptic games and plugged-in low-threshold visual programming environments,
and iv) by adopting an overarching gamified framework accompanying the training for maintaining and
increasing motivation. Thereby, we build our training on the theory of constructionism following the principles
of “learning-by-doing” (e.g., Harel & Papert, 1991), which were established and evaluated in well-known
environments for early programming, like the Logo programming language, Scratch, etc.
2. Course concept
2.1 Course aim
We specifically designed the course to address CT processes defined and identified as shared with coding. In
particular, we considered the concepts of sequences, loops, parallelism, events, conditionals, operators, and
data and integrated them into non-programming (i.e., unplugged) and programming (i.e., plugged-in) activities.
The instructional design of our training is based on introducing each of the CT processes in a multimodal way
using unplugged and plugged-in activities and demonstrating their applicability within different STEM-related
contexts. The general idea of the whole course follows the theme: “play-modify-create”. Students are
introduced to CT processes through playful unplugged activities. Subsequently, they are asked to modify
elements within existing plugged-in activities before they finally have to create their own usable designs.
In the following description of the course concept, we first describe the actual lesson content and activities and
their aim. Subsequently, we elaborate on how the employed activities allow for a broad applicability of CT by
relating the activities to different STEM contexts. Moreover, we outline how the combination of unplugged and
plugged-in activities allows for an integrated constructivist approach to convey the respective content. Finally,
we briefly describe how we use a gamification framework to incorporate lessons on differing content conveyed
in different modes into a coherent and overarching course design.
2.2 Course outline
The course is structured as a series of eight lessons of 90 minutes each (see also Figure 3). During these lessons,
CT processes are introduced gradually beginning from more unplugged haptic, practical, and experiential
activities, moving on to plugged-in more abstract and demanding ones. During the lessons, students create their
own applications with MIT AppInventor which they can reuse on their own devices. Teacher’s guidance is
Katerina Tsarava et al.
gradually decreased towards students’ gradual independence of learning and creating. The specific lesson plan
is as follows:
2.2.1 Lesson 1
Description: Students are first introduced to the gamified assessment framework (see below). Moreover, they
get acquainted with unplugged concepts and tangibles and are introduced to the idea of computing without a
computer. The first activity is an unplugged life-size board game with turtles. The game shares ideas with the
concepts of the educational programming language Logo and is inspired by the commercial board game Robot
Turtles (Shapiro, 2013). In this treasure hunting game small groups of students have to manipulate turtle pawns,
which move by following specific commands written on game cards. Players need to edit and combine
command-cards and make strategic decision to create effective sequences, which allow them to lead their
pawns to the place where a treasure can be found. The aim of the game is the fast and efficient collection of
Aim: The main purpose of this first activity is the playful introduction to CT processes, such as logical and
algorithmic thinking, as well as pattern recognition through the use of common coding mediums, like sequences
2.2.2 Lesson 2
Description: This lesson encompasses playing within unplugged activities and recognizing CT processes in STEM
disciplines. The second activity also employs an unplugged treasure hunt like board game and utilizes math
problems as progression stages. Specifically, this multiplayer board game is a competitive scenario, where
groups of players have to find their way through a maze of various difficulty levels. Each challenge includes
equations containing variables and placeholder images for constants (e.g., a blue crystal reflecting a value of 4).
Small groups of players have to solve the respective arithmetic equations in alternating order and find the best
strategy to progress on their way to the center of the maze. Conditions set by the game’s board (maze) provide
obstacles to obstruct the most direct way of reaching the center.
Aim: This activity aims at introducing conditionals, operators, variables, and constants, as well as previously
presented coding concepts (i.e., sequences and loops) to foster CT skills of logic, algorithmic thinking, and
2.2.3 Lesson 3
Description: Students play within unplugged activities and concepts, which are then gradually transferred to the
plugged-in environment of AppInventor, reusing established concepts from previous lessons. In this blended
activity, students have the opportunity to observe how unplugged coding and CT processes, like, for example,
events and parallelism, are applied and how they function within the plugged-in programming environment
through simple precoded scripts and scenarios. For instance, in a science simulation about rain (event) drops
(variable) increasing the fill level (variable) of a glass (constant) students need to recognize the coding concepts
previously introduced unplugged and understand how they are depicted and used in the plugged-in
environment. Students should be able to recognize, use, and modify coding concepts in these pre-built
Aim: In this lesson, students should comprehend the interconnections between coding concepts and the newly
introduced CT abstract processes of decomposition and generalization.
2.2.4 Lesson 4
Description: After recapitulating the coding concepts and CT processes already introduced, Lesson 4 requires
students to brainstorm real-life scenarios and applications of these concepts, to highlight the importance of CT
processes in everyday life and STEM disciplines in particular. Following this, students are introduced to the
AppInventor software through multiple interactive tutorials as well as editing and playing simple game
applications. Pre-developed simple games in the MIT AppInventor environment are used as demonstrators and
allow students to manipulate code elements, e.g. building blocks/variables, in order to grasp the effects of
changes in a running system.
Katerina Tsarava et al.
Aim: The activities of this lesson are intended to support students’ familiarity and understanding of the
environment and how visual coding blocks can replicate coding concepts already identified in the previous
2.2.5 Lesson 5 and 6
Description: In Lessons 5 and 6, students are guided through the creation of a simple app using scenarios in
STEM contexts. A simple calculator is developed by first explaining and understanding its usability and later on
designing and programming it in AppInventor. Afterwards, students are asked to create other and more
advanced apps in other STEM disciplines, for instance, science simulations. By providing pre-built AppInventor
assets to students we can facilitate work and guide the learning experience even in complex projects. Different
projects are assigned randomly to small groups of students. For instance, the creation of a simple pool billiard
physics app, to understand and visualize kinetic energy/momentum conservation of colliding balls. Other
projects require, for example, the creation of apps that simulate a magnetic field and the forces operating in it,
and the creation of the four seasons, or how the water cycle works, etc. After completing their respective app
all the student groups have to interact and test creations of their peers.
Aim: Both activities aim at fostering students’ coding independence through fading out teacher guidance. The
CT processes fostered by these activities are the process of evaluation and abstraction. Moreover, using and
developing simulated real-life STEM contexts should increase the awareness of the necessity of coding skills, in
order to solve problems in different STEM disciplines.
2.2.6 Lesson 7
Description: During the 7th lesson students are asked to brainstorm simple game ideas. Once they decided on
one of the designs, students can create their own game. Of course, they need to create rather simple games
(e.g. dice, memory game, mini golf, etc.) to keep it feasible. The instructor is crucial in this part of the lesson as
he/she has to assist in deciding on a realizable game, by taking into consideration its basic mechanisms. After
deciding on a game, students collaboratively create the game application. Importantly, in such complex projects
students have to apply all their previously learned coding and CT skills by understanding, analyzing, designing,
implementing, and evaluating their own game app. Created games can also be shared among group members
and peer-evaluated by fellow groups of students.
Aim: The aim of this activity is the engagement of students with more complex activities of problem solving and
procedural thinking, by creating and evaluating designs of their own.
2.2.7 Lesson 8
Description: In the last lesson students have to create their own applications. They are asked to create an
application dedicated to one of the STEM disciplines already presented and adapt or extend existing programs.
They are urged to do so by reusing parts of code created in previous lessons, to facilitate the working process,
but should also integrate new mechanics or functionalities, respectively, into the application. For instance,
scripts of app interface functionalities, such as interactive screen components, random number generators, etc.
Aim: During this activity, students also have to follow the procedure of analyzing the demands and requirements
to design an effective structure for their app. The evaluation procedure relies on sharing and peer reviewing, as
beta testers will test the apps of fellow student groups, repeating and fostering the obtainment of all the
previously identified CT processes.
2.3 Unplugged and plugged-in activities
Contemporary board games have proven to represent an informal and interactional context in which
computational thinking has to be applied. For instance, Pandemic (Leacock, 2008) and RaBit EscApe (Apostolellis
et al., 2014), are two strategic board games, in which computational thinking was embedded in collaborative
play. Considering this evidence, unplugged activities employed in the present course are realized as life-size
board games, in which students play collaboratively around a floor-board by strategically solving problems and
manipulating their pawns accordingly in space. Their active engagement in those unplugged games should raise
their motivation for participation and learning (see Echeverría et al., 2011; for an overview), as well as allowing
for an embodied experience of basic coding concepts and CT processes (cf. Barsalou, 2008 for embodied
Katerina Tsarava et al.
cognition), supporting conceptual abstractions in a natural manner (Butz, 2016). Moreover, the game-based
approach of the employed plugged-in activities does not only aim at engaging students into the learning
activities, but should also enhance the training and development of students’ symbolic thinking through
multimodal representations (Plass et al., 2015) and simplifications of complex computer-related concepts (e.g.
the concept of variables and constants described above, represented by the game rules as objects of
For plugged-in activities of the course, we selected the MIT AppInventor software in its browser-based version.
MIT AppInventor offers a novice-oriented introduction to programming and app creation, that transforms the
complex language of text-based coding into visual drag-and-drop building blocks. The low-threshold graphical
interface allows even an inexperienced novice to create a basic, fully functional app within an hour or less.
AppInventor allows the development of applications for Android-run devices, using a web browser and either a
connected smartphone/tablet or emulator. This allows for taking home self-generated apps as a trophy after
the learning activity. We consider this software an advanced alternative to Scratch visual-programming
language, as it allows the creation and distribution of a standalone application.
Figure 3: Illustration of the course design taking into consideration the factors of mode (i.e., unplugged/plugged-
in), coding concepts (C1-Sequences to C7-Parallelism, see Figure 2), CT processes (P1-Decomposition
to P7-Generalization, see Figure 2) and the gamification framework. C*/P*: all concepts (C1-7) and
The design of the course embeds the training of CT skills in a multimodal procedure. Coding concepts and
associated CT processes are first introduced in a playful and embodied way (unplugged activities), before they
are reconsidered in programming context (plugged-in activity), which also implies their application in a STEM
discipline. This aims at highlighting the relevance of coding concepts and CT processes not only for digital
contexts, but also real-life problems in general and STEM contexts in particular. For instance, in Lesson 2 students
play a math-based treasure hunting game. Following the rules of the game, players have to devise effective
sequences of commands, by combining constants, variables and operators correctly. They have the opportunity
to make their sequence even more successful by recognising patterns of moves, which may be folded and
operated by loops. Those unplugged game rules reflect fundamental and applicable coding concepts, which can
easily be applied and transferred to any programming language or complex problems in STEM. Accordingly, the
aforementioned activity is integrated into a plugged-in task in Lesson 3, where several of these coding concepts
are integrated into short simple pre-coded scripts. As an advanced task, students are then asked to modify those
Katerina Tsarava et al.
scripts experimentally to observe and experience the immediate consequences of their changes (picking up on
the idea of live coding, e.g. Paxton, 2002).
2.4 Gamification and assessment framework
By employing digital games as learning medium and providing an overarching gamification framework for the
course, we aim at increasing motivation and enjoyment of students. In fact, as a medium for lear ning, games
provide promising possibilities to motivate and engage students in learning (e.g., Chen et al., 2012). Importantly,
even simple game-like extrinsic motivators, such as score points and badges, can increase enjoyment and
performance (e.g. Ninaus et al., 2015; for a review see Hamari et al., 2014). In the current CT course we use a
gamified assessment framework, which is based on the assessment framework created by Dorling and Walker
(2014) for the effective evaluation of the UK computer science and CT curriculum (see also Moreno-León, et al.,
2015). As such, we apply a gamified award system, awarding badges for the successful acquisition of coding
concepts, core CT processes, STEM specialization domain (e.g. leaderboard for Maths, Science, etc.), creativity,
and social skills (e.g. cooperation within or between group, etc.). For instance, students receive stickers for each
attended session to put down in their individual course membership card, or, after successfully creating a science
simulation, students are awarded a science-badge.
3. Future studies and conclusion
The current course is planned to be part of the Hector-Core-Course program of the Hector-Children Academies
in Germany, which provide extra-curricular enrichment programs (http://www.hector-kinderakademie.de).
Therefore, the course will undergo a rigorous three-stage evaluation process. Phase 1 will include piloting and
testing the course concept. For this reason, multiple rounds of discussion with experts on the content as well as
educators will take place. This phase also includes an initial evaluation of the effectiveness of the course in a
small-scale intervention study at about 3-6 Hector-Children Academies to acquire first empirical data on training
gains and the feasibility of the course design. In Phase 2 feedback and experiences generated in Phase 1 might
result in modifications of the course. Following this, another empirical evaluation of the effectiveness of the
course at about 10 Hector-Children Academies will be run using a pre-post-test control group design.
Importantly, in this phase we will also evaluate the training of instructors as well as the training material itself.
Finally in Phase 3, implementation and effectiveness of the course will be evaluated in a randomized controlled
field trial, involving at least 20 Hector-Children Academies. Evaluation in Phase 2 and 3 will also aim at assessing
possible transfer effects of the training, by employing standardized psychological tests in order to examine
whether CT training affects other related cognitive skills, such as reasoning or general problem solving skills. The
primary objective at this stage of the evaluation is to whether the course yields any overall effect on
computational thinking. Given positive effects are observable in all three evaluation phases, the current course
will be certified as a Hector-Core-Course to be offered to all Hector-Children Academies. Moreover, in order to
better understand underlying mechanisms on how the various elements of the course influence the overall
efficiency, design research methods will be applied. After the design, development, and evaluation phases, we
expect to deliver hands-on un-plugged games and their related plugged-in activities built in AppInventor, along
with instructional materials for future teachers of the course.
The design and development of the current course is based on the most recent literature on educational
practices for coding and CT introduction into official curriculums and latest educational practice in STEM. We
integrated elements of game-based learning and gamification methods aiming at engaging and motivating
students, while specifically addressing STEM context to reflect the broad applicability of CT. Importantly, this
course does not aim at being a core programming course. Using a more general and cognitive perspective on
programming and coding we aim at fostering the underlying cognitive concept of CT, which might have broader
beneficial effects than instructing a single programming language alone. Consequently, the course is not only
aiming at improving practical programming skills, but fundamental cognitive skills relevant for the 21st century.
Apostolellis, P., Stewart, M., Frisina, C. and Kafura, D. (2014) ‘RaBit EscAPE: A Board Game for Computational Thinking’,
Proceedings of the 2014 conference on Interaction design and children - IDC ’14, pp. 349–352.
Balanskat, A. and Engelhardt, K. (2015) ‘Computing our future. Computer programming and coding Priorities, school
curricula and initiatives across Europe’, Brussels: European Schoolnet, pp. 4-7.
Barr, V. and Stephenson, C. (2011) ‘Bringing Computational Thinking to K-12: What is Involved and What is the Role of the
Computer Science Education Community?’, ACM Inroads, 2(1), pp. 48–54.
Katerina Tsarava et al.
Barsalou, L. W. (2008) ‘Grounded cognition’, Annual review of psychology, 59, pp. 617–645.
Brennan, K. and Resnick, M. (2012) ‘New frameworks for studying and assessing the development of computational
thinking’, Annual American Educational Research Association Meeting, Vancouver, BC, Canada, pp. 1–25.
Brown, N. C. C., Sentance, S. U. E., Crick, T. O. M. and Humphreys, S. (2014) ‘Restart : The Resurgence of Computer Science
in UK Schools’, 14(2).
Briggs, J. (2014). Computational Thinker: Concepts & Approaches. CAS Barefoot. Retrieved from
Butz, M. V. (2016) ‘Toward a unified sub-symbolic computational theory of cognition’, Frontiers in Psychology, 7, pp. 1–19.
Chen, Z. H., Liao, C. C. Y., Cheng, H. N. H., Yeh, C. Y. C. and Chan, T. W. (2012) ‘Influence of game quests on pupils’
enjoyment and goal-pursuing in math learning’, Educational Technology and Society, 15(2), pp. 317–327.
Cuny, J., Snyder L. and Wing J. M. (2010) "Demystifying Computational Thinking for Non-Computer Scientists" work in
Echeverría, A., García-Campo, C., Nussbaum, M., Gil, F., Villalta, M., Améstica, M. and Echeverría, S. (2011) ‘A framework
for the design and integration of collaborative classroom games’, Computers & Education. 57(1), pp. 1127–1136.
García-Peñalvo, F., Reimann, D., Tuul, M., Rees, A. and Jormanainen, I. (2016). TACCLE 3, O5: An overview of the most
relevant literature on coding and computational thinking with emphasis on the relevant issues for teachers. pp. 3-8.
Google Inc. and MIT Media Lab (2010) ‘AppInventor 2’. Available from http://ai2.appinventor.mit.edu
Harel, I. and Papert, S. (1991) ‘Constructionism’, Ablex:Norwood, NJ.
Hamari, J., Koivisto, J. and Sarsa, H. (2014) ‘Does gamification work? - A literature review of empirical studies on
gamification’, Proceedings of the Annual Hawaii International Conference on System Sciences, pp. 3025–3034.
Kazimoglu, C. (2013) ‘Empirical evidence that proves a serious game is an educationally effective tool for learning computer
programming constructs at the computational thinking level’.
Leacock, M. (2008) ‘Pandemic’ [Board game], Z-Man Games: Mahopac, NY.
Moreno-León, J., Robles, G. and Román-González, M. (2015) ‘Dr. Scratch: Automatic Analysis of Scratch Projects to Assess
and Foster Computational Thinking’, RED. Revista de Educación a Distancia, 15(46), pp. 1–23.
NRC (2011) ‘Committee for the Workshops on Computational Thinking: Report of a workshop on the scope and nature of
computational thinking’, Washington, DC: National Academies Press.
Ninaus, M., Pereira, G., Stefitz, R., Prada, R., Paiva, A. and Wood, G. (2015) ‘Game elements improve performance in a
working memory training task’, International Journal of Serious Games, 2(1), pp. 3–16.
Paxton, J. (2002) ‘Live programming as a lecture technique’, Journal of Computing Sciences in Colleges, 18(2), pp. 51–56.
Perkovic, L., Settle, A., Hwang, S. and Jones, J. (2010) ‘A Framework for Computational Thinking across the Curriculum’,
Proceedings ITiCS ’10, pp. 123–127.
Plass, J.L., Homer, B.D., Kinzer, C.K., Plass, J.L., Homer, B.D., Kinzer, C.K., Plass, J.L., Homer, B.D. and Kinzer, C.K. (2016)
‘Foundations of Game-Based Learning’, Educational Psychologist, 50(4), pp. 258–283.
Sanders, M. (2009) ‘STEM, STEM Education, STEMAnia’, Education, 68(4), pp. 20–27.
Shapiro, D. (2013) ‘Robot Turtles’, Thinkfun:Seattle, WA.
Wing, J. M. (2006) ‘Computational Thinking’, Communications of the Association for Computing Machinery (ACM), 49(3),
Wing, J. M. (2010) ‘Computational Thinking: What and Why?’, The Link - The Magazine of the Carnegie Mellon University
School of Computer Science, pp. 1–6.
Yadav, A., Mayfield, C., Zhou, N., Hambrusch, S. and Korb, J. T. (2014) ‘Computational Thinking in Elementary and
Secondary Teacher Education’, ACM Transactions on Computing Education, 14(1), pp. 1–16.
Yadav, A., Hong, H. and Stephenson, C. (2016) ‘Computational Thinking for All: Pedagogical Approaches to Embedding 21st
Century Problem Solving in K-12 Classrooms’, TechTrends, 60(6), pp.565-568.