Teaching Programming to Children Using Stories, Music, and Puppeteering
November 12, 2013
Play-I is developing Bo and Yana, robots that teach kids five and older some of the the basic concepts behind programming. Using a visual programming interface that weaves music, stories, and animation, children are encouraged to think strategically with if-then statements that guide the robots along. The robots are expected to ship in summer 2014. In this guest post, Play-I CEO Vikas Gupta explains how even the youngest kids can learn to program through playful exploration.
You’re given a sequence of commands. “Go straight, turn right, turn left, and turn right.” Where are you now? It can be hard for children (and even adults) to figure out where they are after following such a sequence. Because your position changes at each step, you need to mentally keep track of where you are as you go along. And as the sequence grows, you need to keep track of more and more context.
For children, abstract sequences in programming are difficult to grasp. But the idea of a sequence becomes more accessible when provided within a context that is already familiar. Music, stories, and puppeteering are examples of ways to engage children in computer programming using concrete concepts they are already familiar with.
At Play-i, our goal is to make computer programming accessible and fun for children as young as 5 years old. We are developing a pair of robots, Bo & Yana, which can help children see the physical manifestations of their programs. These robots can be programmed using iOS and Android touch devices including tablets and phones.
When you play or sing a song, you are retelling a very long sequence composed of notes and pauses. This type of sequence is easy for kids to understand because each step is woven into a narrative that makes intuitive sense.
Bo is a robot that can move around, express character using sounds and lights, and respond to a number of external stimuli. Using a tablet with the app, a child can program Bo to navigate a maze like a self-driving car, play soccer, and even play music.
The app will come with pre-programmed tracks with songs such as “Twinkle Twinkle Little Star” and “Jingle Bells.” Music provides a structure that children are familiar with, and programming movements along with a song introduces concepts such as parallelism. For instance, children can program the robot to smile, blink, or dance during the performance. Children can then start composing their own songs and looking under the hood to see the code that runs the program.
We developed a concept called puppeteering because we wanted children to be able to work backwards to discover how programs are created.
Say you send Bo to your mom’s room to deliver a flower. If you use your hand to guide it along the floor, Bo remembers the path and can execute that function on its own the next time you call it. The app can ask something like “Do you want to see how I did that?” and show the step Bo took to get there.
If you want the robot to go forward and turn right, most children will say “forward forward forward, then right right right” because that seems intuitive. But as they puppeteer the robot and then look at the steps the robot took, they realize that the robot went forward, turned right, and then went forward again.
Bo might then ask you to use a sequence of steps to surprise your brother. You cannot puppeteer anymore, because the surprise would be ruined. So you are prompted to create the sequence in advance to get him there. Children will use the concepts they learned while puppeteering to make a plan, create a sequence, and think ahead strategically.
Children are capable of understanding and telling stories of an amazing amount of complexity. Even two-year-olds can tell stories with intricate plot lines and characters woven in and out without getting lost.
When we asked children what they wanted Bo to do — they often wanted Bo to fly, to be a spaceship, to be a helicopter, or be a lion or a dinosaur. We found that children gravitate to “characters” they see in the world around them. This study led to the creation of Yana.
Yana can express a character using sound and lights. The eye’s animation along with colors can express emotions. Yana is small and light enough for small hands to hold, spin, shake, catch and more.
Using a simple visual interface, children can start building characters in the context of stories and books they may already be reading. Take Good Night Moon, for instance, in which each page contains simple characters. As they turn the pages, it is very easy for children to follow along and even remember what comes next. Similarly, you can program a series of if-then statements that Yana can respond to based on gestures. On the first page, Yana might be programmed to ring like a telephone when you shake it; on the second page it moos like a cow when you tap it; on the third page it growls like a bear when you throw it. And so on.
Slowly, even in the absence of a book or a story, children can start to tell new stories by programming new sequences of characters.
We are introducing programming in very concrete ways to give children a context for understanding theoretical concepts. Programming concepts are introduced one at a time through vivid storytelling and interactive quests that adjust to their learning style and pace.
Through inquiry and exploration, repetition and reinforcement, they will truly grasp the underlying concepts. The possibilities are as vast as their imaginations.
Vikas Gupta is the co-founder and CEO of Play-i. Prior to founding Play-i, Vikas had founded Jambool, which was acquired by Google in 2010. Vikas served as Head of Consumer Payments at Google until 2012. Before Jambool, Vikas worked at Amazon where he led the payments and web services initiatives. Vikas studied Computer Science at IIT Kanpur and Georgia Tech. He is also a dad of a 2 year old, and an avid traveler and hiker.