Coding without computers (unplugged)

Coding without computers (unplugged)

Article by Prof. Alessandro Bogliolo

Do you know that coding and computational thinking can be practiced at school without a computer? In this video, I’ll explain how.

Look at this card. The straight arrow can be seen as a simple instruction that tells a robot to move forward. But in order to use it as an instruction, I need to make sure that the robot does exactly what I expect it to do. That’s why I have used this tape to mark a chessboard on the floor.

Nair is pretending to be a robot, and we agreed that this arrow means moving into the square in front of her. We have also other instructions, turn right, red card, and turn left, yellow card, to tell Nair to turn around 90 degrees clockwise and anticlockwise. With this simple instruction set, I can write a program like this to make Nair reach the target cell: move forward, turn left, move forward, move forward.

This simple activity allows us to experience the separation of roles between a programmer and an ideal performer that is a computer or a robot that does exactly what the programmer says. To explain a procedure to a robot, I have to split it into elementary instructions and be so precise that I end-up with a better understanding of that procedure than I had before. That is why coding is so important to develop computational thinking skills. It is a matter of self-empowerment.

Once we understand this separation of roles, we can get rid of technology and just play coding as a role game. Now I am a coder, Cody, and Nair is a robot, Roby. That is why this activity is called CodyRoby.

Coding activities that don’t make use of any electronic device are called “unplugged”. Unplugged coding may sound like an oxymoron, but it makes a lot of sense, because it breaks access barriers while retaining all the magic of coding. If I print the CodyRoby cards smaller, I can save paper and make a deck that fits into a card box like this, and now I can play on a board, moving Roby pieces by hand. There also special blue cards and I have no time to explain here what the special blue cards mean, but see the effect that they can make on Nair.

CodyRoby is not a game. It is more like a do-it-yourself programming environment. I can use it to develop and play many different games and you can invent your own to allow your students to develop computational thinking skills while playing.

This is the tourist. Tommaso is pretending to be a tourist asking his classmates for directions to the castle. Two teams compete to provide the right sequence as fast as possible. The sequence provided by the first and the fastest team, is tested first, under the supervision of the other team.

This is the duel. Two players, or teams, control two Roby pieces on the board, or two human robots, Nair and Tommaso in this case, on the floor, starting from opposite corners. They take their cards from a shuffled deck and use them to make their robots catch each other. Wins the one getting to the square already occupied by the other one.

Instead of catching each other, the two robots can race to reach a common target, like this. If we add question cards to the board, the race becomes a competence Cody game, where the teams have to answer the questions hidden behind the question marks they step into. You can use this game to test the competences of your students on any topic that you are teaching.

For a full description of these activities please have a look at the lesson plans below. They are very easy to follow and you can directly use them with your students. CodyRoby is just an example, but there are plenty of unplugged coding activities that you can propose. For instance, you could play with cryptography, with pixel art, or directly with the algorithms that we use every day.

Just start from a common task, like opening a book at a given page, and challenge your students to describe the procedure to be applied to accomplish it, possibly giving instructions to each other. For instance, I usually start by opening the book in the middle, to see if the page that I am looking for is in the first or in the second half. Then I iterate… Is this approach general enough to be seen as an algorithm? I leave this question open, because now it is your turn.

Unplugged activities bring coding at your fingertips. Take advantage of Code Week to give it a try with your students, and add your pin to the map!