Due to business needs and the growing importance of technology in society, in recent years, the concept of computational thinking has emerged, especially focused on its inclusion in compulsory education as a relevant complement, transversal to traditional subjects. In parallel, various initiatives have developed interactive digital tools for learners to meet this type of thinking through a series of activities commonly framed as games. In this chapter, we evaluate many of the existing free access platforms to propose pedagogical, design, and content approaches with which they can be compared.
- computational thinking
- visual languages
Computational thinking (CT) allows you to solve problems in a way that a computer (human or machine) can execute. In just a decade, since Wing  introduced the concept to the technological community, the movement has been very intense, both in the scientific community and the educational world, as well as in the tools and content available . Thanks to all these efforts, we begin to see signs that the situation is changing, but there are many challenges , starting with the still insufficient definition of the concept of CT and its structuring in the classroom [4, 5], which involves multiple initiatives by national and international organizations.
Considering the ubiquity of computers in our digital society, CT appears to be a fundamental skill not only for computer specialists but also for many other professionals. It is still a topic of debate how important and transversal CT should be in compulsory education ; however, for practical reasons, the educational world has been paying it increasingly more attention. In recent years, many initiatives have been developed to promote CT in primary and secondary education due to both the social boom in CT and the lack of computer professionals in the present and near future. The Hour of Code, Code Week, or Scratch Day are some of the well-known global events that promote changes in curricular design toward this new digital formation. Most of these initiatives are based on digital platforms where learner programmers can develop and improve their CT skills through games.
It is not this chapter’s goal to discuss the advantages of incorporating CT into education, but to analyze the tools, their possible uses, and their limitations.
To delimit the study, we see that there are many common features among most of the current tools geared to developing CT skills like
It is also important that all these tools seek to avoid novice programmers having to confront the complexity of text-based computer coding and to improve the learnability . There are several ways to address this problem such as narrative tools, flow-model tools, or specialized output realizations ; in this chapter, we focus on the most common tools, which are those that use the block-based visual programming. These tools employ user interfaces based on visual blocks that are moved and placed constructively as an assembly game, usually with the visual abstraction of a puzzle with its pieces and fitting ways. These blocks work as an abstraction of programming components: sentences, data, control structures, procedures, and so on. Consequently, they considerably limit the prior knowledge required to program and reinforce the program structure, eliminating the possibility of syntax errors and focusing only on the logic that exists in the activity that is to be undertaken.
In this chapter, we review a number of existing platforms with features mentioned above. There are articles which discuss some of them [9, 10, 11]; our intention is to propose an objective analysis, reviewing their possibilities from different perspectives. From a pedagogical point of view, we study different dimensions that can affect the learning process in or out of class (such as the richness of the proposed interaction, the time that can be invested, and the depth of the exploration). From the point of view of the game, the fun and engagement generated. From a CT point of view, we will analyze what concepts involved in CT each platform covers and to what extent. Finally, we will analyze the degree of adaptation to the personal characteristics of programming learners, their skills, and knowledge. We will consider, among others, aspects such as feedback and interaction, registration possibilities, and learning design.
2. Review of platforms
In our study, we include those platforms accessible online in July 2017 that can be used through the computer, mobile, or tablet without a paid commercial license that do not require additional hardware or devices, that are at least available in the English language, with international and open distribution, that contain some relevant part of visual programming and that incorporate some game characteristics. In this section, we describe them in an alphabetical order and then analyze them according to their features in the comparison.
2.1. Alice (
Alice is a free creation tool for small games, animations, and interactive resources in 3D. It is also an interactive animated story development tool that proposes a visual programming interface strongly linked to the development of object-oriented code, with explicit concepts such as methods, event listeners, objects like characters, or classes such as scenes. In its version 3, it also allows a parallel development in which each block movement displays the corresponding Java source code. It is one of the few 3D–oriented environments, making it possible to create games and animations, while adding a degree of complexity to the need to elaborate the scene with its models, skeletons, terrains, or cameras. Its alliance with Disney, Pixar, and EA has facilitated the inclusion of elaborated graphics, which enrich the experience of the project. It was created by the University of Virginia and taken over and maintained by Carnegie Mellon University since 1997.
2.2. App Inventor (
App Inventor is a free creation tool for small games, animations, and interactive resources. This tool has a closer approach to professional development than most platforms analyzed and it is probably the least close to a game because its goal is to build apps for an Android device. Users visually design the graphic user interface (GUI) on the one hand and its logical operation on the other, simulated in execution on the device itself or in an Android emulator included. System and development dependency for mobile devices causes event orientation (sensors, button clicks, etc.) to be very present in App Inventor and determines the control flow. It is also important to design the user interface, which has a specific section of the tool (Designer) in addition to code editing (Blocks). It was originally created by Google in 2010 and taken over by MIT in 2012 and oriented to youth and adult audience, not to children.
2.3. Bee-Bot (
Bee-Bot is a game of successive challenges to learn programming for iPad. Bee-Bot is a bee robot, a physical toy for children of 4 years and above, which also has a free App for iPad that can be used without the toy, geared to preliterate children. It allows children to learn programming concepts about directional motion primitives, while taking their virtual robot through a series of scenarios. It has 12 levels with labyrinths of progressive difficulty. There is also a more complex paid app for children of 7 years and above.
2.4. Beetle Blocks (
Beetle Blocks is a free 3D model creation tool. It is a visual programming environment that allows for modeling three-dimensional shapes. Like a Logo language with its 3D tortoise, you can program the movement of a virtual beetle to generate geometric shapes of all kinds that are chained with repetitive and alternative control structures and programmable routines. The block language is based on Snap!, which is analyzed in Section 2.20.
2.5. Blockly Games (
Blockly Games is a game of successive challenges to learn programming based on a generalized visual programming library. Blockly (
2.6. Cargo-Bot (
Cargo-Bot is a game of successive challenges to learn programming. It is also a game for iPad where children can teach a robot to move boxes inside a factory by using visual programming structures. The game contains 36 puzzles and has the peculiar feature of having been the first game entirely developed on the iPad itself based on Codea (a Lua code editor for iPad). It uses encoding with icons with motion primitives for the crane (down, up, and move box) and calls to repeat procedures as well as box color codes for alternative actions.
Code.org( https://code.org/) and Code Studio ( https://code.org/educate/gamelab)
In addition to the online programming activities,
All the technology developed by
2.8. Daisy the Dinosaur (
Daisy the Dinosaur is a game of successive challenges to learn programming. It is a small game for the iPad aimed at the first contact with programming for the youngest children, who can solve it in a few minutes. Its concept is very simple: the learner moves Daisy the Dinosaur by using some of the nine motion commands in the appropriate sequence. When the challenges are over, you can play in free-play mode to freely move the character.
2.9. Kodable (
Kodable is a game of successive challenges to learn programming. Kodable is one of tools with the strongest focus on teachers and classes. It envisages a progression of levels oriented to the whole age of primary education. It has a number of free levels and many more accessible through pay-by-school licenses. The approach is an icon-based visual programming language that allows you to move a character (Fuzz) through an orthogonal maze by collecting the stars. To the motion instructions in all four directions, conditionals are added using colored boxes, loops with counters, and functions to repeat the same code several times. Another series of worlds provide conceptual training complements in programming using games, although they do not use visual programming such as a Tetris-style game for strings and integers, a tower defense for object-orientation, and so on. Teachers have a dashboard with full access to the progress information of their classes and students. In addition, there is a creation mode to generate custom levels, which both teachers and students have access to.
2.10. Kodetu (
Kodetu is a game of successive challenges to learn programming. It is a maze-solving game that allows an astronaut to be guided to the target in a space station by using visual blocks of motion and rotation, and repetitive and alternative structures. It is based on Blockly Maze and proposes a sequence of 15 levels of progressive difficulty, being the last maze a challenge even for people who already know how to program. It is designed to be able to play in an hour or two. Teachers can generate their own groups and access the information about the learning path covered by their students.
2.11. Kodu Game Lab (
Kodu Game Lab is a free small 3D game creation tool. Kodu, originally called Boku, is a visual programming environment developed by Microsoft in 2009, for the Xbox console and Windows OS. Like Alice, the execution environment is in 3D, but the programming orientation is quite different and is not block- but event-oriented. The concept is quite original with respect to other tools: the user can modify the world with a visual editing system of ground and 3D objects and add characters on which rules are created (in when-do form, with what is called in Microsoft Tile-Based Coding): If an event occurs, an action is executed. The events and rules are very oriented to an arcade type game (move, shoot, and collide) in a fixed gravity context. It does not incorporate control structures because the event system itself generates an infinite repetition in a real-time loop, and each rule (when) functions as an alternative.
2.12. Hopscotch (
Hopscotch is a free creation tool for small games, animations, or interactive resources. Hopscotch, available only for iOS, is a visual programming language specifically designed to be used on Apple touch devices and is oriented to very simple games. Although the payment license allows you to personalize characters and other improvements, in the free mode you can develop the entire gameplay. Hopscotch also has an online community to share creations, and a web player so that anyone can play the games created from a browser. Hopscotch makes a significant effort to use the resources of the tablet, both to ensure that the entire editing system can be done in a tactile way and to incorporate all the possibilities of the device in programming (tilt, vibration, and acoustic sensors).
2.13. Lightbot (
Lightbot is a game of successive challenges to learn programming. It is a commercial game for mobile platform (also with a version for Windows and Mac), with a free demo version (code hour) that allows users to play the first levels. The approach of the game modernizes the classic movement puzzles like Robozzle (explained later), with successive challenges of small labyrinths in which you have to illuminate the blue squares with the only instructions to advance, turn, jump, and ignite. To repeat, you can define several subprograms and make recursive calls. The game proposes a staggering of several levels of complexity and has two apps differentiated by difficulty for the age bands of 4–8 and 9 + .
2.14. Made with Code (
Made with Code is a game of successive challenges to learn programming. It is a Google initiative created in 2014 to encourage school-age girls to develop their first experiences in CT. It includes a lot of educational materials with textual and audiovisual contents, and proposals of projects and activities by using various tools. As far as our analysis is concerned, it has a specific area of visual programming projects (
2.15. MakeWorld (
MakeWorld is a context and path-free creation tool to define programming challenges related to other STEM areas. MakeWorld is one of the few platforms created in Europe, in the framework of a European Union innovation project. It targets primary school children for a first-learning CT environment. Therefore, it minimizes textual aspects and proposes an icon-based action interface, with two levels: worlds (a programming challenge) and stories (a set of challenges linked to a learning sequence). Through these, programming challenges are sought to work concepts of other subjects (mathematics, languages, science …) where they include computational elements such as enumeration, sequencing, identification, classification, cycles, processes, systems, and so on. The concepts of CT are limited to the most basic context: movements in a grid, repetitions through recursive subprograms, and scoring events to manage progress. MakeWorld allows both solving worlds by posing a game with goals and creating worlds (hence its name) to go a step further in the level of abstraction. These worlds can be published and shared in the social community.
2.16. Minecraft (
2.17. Robozzle (
Robozzle is a game of successive challenges to learn programming. Robozzle, published in 2009, is, according to its creator Igor Ostrovsky, a “social puzzle game.” It poses a very basic programming environment in a maze in which you have to capture the stars with the only instructions to move forward and rotate. To repeat, you can define several subprograms and make recursive calls, and for the concept of alternative you use up to three colors that determine whether the statement is executed or not. The result is a little game of challenges to solve the puzzles that each level poses. The game itself does not propose a staggering of levels of complexity (a priori there are only the basic difficulties of the small tutorial), but it leaves the creation of new challenges to the users themselves, and their evaluation by difficulty and taste, in a community that has created about 10,000 puzzles. It allows CT to be introduced with a simple game, without considering longer control structures or programs, with very few, primitive elements, close to the low level that is behind the programs.
2.18. Scratch (
Scratch is a free creation tool for small games, animations, and interactive resources. Scratch is a visual programming language created by MIT’s Lifelong Kindergarten Lab in 2002, with an editing and execution system in the cloud. With an important orientation to the user community and an open approach, it allows to share and derive programs from others. Due to its significant history and implementation, there are many tutorials for users, teachers, and parents. The structure of programming components differentiates elements such as control structures, events, operators, data, or sensors. The elements that are manipulated by Scratch are configurable images and sounds, allowing you to set up 2D animations and video games of a certain level of complexity.
Scratch was one of the first tools to be established and has therefore greatly influenced most of the ones listed in this chapter. It uses the visual puzzle metaphor for the programming pieces, where each block has a shape that can only be combined with other compatible blocks, and a color that determines the block type.
2.19. ScratchJr (
ScratchJr is a free creation tool for small games, animations, and resources. It is a visual programming language developed as a derivation of Scratch by the same MIT department, aimed at younger users without reading skills. The interface concept changes (from vertical blocks to simplified horizontal blocks, reducing the number of blocks, and using icons instead of texts) and is aimed at mobile devices, being available for free for Android, IOS, and Chromebook. There is also a version launched in collaboration with PBS Kids, which uses characters from the animated series.
2.20. Snap! (
2.21. SpriteBox (
SpriteBox is a game of successive challenges to learn programming. It is a game developed for Code Hour by the LightBot company. It has a similar approach, but it raises the level of CT a little by incorporating loops rather than jumps to routines. It also includes a game element in proposing a platform game in which users have to overcome programming challenges that affect the game (create platforms, open gaps, and rebuild the stage). It takes approximately an hour and raises progressive difficulty levels in three consecutive worlds.
2.22. The Foos (
The Foos is a game of successive challenges to learn programming. It is a tablet-oriented game for preschool and primary children (no need for reading). It is based on the idea of a platform game that, in addition to being played as a traditional game, allows the movement to be configured with a block code. Progressive leveling that introduces sequences, repetition, events, and alternatives and ends with possibilities of free play and creation of personalized levels.
The App, created by the Pasadena CodeSpark company in 2014, is commercial, but educational use is free and must be managed by a teacher who will set up the class, invitations, and devices. It has a specific version of code hour that is a subset of the whole game and can be played in a Web browser without installation.
2.23. Tynker (
Tynker is a free small game creation tool, which includes several successive challenge games to learn programming. It is a commercial project that has a series of free levels and also a school model that can be subscribed to without cost with a set of six phases (each composed of a series of progressive levels), and you can order additional paid phases. The visual environment has vertical blocks similar to Scratch or
2.24. Waterbear (
Waterbear is a free creation tool for small games, animations, and resources. Waterbear is a visual programming language created by Dethe Elza, a Canadian professional (in an open source development environment), inspired by Scratch but with a language developed to be able to program in a visual way closer to textual programming languages, incorporating elements such as arrays, dates, or diversity of mathematical functions. There is no community of users, and the environment is very self-learning-oriented, practically without didactic material available.
2.25. Platforms not covered
There are many other services and products aimed at learning CT or some of its skills, which we have not considered in this study as they fail to meet the specified conditions. In the first place, there are a whole series of games that require the acquisition of physical devices. Based on classic toys, these include robots and similar devices. Through their connection to the physical world, they enrich the possibilities of previously analyzed tools, limited by a screen and the need of Internet connection. They are an important niche market for companies in the educational toys sector. This is the case of LEGO Mindstorms (
In this same line of products, we also find many others that have been appearing the last decade, such as Bee-Bot (
There are also some mixed physical/digital toys that include a simple but necessary physical part (usually pieces to be placed), connected in some way (Bluetooth) with a digital application that needs the “program” created in the physical world in order to beat the virtual challenge: what is called “tangible programming.” This is the case of Puzzlets (
We should also mention an important category represented by GameMaker Studio (
It is also important to note that text-based programming learning environments continue to exist, as in the 1990s when programming began to be introduced in schools: Basic (such as
There is a growing set of activities for lower educational levels called “unplugged.” For example, Computer Science Unplugged (
We also find on the market a series of games that do not fit properly with the programming model that is usually classified as visual programming, but which do use concepts of abstraction, algorithms, and resolution of problems that promote CT. This is the case, for example, of SpaceChem (
Finally, there is another large group of tools like Code Combat (
3. Analysis of platforms
We have analyzed these 24 tools, which we extend to 26, as both
The vast majority of the tools can be differentiated into two main groups. The first (46.2% of those analyzed) corresponds to a set of programming challenges (e.g.,
The second group (42.3%) proposes a visual programming language in itself (e.g., Scratch), with varying degrees of amplitude, with which the learner can develop his own programs, in principle in a much more open way, which can easily be embedded in a dynamic of project-based learning. Most (27.9%) languages are aimed at programming a 2D game, two are 3D, one is for 3D modeling, and another for mobile device programming. The game component in this group is not really given by the language but by the intention: you can make games but also animations or interactive stories, and really any computer application that the creativity of the user allows (limited by the language primitives, which are not general purpose).
It seems logical to think that with the languages we could define the tools of the first group: that is, with Scratch we could define a programming challenge (or thousands). However, the programming structures themselves are usually not included among the language primitives (i.e., in Scratch, you cannot program a game that raises a programming challenge except with a lot of effort and personalization). In addition, platforms that propose challenges can automatically detect the improvement in each level, give feedback in case of error, and offer the user navigation to the next. In the programming languages, challenges can be proposed, but evaluation and sequencing are foreign to the system. Therefore, there are two different types of tools, although it seems logical that the technologies will continue to approach the possibility of integrating both (as
At the moment, there are two tools among those analyzed (MakeWorld and Robozzle, 7.7%) that allow users to do both things: users can solve challenges already posed and can also create new coding challenges and publish them for other users to solve. We could then talk about a third set of tools for creating and solving programming challenges.
A fourth and last category, represented by Minecraft (3.8%), is that of a videogame incorporating visual programming in its mechanics. The main objective of the game is not visual programming (in fact in Minecraft, this feature has appeared after years in which interaction was only possible with text-based languages), but it does incorporate it and allows aspects of CT to work.
3.2. General characteristics
In Table 1, we can observe the general characteristics of the 26 analyzed tools. Type refers to the classification already mentioned. The country of creation, year of release, and number of languages are indicated. The number of users (in millions) has been indicated, in cases where a reasonably trustworthy approximation has been found.
|Daisy the Dinosaur||CHAL||USA||2013||1||—||—||—||—||—||X||—|
|Kodu Game Lab||LANG||USA||2009||22||2.5||—||X||—||—||—||—||—|
|Made with Code||CHAL||USA||2014||1||X||—||—||—||—||—||—|
|Tynker - Activities||CHAL||USA||2013||1||50||X||—||—||—||X||X||—|
The hegemony of the USA in this type of tools is prominent. Almost three-quarters (73.1%) of the platforms have been developed there, consistent with the US dominance in Internet services in general, and it may also be a response to an important campaign for interest in basic computing learning at school levels that the USA has been leading for a decade (we can note that in the wake Alice and Scratch, other tools have been emerging continuously). Canada follows it with 11.5%, the same as the whole of Europe, and Australia has its own platform with Cargo-Bot.
The oldest tools are Alice and Scratch, which explains their influence and emphasizes the importance of American universities (MIT and Carnegie Mellon) in the field of visual programming. The implantation data indicate the most widespread:
For the social data shown in Table 2, we have organized the platforms by type, because as you can see, the social options are strongly correlated with the approach of the tool. For those that pose programming challenges, there are no social options, except for
|Type||Game||Community||Upload allowed||Social options||Remix|
|Daisy the Dinosaur||—||—||—||—|
|Made with Code||—||—||—||—|
|The Foos||—||X*||like, share*||—|
|Tynker - Activities||—||—||—||—|
|Visual Programming Languages||Alice||—||—||—||exp|
|Hopscotch||X||X||like / share||X|
|Kodu Game Lab||X||X||like / share / report||X|
|Scratch||X||X||fav / like / report / comm / follow||X|
|Tynker||X||X||like / report / share||X|
|Creation and playing||MakeWorld||X||X||like / follow / share / comm||X|
|Robozzle||X||X||like / dislike / evaluate||—|
3.3. Learning aspects
Below we consider information relating to the use of these tools in class. First of all, the target age is fundamental, which is shown in Table 3 where the recommended ages for the different platforms appear, marked according to the indications of the companies themselves, the opinions of the educational community, and the characteristics of the tools. On the one hand, we see that there are various tools for all ages, which is a good news for the educational community. On the other hand, if we consider them by type, as might have been expected, the platforms of challenges are focused on the lowest ages (average age 8.1); the creation and solution of challenges is higher (9.8); and higher still are languages to define games (12.4). This pattern corresponds to the stages that would be desirable if we want to design a longitudinal educational process with these tools: starting with a platform of challenges with the objectives and the path marked, continuing with a creation of challenges based on proposals made by the teacher in a structured and guided way, and ending with a more general-purpose visual language, in a learning environment based on projects and with freedom of personal choice on behalf of the learner to define and carry out the projects.
|Type||Game||Recommended ages for playing|
|Daisy the Dinosaur||X||X||—|
|Made with Code||—||X||X||X||X||X||—|
|Tynker - Activities||X||X||X||X||—||—|
|Kodu Game Lab||—||X||X||X||X||—||—|
Table 4 shows aspects of simplicity of installation and use (valued from 0 to 3 according to a defined rubric), richness of interaction (also from 0 to 3), ranges of estimated time dedicated (based on available material and complexity and depth permitted for each system), and material available for teachers (A-D).
|Type||Game||Inst ||Personal data requested||Us ||Int ||Apprentice dedication time range||Teacher preparation time range||Av Mat |
|CHAL||Bee-Bot||0||No||0||0||1 h–10 h||1 h–5 h||B|
|Blockly Games||0||No||0||0||1 h-15d||5 h–20 h||C|
|Cargo-Bot||0||No||1||1||1 h-5d||1 h–10 h||A|
|0||Email (opt.)||0||1||1 h-2 m||5 h–50 h||D|
|Daisy the Dinosaur||0||No||0||1||1 h–4 h||1 h–5 h||B|
|Kodable||0||No||0||1||1 h-2 m||5 h–50 h||D|
|Kodetu||0||Sex, age, school, survey||0||0||1 h–5 h||1 h–5 h||A|
|Lightbot||2||No||0||1||1 h–3 h||1 h–5 h||C|
|Made with Code||0||No||0||1||1 h–20 h||1 h–20 h||C|
|SpriteBox||0||No||0||1||1 h–3 h||1 h–5 h||C|
|The Foos||2||0||1||1 h-30d||5 h–30 h||C|
|Tynker - Activities||0||Email (opt.)||0||1||1 h-1y||2 h–10 h||C|
|CREA||MakeWorld||1||Sex, country, age, email||1||2||1 h-2y||5 h–40 h||D|
|Robozzle||0||Email (opt.)||1||1||1 h-5d||2 h–10 h||B|
|LANG||Alice||2||No||3||3||3d-4y||20 h–50 h||D|
|App Inventor||3||Google account||3||3||3d-4y||20 h–80 h||D|
|Beetle Blocks||0||No||1||2||2d-1y||5 h–40 h||B|
|0||Email, age, sex (opt.)||0||2||5d-2y||20 h–50 h||D|
|Hopscotch||0||Email (opt.)||2||2||5d-2y||20 h–50 h||C|
|Kodu Game Lab||2||No||2||3||5d-2y||10 h–50 h||C|
|Scratch||1||Birth date, sex, country, email||2||2||5d-2y||20 h–50 h||D|
|ScratchJr||2||No||2||1||1d-2 m||5 h–10 h||D|
|Snap!||0||Birth date, email||2||2||5d-2y||20 h–50 h||C|
|Tynker||0||1||2||5d-2y||5 h–50 h||C|
|Waterbear||0||No||0||2||5d-2y||20 h–50 h||A|
|GAME||Minecraft||3||3||3||5d-2y||20 h–80 h||D|
You can see the breadth of the range of time dedicated, which in the case of general programming tools such as Scratch or Tynker can vary from a few days to some years (many schools use these tools throughout several years, although not usually continuously). It can also be seen that the challenge systems have a much less ambitious temporal approach, except in the most highly developed levels such as Tynker or
There are no unique or universal expressions of the fun or engagement that a digital activity is capable of producing in a user. Each person has his or her tastes, preferences, and learning; in addition, in the school environment, the way in which an activity is proposed greatly influences its reception. It is not the same for a child to freely choose a game that s/he wants to play when s/he wants, as to be asked to do so by the teacher, more or less obligatorily, within a class. This is a factor that has influenced all educational games from the start. But in any case, we have done the exercise of trying to objectify the “fun” potentially offered by each of our 26 tools, differentiating some of the classic dimensions that influence the experience of the user when it comes to video games and evaluating each of them from 0 (minimum) to 3 (maximum). This gives us an average measure of engagement that is displayed in descending order in Table 5.
|Kodu Game Lab||LANG||2||3||2||3||0||2||3||3||2||2.22|
|Made with Code||CHAL||2||1||1||2||1||2||2||2||2||1.67|
|Tynker - Activities||CHAL||2||2||2||3||1||1||1||2||1||1.67|
|Daisy the Dinosaur||CHAL||1||1||1||1||0||1||1||1||0||0.78|
We note that this confirms the logical relationship between the most widespread and the most attractive games (Minecraft,
3.5. Computational thinking
It is a fundamental aspect for our analysis to review which of the specific characteristics that are employed in CT are included in the tools analyzed. Table 6 shows the aspects that each tool includes, or not, along with some significant data such as the number of different blocks that can be used to program (calculated counting all the different blocks that the system allows to be used) or whether the equivalent textual code can be seen in parallel to the visual program that is being developed.
|Tynker - Act||X||X||X||X||>200||X||X|
We have not included sequences in the table, which all the tools analyzed have (we cannot imagine a visual programming tool without sequences). We have also seen that flowcharts, a visual tool widely used in programming and in learning programming at the conceptual level, are not used in any of these tools. On the other hand, recursion is used in two different ways: in those tools that do not support loops, (virtually infinite) repeating is performed using recursive calls (this is the case of Cargo-Bot, LightBot, MakeWorld, and Robozzle).
The languages generally support more features and use many more basic blocks to allow greater expressiveness of programming (all have more than 100 constructions, except Hopscotch that limits them due to its orientation to tablets, and ScratchJr that is aimed at the youngest age groups). Conversely, the systems of challenges have much less expressiveness except the four most developed ones which support a large number of levels and greatly diversify the constructions that can be used in each challenge:
It is also significant that all the languages support events, which speaks of the importance of event-oriented programming in current computing and also shows that the concept of an event that provokes an action has a very natural meaning for learners. Most languages allow multithreading, albeit in a way that is transparent to the learner, who probably does not need to understand the concept to use it implicitly. Only some of the languages (but no challenge tools) allow message passing, object-orientation, 3D, and connection with physical systems. Only one tool (Alice) incorporates the explicit construction of parallel sequences (to launch several blocks in parallel in the same temporal space).
3.6. Design aspects
The last dimension analyzed has been some design considerations of the tools, from the point of view of the approach to the interface, the sequencing of user interaction, and the options available for professors and researchers (see Table 7).
|Blockly Games||Ver - blocks||X||X||X|
|Cargo-Bot||Hor - icons||X||X||X|
|Ver - blocks||X||X||X||X||X||X||3|
|Daisy||Ver - blocks|
|Kodable||Hor - icons||X||X||X||X||X||3|
|Kodetu||Ver - blocks||X||X||X||2||X|
|Lightbot||Hor - icons||X||X|
|Made w/Code||Ver - blocks||X||X|
|SpriteBox||Ver - icons||X||X|
|The Foos||Hor - blocks||X||X||opt||X||X||1|
|Tynker - Act||Ver - blocks||X||X||opt||X||X||3|
|CREA||MakeWorld||Ver - icons||X||X||X|
|Robozzle||Hor - icons||X||X||opt||X|
|LANG||Alice||Ver - blocks||X||X||X|
|App Inventor||Ver - blocks||X||X||X|
|Beetle Blocks||Ver - blocks||X||X||X||opt|
|Code Studio||Ver - blocks||X||X||X||X||X|
|Hopscotch||Ver - blocks||X||X||X||X|
|Kodu||Graph - icons||X||X|
|Scratch||Ver - blocks||X||X||opt||X||X|
|ScratchJr||Hor - blocks||X||X|
|Snap!||Ver - blocks||X||X||opt|
|Tynker||Ver - blocks||X||X||X||X||X||X||2|
|Waterbear||Ver - blocks||X|
|GAME||Minecraft||Ver - blocks||X||X||X||X||X||X||2|
In addition to the data given in the table, we have also reviewed the adaptability of the tools but we have not found any. That is, the software always behaves the same regardless of the characteristics of the user (age, gender, educational level, functional diversity, etc) or their behavior (whether the program is wrong or right, better or worse, the game does not change the subsequent levels nor does it provide different information or tutorials.) The only thing that approaches adaptability is the score, which we discuss in the following table.
Reviewing the type of interface that is proposed for the metaphor of “code” (the panel to which you can drag the pieces to develop the program), we see that the most common option is vertical (69.2%), which represents the sequence from top to bottom, and rather less common is horizontal (23.1%) which represents the sequence from left to right (in a few cases with local adaptation to the languages that are written from right to left). There are two special tools that do not fit into these two schemes: Kodu that proposes a creative graphic interface in a circle where the options are carried out by levels, and each level shows the available options with icons, joined in a circle; and Bee-Bot, which has no explicit code space: each learner has to remember by heart the program sequence that s/he “loads” in the bee (just as happens with the bee-bot physical device).
The preference in vertical interfaces is for blocks (only MakeWorld and SpriteBox, aimed at lower age bands, propose vertical icons), and in horizontal interfaces, icons (except for the Foos and ScratchJr which develop graphically elaborated blocks to represent the repetitive structures mounted on repeating icons). The tendency is to use horizontal structures with younger age groups and vertical ones with older age groups. The blocks usually have the visual form of a puzzle, colored to differentiate the types of construction visually. In some cases like Alice, App Inventor, or Waterbear, the blocks represent concepts that are very close to the corresponding low-level text-based code.
In the table, you can also see the tools provided for the teachers. Those that provide information to the teacher and allow him/her to manage groups of students, often also have an online dashboard in which the teacher, through the web, can consult information on the actions of his/her group. This is fairly complete in the case of
Public access to data is not common; very few tools show general use data and even less allow access to information for research.
Finally, in Table 8, we can see information about the feedback that is given to the user as the system progresses. We only consider challenge games, these being the ones that can guide the learner through an expected series of actions.
|Type||Game||Pre-level||Error||Success||Progress||Progress info accessible|
|Blockly Games||X||X||X||Levels passed|
|Cargo-Bot||X||X||X||X||Stars, levels passed|
|X||X||X||X||Levels passed, Code length|
|Kodable||X||X||X||X||Levels passed, points|
|SpriteBox||X||X||Levels passed, points|
|The Foos||X||X||X||X||Levels passed, stars|
|Tynker - Act||X||X||X||X||Levels p., stars, prizes, certifs, concepts|
|Robozzle||X||X||Levels passed, solution length|
Throughout this chapter, we have seen that there are a growing number of options to lead a learner through CT. An interesting learning path can be to start with some of the challenge games for a few days and move on from there to a visual programming language that can involve weeks or months of activity. The fun is assured, and there are multiple options, in addition to a diversity of motifs that make use of well-known themes of films or video games to reinforce the experience.
However, there are still some limitations to be considered for the next generation of CT games. There is excessive use of action primitives that have to do with movement and orthogonal rotation (influenced perhaps, as we are all, by Logo and its historical importance); instead of other auditory, rhythmic, or visual options, that also allow for developing algorithmic thought and exploring abilities other than spatial vision: in this sense, we note some of the most recent activities incorporated by
A key issue in learning is assessment. In the games (which pose a quantifiable, measurable and observable challenge), an adequate assessment is more feasible. In fact, it is already being considered in some platforms: code size—number of blocks—in
Observing only the category of games based on programming challenges, we review the importance of generating more engagement after the challenges are over, incorporating techniques of gamification known as punctuation, classifications, proposals for improvement, and the incorporation of creative levels in which the challenge is not limited by simple quantifiable objectives; a line in which the entities with more resources, such as
Regarding the programming languages category, there are intrinsic limitations to block-based visual environments compared to text-based languages. This is more noticeable in large programming projects due to limitations on the visibility of the code, code navigation difficulty, or lack of control in source modifications . Bidirectional conversion between visual and text programming language is available in an increasing number of platforms such as
Finally, we have included, in our analysis, a small category of videogames that allow using visual programming in their mechanics. In this regard, Minecraft is an interesting example for game designers. Good videogames can also be designed taking into account specific CT mechanics. We believe this is one of the challenges for the following years in game design, not only for construction games but also for graphic adventures, RPGs, FPS, and many other types of videogames.