It is Saturday. My son is deeply engaged in the game of breeding and raising dragons. At the age of 6, my son has already cycled through a long list of games: some are educational, alphabet / word games; some are musical, baby pianos, sing-a-song games; some are just games, angry birds, more angular birds.
My kids also love to play with Siri on their iPad, asking silly questions, questions that make no sense, questions that have been asked way too many times (such as the zero divided by zero question) so they can laugh hysterically.
I often laugh with them, hoping I can always come up with such ready and mostly clever answers as Siri. I also cannot help wondering if my kids have ever suspected the years of work, the sort of intelligence that powered Siri.
They are kids of technologies, more so, consumers of technologies. They are having an effortless fun ride without knowing the driving technologies behind, nor they have any control over the technology. The same as that they love to spend money, yet they have no idea about money, or how to make money.
So I said to them, why don’t we create games or something ourselves using Scratch?
Everyone is coding, or talking about it
For the past few years, many countries has started experimenting various ways of introducing kids to computer science, as more and more people realized that kids can and should learn basics of computer science, just as they learn math or science.
In 2012, Estonia launched a program called “ProgeTiiger”, in the framework of which Estonian students in grades 1 to 12 be introduced computer programming and creating web and mobile applications; Similar programs are launched in England, Scotland, India and South Korea.
In January, 2016, White House announced an initiative called “CS for All” that proposes $4 billion in funding and additional support for training teachers to bring computer science to students.
Many web sites, mobile applications, organizations are dedicated to help kids learn how to code. Code.org, launched in 2013, backed by many of the technology luminaries such as Mark Zuckerberg, held annual Hour of Code event across the country. According to them, 70 million of kids have participated and tried The Hour of Code.
All sorts of apps employed all sorts of animals for teaching kids to learn. Some of the apps / programs for the very young are a bit more like games themselves. It is mainly designed for basic training of rudimentary computer science concepts, for example:
Kodable: we loved Kodable. It has great interface design, very easy to learn, a lot of fun. In no time, kids can start roll the fuzz balls and unlock more and more fuzzes.
For older kids:
Scratch: It is the most popular coding tools for kids;
Tynker: Similar to Scratch, it allows kids to create interactive games, animations using syntax blocks.
Weebly: While there are many websites allow you to create websites using templates, weebly stands out for its kids friendly features.
Programming Tutorials From Made With Code by Google: Made With Code projects allows you to snap code blocks to construct stories, animating flowers, robots.
Code.org is one of the driven forces for wider access to computer science learning in schools and introducing computer science to underrepresented students of color. Code.org has a full suite of lessons, inspirational videos for kids of all ages and skill levels.
I also especially like MIT’s App inventor, which let you program for Android devices.
Coding is not a piece of cake, but kids are amazing
So I started coding Scratch with my kids. Mostly they do the coding, I looked on. And when they have problems, I dig in with them, reading instructions, watching online tutorials, figuring out solutions.
As that reading is easier than writing, writing code is much harder than playing games. The coding as we know that is filled with “code”, surely looks intimidating. However, graphical languages such as Scratch are also full of peculiar symbols and expressions, “syntax” and communication protocols. It also has its fair share of limitations. A lot of operations that would be otherwise fairly easy task would become quite cumbersome to accomplish using Scratch.
To create a mildly interesting story, it can take a big chunk of “coding”.
However, after some effort, all of my kids has created a few projects using scratch:
Of course, what they have created pale in comparison with the many, many scratch projects created by kids around the world. And the projects are not just games, there are animation stories, interactive birthday cards, science projects. There are also projects that interacting with the physical world, that let your control the screen through voices, motion and body movement.
Those projects are just amazing. Kids are amazing.
Teaching kids to code is not easy
My kids have not fallen in love with coding. It is still a chore, hard work. Coding in Scratch, or working with Kodable, or commanding dragons in various computer science games will probably never be as exciting as playing Angry birds, or Candy crush.
I am not a natural teacher, either. I am more like a consumer of their tall tales. Very often, when we discuss what sort of app we should create, my son always comes up with fantastic, wildly unrealistic ideas, dragons soaring through fire, ninjas in the 360 degree round kicks. With those ideas, we just have to resign to make a little dragon on screen first.
More often, we go offline. We play robot games. Walking around the neighborhood, I would be a robot who does not know which way to go, he would be the know-it-all that give me instructions to go 10 steps straight, turning left, 10 steps more …
With my 8 year old daughter, who has read Harry Potter at least 7 times and numerous fantasy books, we will talk about adventures of fairy princesses, who travels through magic land, solving the problem of the travelling sales man who needs to find the shortest path through town.
For my 12 year old, who is never afraid of sitting and spending hours crafting the best projects, she gets to create more and more projects on her own with little help.
Coding is more than just coding
Every Saturday, my kids go to music and Taekwondo classes. Over the years of their (very) young lives, they have tried tap dancing, ballet, gymnastics, violin, guitar, drawing, pottery-making. Not many things stick. However, we still send them to different places, paying expensive fees, not knowing what or if anything will bear that magic fruit.
Thus they grow, better each day.
Now we are trying coding / computer science. I think the rationales are the same. Chances are they will never ever become professional musicians, performing at Carnegie Halls. However, through arts, dance, music, or martial arts, they are exposed to more opportunities. They learn to appreciate the beauty of life in all shapes and forms. They learn to collaborate with other kids, taking instructions, and creating their own art.
Learning code should be the same and much more. After all, our society has been fundamentally changed and shaped by technologies. After all, coding is always more than just coding.
Let me quote Mit Resnick (the creator behind Scratch) from his TED talk: Let’s teach kids to code:
When kids learning to do a coding project using Scratch, they are learning many core principles of design, about how to experiment with new ideas, how to start with a glimmer of ideas and turn it into a full-fledged project, how to take complex ideas and break it down into smaller parts, how to collaborate with other people, how to find and fix bugs when things go wrong, how to persist and persevere in the face of frustrations.
Let kids learn to code, code to learn.
Title image from www.parentaljourney.com