Children Programming

Josh M.R. Allen
11 min readJul 29, 2020

My daughter is 13 months old and I find that every thought, decision, and action I make has careful consideration for her — even if I don’t realize it at the time.

A friend told me that her coworker started teaching his daughter how to code when she was just 3 years old. Well, that did it — as soon as I heard this, my mind knew exactly where it was going.

I currently see my daughter recognizing letters, making sounds, pushing buttons — you can see a child forming her world around her as she pokes, prods and plays with every object’s nook and cranny. Isn’t learning how to program fairly similar? Play with something, break it, then figure out how it works?

There are a lot of ways to start this — smart phones already grab her interest. It only makes sense because she sees us using them all the time. Why wouldn’t she want to learn how to use one? Perhaps even program her own app to do her bidding.

The Goal

The world is quickly becoming an inhospitable place for the tech-illiterate. You can carry out most of your errands (banking, shopping, business, even medical consultations) digitally. It’s quickly becoming apparent that knowing how to program computers is going to be like learning how to drive or fix cars: you don’t have to, but you’ll wish you did when everything breaks down. Plus, with the affordability and diminishing barrier of entry of learning how to code coming to a hitherto unheard-of point, it’s easy to visualize your grown children chastising you for not teaching them sooner.

I know I should have taken that Auto Shop class back in High School

The Famous

There are always celebrities and legends that influence decisions like this. Here are three, from youngest to oldest:

Emma Yang

Emma Yang giving a Ted Talk in July 2017

Founder of timeless.care, Emma created an app when she was in High School. She started learning to code around 6 years old with Scratch, a programming language for children. Emma went on to continue learning programming in middle school and eventually created her own app to help her own grandmother and other patients with Alzheimer’s.

Mark Zuckerberg

Mark Zuckerberg and his own daughter in 2017

Most everyone knows the story of Mark Zuckerberg, the founder of facebook.com. As controversial as facebook might get, nobody can deny the talent that brought about the inception and creation of the one of the world’s largest social media platforms. He started programming around 8 years old.

Bill Gates

Bill Gates (right) with Paul Allen (left) in 1970 — obtained from Wikipedia

Bill Gates himself actually started pretty early himself, learning BASIC when he was 13 years old. He programmed a tic-tac-toe game that allowed him and his fellow students to play against the computer.

The How

There’s a mountain of evidence for why children should learn how to code, but the question quickly becomes how. Especially if you haven’t spent your entire education and career already in the industry.

Luckily, I taught young children for 3 years after college. Teaching children is kind of like what astronauts say about going into space: “Everyone should do it at least once to get perspective.” In my case, it’s practical life skills in guiding my daughter in her education.

Non-Screen Activities

First, we start without screens, because regardless of her ability to use our phones to delete apps and call people at random, she isn’t aware of what she’s doing. We’re going learn two main concepts: algorithms and conditionals. The internet is an immense source of collaboration and sharing; this site is no exception: https://preschoolsteam.com/coding-games-for-kids/

9-Square Instruction Game: Algorithms

Form 9 squares, place an ‘X’ in one of the squares and choose a “Starting Square.” One player acts as a ‘computer’ and the other acts as a ‘programmer.’ The programer gives simple instructions to the computer: left, right, forward.

If-Then: Conditionals

This is a great activity from leftbraincraftbrain.com and works as a group or even just a one on one activity. One person acts as a ‘programmer’ while everyone else is a ‘computer.’

The programmer must give instructions to the computers in the form:

“If I __, then you __”

Examples:

“If I spin around, then you crouch.”

“If I hop, then you run.”

“If I yell, then you spin around.”

Each programmer gets to do a few rounds and you can make it more challenging by adding an else condition:

“If I ___, then you ____, else you ____.”

“If I hop, then you crouch, else you sit down.”

Speaking from experience, this activity falls in line with the Total Physical Response method for teaching natural language to young children.

One of the best things about this activity is that you can add another level of challenge to it: the programmer gives commands as quickly as he/she can and which computer can’t keep up ‘breaks’ and sits down. The last computer standing wins!

Object Orientation Scavenger Hunt

Yes, I think it’s totally possible to teach object orientation to young children. It’s an intuitive concept and I think it’s only natural for them to comprehend possession by a certain age. Incrementally, it’s possible for children to understand simple object orientated relationships. It might take some preparation though: choose several different kinds of objects before-hand. This could absolutely work following the child’s interest, as well.

Gather different toy cars, figurines, dolls, and whatever else. I think dolls and action figures would work amazingly well for this activity (simply for the attributes and methods as metaphors for adjectives and actions).

  1. Assign your child a “Class.” It’s always advisable to immerse yourself in the game and play along, choosing a Class for yourself as well. One person can be assigned a “Vehicle” class and finds only toys that are vehicles. You can be the “Doll” class and find only dolls.
  2. Abstract it up one level and make one person a “Toy” class that gather all the different kinds of toys.
  3. Extension: An extension to this would be to name your child the “programmer” and you take the role of a Class. Your programmer would then have to call on attributes of each of your instances. Put structure to it: “What is your color attribute?” “What is your name attribute?”
  4. Extension: Methods. Your “programmer” calls your methods. “____ (item/instance) ______ (do something/method name).”

By now you must be pretty tired reading all of this — I admit that the only interest I expect to see for an article like this is from other parents and/or educators. While I’ll stop at three non-screen activities, I’d be completely remiss if i didn’t go over the digital options. Once your child is able to read and able to type (and getting bored with your non-screen games and insists that you give them your smart phone so she can face-time with Grandma) you’re probably ready to move on to a digital environment.

The Digital

This blog post from codakid is a treasure trove of languages and courses designed specifically for children of ages 8 and up, possibly even earlier.

Scratch 3.0

Scratch interests me mainly because of its simplicity and easy to follow tutorial. Emma Yang said she learn scratch when she was young and it’s said to encourage freedom of expression and creativity. I can imagine my daughter with a Chromebook or some sturdy variation thereof, easily logging on and creating games and programs as her interest commands. With Scratch, it seems like you get an environment that you easily immerse yourself into.

Scratch 3.0

Blockly

Blockly is the google version of Scratch and doesn’t look too bad. However, the interface doesn’t seem as friendly as the environment that Scratch provides and probably wouldn’t instantly draw in a young learner as Scratch seems it would be able to.

Blockly

Tynker

This tool is a heavy-duty kids coding platform. It includes super captivating games and activities with original art and stories. I feel like this would be a good addition to Scratch if you feel your child is more comfortable with more structure and guidance. I definitely don’t see a problem with my daughter going back and forth, learning concepts from one, gleaning inspiration from another and implementing ideas to create her own original creations.

Python, Javascript, Lua, & Java

Using codakid or another paid platform might go a long way in learning programming at a young age. This option is a bit far away for me to consider, but I’m glad it’s there. Most of the languages on codakid say a recommendation of 8 and up, which makes sense to me since programming languages all have their own keywords and syntax which requires some knowledge of symbols (like periods and semicolons) and the layout of the keyboard.

Not intended as an ad — just wanted to showcase how many courses they have available

C#

I’ve always been fascinated with video game coding and have had friends in the industry regale me with tails of “crunch time” and the cool new technologies (and game systems) they got to work with. The Unity game engine opens this possibility up in such an intriguing way — offering up tons of tutorials and step-by-step instructions. I feel like it’s something an older child learner would be able to handle. If my daughter gets into video games, I’ll probably allow her to play whatever she wants only so long as she first creates and completes her own project first using the Unity engine. Wouldn’t that be interesting?

Go

Anything about this language is a little bit difficult to gleen from a cursory glance at their website. From what I understand, it’s an open source project that was started by a team at Google. I suspect that it might be easy for learners who have had exposure to programming and are already familiar with basic concepts. Since Go purposely doesn’t include many features that other languages have, it might be a good choice for older children to learn.

Swift Playgrounds

Apple created their own code learning platform called Swift Playgrounds to bring Swift to the young coder audience. The codakid bloggers say they feel like Swift Playgrounds might be too constrictive in their lessons and don’t provide the freedom of expression that Scratch does. I think that while that might be true, it might actually serve well as a good introduction and guide from beginner to intermediate learning level. Still, I have to wait until my daughter is able to read and type to get to this point.

The First Step

So where to begin? Not where you’d think! At 13 months, she’s learned how to push buttons and we don’t have to wait until she can speak, read, write, and type! I’ve learned that it all starts with buttons and switches. What’s fascinating is how well she has gotten at pushing buttons. I never thought that would be something I’d earnestly watch for improvement on — but it really was something she purposefully worked on: learning how to apply the right pressure in the right place until something happens.

The Buttons

The big white button in our garage hangs on the wall and I let her press it every time we open the big garage door. At first, she needed help. After a month, she started pushing it on her own and she knows to expect the function to execute. She swings her glance up to the top of the door to watch as the gear starts pulling and the pulley starts spinning and the door lifts up off the floor, rolling up onto the ceiling and exposing the garage to the outside air.

Babies just can’t resist the keys of a Baby Grand

My favorite is probably the piano. She’s actually started playing the piano. Her grandmother started by carefully pushing down a key, then pushing her fingers with her own so she could get the feel for the right pressure. My daughter went from pounding relentlessly on the piano keys to carefully pushing each key one by one. My wife and I both practice the piano now and then and she’s gradually figuring out how to get similar sounds on her own.

The Leaptop Laptop from Leapfrog

She has taken to this thing in such a way that simply astounds me. Some family friends gave this to her as a gift on her first birthday about a month ago. It’s probably one of her favorite toys currently. While I’m inclined towards the more Montessori of methods/toys, she really does enjoy the animal setting where you push the keys to hear animal sounds. If anything, it gives her some control over what she wants to hear which I thought was pretty cool. Plus, there’s a setting that speaks the letter of the key whenever you press it and she definitely can’t get enough of that. Sometimes I think she’s trying to mimic us since we both work at home — she’ll often crawl over to her mat, sit up, pick up the leaptop, and place it right on her lap and “get to work.”

The Excitement

I didn’t realize it when I first started thinking about this almost 2 years ago, but a child’s education can really take off on its own when a parent has the passion and commitment to help guide her along once in a while. Without even thinking about it, I had inadvertently shaped her environment to allow her own interest in programming-like areas to flourish and blossom. I’m looking forward to her learning how to talk so she can “program” and enjoy all the activities I have planned for her.

Sources:

https://leftbraincraftbrain.com/if-then-backyard-coding-game-for-kids/

--

--

Josh M.R. Allen

Crazy cool like a mouth full of 花椒 (Sichuan peppers)! Software Engineer | Rails | React | JavaScript | Ruby | AWS S3 | Proud father of a precocious explorer.