Tangible programming

How can technologists put inclusive design into practice?
15 October 2019

Interview with 

Cecily Morrison, Microsoft Research Cambridge; Theo and Elin


Children hands on top of each other


So how can technologists put inclusive design into practice? An initiative at Microsoft in Cambridge is trying to bring computer programming within reach of young learners who cannot see and were previously excluded. Mariana Marasoiu reports...

Mariana - Programming is about sending instructions to a computer, telling it what to do. A simple such instruction may be "play the musical note C". A more complicated instruction could be a loop "repeat three times playing the musical note C".

And by putting instructions like these ones one after the other, we can eventually create the user interfaces that you're interacting with everyday. A programming language is the way in which we give the computer these instructions. It commonly involves typing letters on a screen with a keyboard or using the mouse to drag and drop instructions and put them one after the other to tell the computer the order in which they need to be executed.

Considering that computers for many of us are so visual, how can you even create code if you can’t see? To find out, I spoke with Cecily Morrison from Microsoft Research Cambridge.

Cecily - Code Jumper is a physical programming language for teaching children ages seven to eleven basic programming concepts and computational thinking, regardless of their level of vision. And it was inspired by the fact that we were working with blind and low vision children as part of our outreach activities and we realised that there were no ways for them to learn to code at this young age alongside their sighted peers.

Mariana - Cecily and her team set out to make a tangible programming language but realised quite soon that the real experts in creating the best tactile experience were the potential users. Step forward a group of four blind kids who were invited to join the design team. I spoke with Theo, one of the young designers, and his mum as well.

Theo - I’m blind, and for quite a long time now I've been working on this project with Microsoft called Code Jumper.

Elin - Hi my name's Elin and I'm Theo's mother.

Theo - One of the most exciting things I created was having a whole new programming language, a whole physical way to be able to introduce these young blind people to coding without them having to fight with a half inaccessible language on a school laptop.

Mariana - So what does the kit actually look like? Back to Cecily.

Cecily - We have a number of pieces, each of these are differently shaped pods that the kids can feel. They're also visually distinct, because many children who are blind or low vision may be using vision alongside their tactile skills. And of course their sighted peers are often very much using vision.

So we have a hub here. This is the start of all our programs and then we have a number of pods that we are going to connect to create a program.

Mariana - Right. That's the basics. But how, I asked Theo, do you actually use Code Jumper?

Theo - Well basically you have to connect pods together using the plugs which are on a wire coming out of one end, and connect them to the socket at the other end of the next pod.

Some of the pods are “play”, some of them are “pause” and some of them are “loop”. So the “play” pod is basically an oval shape. A 3D oval. And on the top it's a flat surface which feels shiny and different to touch. And there are two dials. One feels like a ridged doughnut with a hole in the middle, which is the plug. And the other feels like a ridged pot with ridges around the edge and then a hole in the middle again.

The “loop” pod basically has two big wires coming out of it. The longer one is the one you connect the end of the loop to. And the indented track into the pod, which goes between the start and end holes of the pod.

Mariana - These pods do different things within the program, and they each have a distinct look and feel. And it's not just a language for the visually impaired.

Cecily - We've specifically designed it to be inclusive of children who are blind and low vision but not exclusive to them. We know that most blind and low vision children are in mainstream schools and they don't want to sit in a different room with their own separate technology. They want to code with  their friends. So this was something that they could all do together. And that's why we were very careful to keep the tactile information and the visual information the same. So whether you're accessing it with a tactile way, or a visual way, you can all do it together, and we often have Code Jumper used with at least two children at once.

Mariana - And as Theo gave us a short demo of what the kit can do, I asked his mum Elin how she felt about his involvement in the design process.

Elin - Theo being a part of the development was massively positive and exciting and it's turned into I think about a four year project and really proper thorough involvement, in a real solution to a problem that Theo had experienced for himself.

So he had this huge disappointment of not being able to join in with the Scratch class even though he was really excited about computer programming. And then he got to be hands-on with finding a solution and developing it and actually some of his friends now who are blind get to use it. And that's pretty empowering and exciting.

Mariana - Code Jumper is intended to take kids through the primary school computer science curriculum, but what happens after that?

Cecily - So this is meant for children ages seven to eleven. So that will start them at this notion that a program is a sequence of commands, and we can take kids all the way up to the end of the primary curriculum which is around data flows. And what that means is things like variables.

So when kids start, they move these dials to create the sounds and durations that they want. But as we start to get into more complex programming concepts, we want to do that, what we call programmatically, what that means is it happens automatically. And these are the things we would expect them to learn.

From the little research that we have in the space, we know the importance is not creating very long code, but really understanding your code. And physical programming is restricted anyway, but that's a restriction we haven't tried to overcome because we believe it's useful educationally to keep kids focused on short program flows.

In the UK curriculum, you would expect a child to move on to a text based language in secondary school. That's exactly where we want kids to go. We don't want them physically programming their whole lives, we want them moving on to the tools that they could use professionally. And we support that transition. When you press the “stop” and “play” buttons on the hub, you can actually listen to your code. That's the way you're going to hear code when it becomes a text based language.



Add a comment