Some, such as SAMLabs, are connected via bluetooth and interact with an app to connect blocks together and program, while Cubetto comes with a wooden control panel to set out commands that are then sent to a programmable robot.
As well as teaching children how to code using the tangible programming ‘languages’, they help develop the skills integral to computational thinking. Wing said that computational thinking involves designing systems and solving problems, and that’s exactly what you get with tangible programming.
Can you program the robot to cross the drawbridge and reach the treasure? How many apples can you collect in one move? Is there a way to control my robot with an iPad? Not exactly earth-shattering, but important and interesting ways to teach coding, and computational thinking, to children. Through tangible programming, you can do all of these and much more. By constructing physical real programs, it draws upon prior knowledge of real-world systems. Some are similar to children’s games, where blocks have to be passed through windows; others draw upon LEGO and jigsaws, where the individual pieces imply being part of a greater and complete whole.
Programming using tangible programming
Tangible programming allows for some quite advanced programming techniques. Look at Cubetto and the way it introduces functions and subroutines, or Osmo and loops. The more advanced tangible programming languages like SAMLabs provide the functionality to use logic gates and create circuits using motors. Another advantage of tangible programming is that there’s no smelly code – having redundant or extraneous code makes your code smelly.
With tangible programming, these extra code blocks become obvious and often lengthen the time it takes for your program to complete a task. Why send your Code-a-pillar round the houses (literally) when you can take the shortest and most direct route? With Osmo code, if you take too many steps or go an indirect route, the app tells you and you need to start again.
Kwon, Kim, Shim, and Lee (2012) researched learning gains of first-grade students in a treatment group using tangible coding compared to a control group using only a computer based coding program (i.e., Scratch). Participants in the treatment group made fewer errors in coding and achieved higher levels of programming tasks.
Tangible programming makes debugging even more fun than when you’re trying to find the proverbial needle in a haystack in the 500 lines of Python you’ve just written. In debugging, you can step through code, replace blocks one at a time or isolate code to run independently. It’s also there right in front of you, ready to be undone and rebuilt with your own hands.
What does it do?
Connect interlocking or magnetic blocks to provide a program that’s run sequentially
Bring algorithms to life – create real-life algorithms and ‘programs’ that do things in the real world
Touch, feel and see your program moving, blinking or bleeping across the room
Excellent at teaching the fundamentals of coding and computational thinking
Supporting SEN children
According to the CAS #include SEN toolkit, it’s important to provide efficient methods of engagement and expression (as well as support). So how does tangible programming provide this? It’s physical; you have to interact with it to get it working. It brings the algorithm to life and makes programming concepts less abstract. Many tangible programming kits are colour-coded or use symbols to negate the need to learn complicated syntax. Cubetto are colour- coded and physically represent the process involved. It also facilitates cognitive and fine motor skill learning. Bers found that tangible programming has the following developmental benefits:
Socio-economic (collaboration, teamwork)
Emotional development (perseverance, self-esteem, self-efficacy)
Cognitive development (sequencing, logical and computational thinking)
Fine motor skills (building, manipulating blocks, using materials)
The vocabulary of programming is still used: algorithm, program, loop, function are used regularly and children are still able to talk confidently and knowledgeably about their programs. Tangible programming gives immediate feedback; you can see whether it’s worked or not. It also avoids those frustrating moments when nothing happens at all, as something generally happens, so it’s easier to discern if it’s been successful or not.
Tangible programming can act as scaffolding between the virtual and the real world, and helps make the concepts less abstract. It negates the requirement to learn syntax, other than that of placing the blocks in order (which the colour-coding and symbols can help with). Most tangible programming systems operate using flow of control, meaning that the program runs sequentially from one block to the next. Using colour- coded blocks and/or symbols means that children can have success with the blocks without even having to read or write. Programming can also be done in a more natural environment, away from screens and possible distractions; this give more flexibility as to where and when lessons can take place. Tangible programming also lends itself to collaborative work – often the kits are big enough to be easily shared and therefore children can still use a paired programming approach.
It should be noted here that tangible programming kits can be expensive. They can also be quite fragile, small and easily lost, and in certain cases can only be used for one purpose (a kit that costs £195 is the same price as a Chromebook, for example). One kit can cost upwards of £500 – along with the iPad or PC that’s required to run the app, the total cost could reach £1,000, albeit that the device may already be acquired. Others have been designed and produced for home use as toys rather than for educational use in schools, so the need to make them low cost wasn’t a requirement.
Another consideration is that children can have difficulty in switching from one interface to another, such as from tangible programming to a virtual one with a screen (Giannakos, 2017). To demonstrate a progression of skills and to enable children to be able to access coding environments such as Scratch or Kodu, it’s possible to see a progression of systems and interfaces, beginning with Code-a-pillar, moving to LittleBits and finally SAMLabs, for example. However, this would be extremely costly.
Ease of use: Interlocking USB blocks
Ease of use: Wooden blocks slot intro control of board and sent to robot
Programmability: Sequences, loops and functions
Ease of use: Magnetic blocks snap together, used along with app
Programmability: Sequences and loops
Ease of use: Magnetic blocks snap together
Programmability: Sequences and MakeyMakey
Ease of use: Connect blocks via app
Programmability: Sequences and electrical circuits