Can we get a toddler to program?
Experiments in Programming with a 2-year-old
To answer that question I wanted to figure out if my son could “write” a simple program by manipulating symbols. In the spirit of my How To Train Your Robot game, I decided our contract was going to be “If you show me symbol X, I’m going to jump. If you show me symbol Y I’m going to lift my arms.”
The “symbols” ranged from Lego bricks to toys to stuffed animals.
We tried this when he was around 2 years old. It didn’t work. He was more interested in the physical object that represented the symbol rather than the meaning of the symbol in our “game”. I don’t think it had to do with him not being able to interpret rules, because he understood cause-and-effect (grabbing toys from other kids = timeout). I think it had to do more with not being able to interpret an object as something more than its obvious physical attributes (color, shape, and what happens if you smash it onto something).
Experiments in Programming version 2.5
So, I refined my game into “How To Train Your Robot To Jump”. Our contract became “Pretend I’m a robot. If you place an arrow facing upwards, I’ll jump up. If you place an arrow facing down I’ll do a push-up”. I thought that using arrows to face up or down should be less abstract. Also, I waited until he was 2.5 years old. He was better at paying attention.
We tried this new game and it worked!
Take the arrows…
Place them up or down…
And wait for me to execute the program…
Which is what programming is fundamentally about: use a language to describe a task that is automated and whose results you see after you are done.
(Keep in mind, that girls are more advanced than boys at that age, so my son serves as a how-early-can-a-kid-program upper bound of sorts.)
He was so excited that he wanted to do what I was doing. So, he’d place the arrows and then jump up or drop down.
Then we started getting creative. How about putting the arrows facing left or right and I jump to the left or to the right?
(And how about a couple of dinosaurs around to help us debug?)
There was not much action happening with only 3 arrows. He wanted to keep me jumping. Kids around that age understand numbers, so we introduced numbers into the mix and I told him that if he put the number 6 in front of an upward facing arrow, then I’d jump up 6 times.
We were 10-15 minutes into the game by then, and the game started looking like a real workout (physically for me and mentally for him).
At that point he was more interested in how numbers and arrows looked together in large quantities rather than the program itself. We called it a day. A good one indeed.
I hope we learned something useful today,