Why do we teach kids to code?
This is a typical rebuttal we get when we talk about teaching kids how to code. And yes, we wholeheartedly agree that kids need to run around outside and move their bodies, but we also think that teaching kids how to code, how to sense the world with technologies, and how electronics work will actually serve to reduce the amount of time they spend just staring at the screen.
We believe technical literacy should be taught as a creative tool, to empower kids to make things and gain crucial understanding about how the world around them works.
It is not hard to imagine that kids growing up today will face a world entirely different from our own. In the past few years, technology has upended our lives in more ways than we can count as we hurl through this century innovating at breakneck speed. Self-driving cars, delivery drones, AI powered billboards are all just around the corner. "Smart" TVs and speakers are already prevalent. Robots and screens are here to stay. Being surrounded by technologies is the new normal.
In the same way our generation was once taught media literacy so that we are better equipped to dissect advertising messages aimed at us consumers, digital know-how is critical for this generation. This is the education they need.
Educators and education institutions now advocate learning coding concepts as part of basic literacy, i.e. teaching computer science as language acquisition and communication skill, just like reading and writing. The argument, in a nutshell, is that future work will require a fundamental understanding of computers and AI.
Lots of emphasis is being placed on job skills for obvious reason. But the pitch falls short of the potential. If what we're concerned about is job placement, then by all means, teach job skills. However, it won't take long from now for AI to replace all the newly fulfilled, assuringly middle-class tech jobs, all over again. One day in the future machine-learning is going to outpace human-learning and then these kids will be all out of "jobs".
So how do we make sure humans stay ahead of the game?
We believe kids should learn technical literacy so they have the power to create, reinvent and make better decisions for the future. We think the answer is to embrace technology as creative material. Teach computer literacy as a required skill, coding as language acquisition, computational thinking as a perspective, tinkering as a creative outlet.
After all, we teach English, math, music, swimming and other subjects to kids, not because we expect them to become a writer, mathematician, musician or even an Olympian (even though that would be nice), but because all of these things help kids gain perspective on the world and be creative in life. Technical literacy is the same: having a good grip of how technology works around us enables us to experience the world and express ourselves within it.
When we learn to paint a landscape, we invariably gain an understanding of light theory and optics, science behind how we see things with our eyes. With sculpting and drawing, we come to understand forms, scales, and proportions. And so it goes with different artistic disciplines. Teaching technology literacy in the same paradigm is to enable the future generations to be creative with technology, have an understanding of their world, and open pathways to more inventions.
For the kids growing up today, knowing how to use an electronic device won't be a problem. It is their normal. They get it intuitively. The 'why' is the more poignant issue to explore. Why does the object respond the way it does? Why does it thing work like this? What if you could redesign the function to make it work a little differently? What is needed to make that idea happen? Now that we've graduated from Think Differently, we also have to Think Computationally.
Computational thinkers aren't just programmers. They're the people who can create lovely intricate patterns in Illustrator, or make a really cool gizmo in Minecraft, or make a MIDI synthesizer play crazy microtonal jazz solos. They understand not only how to make a computer speak, but they also have an imagination for what it could possibly say.
Computational thinking is beyond learning how to use a device. It's the fundamental understanding of inputs and outputs and how to break down complex problems into smaller chunks. Learning to program is a step-by-step process that teaches kids how to understand computational machines and devices on a minuscule level. It is also a trial-and-error process in which kids would inevitably fail at first until they get it right. In fact, 99% of coding is getting it wrong, and instead of being discouraged from failing right out of the gate, understanding that frequent failures is part of the process that make things work is an essential lesson to learn. The outcome is a result that they could forever tweak and change. Learning to have control over a device has a powerful payoff, both for knowledge and self-confidence.
While we adults realize the importance of teaching computer literacy to the kids, and might even be able to mandate it for their school curriculum, computer programming is a difficult subject and most of time boring. Whereas an adult may be motivated to learn a new skill with monetary incentives or academic challenges, to kids that same compelling incentive is to simply have fun.
The challenge of making a complex subject fun to learn is something we have been working on for a decade. In designing interactive exhibits for museums, we were given dense subjects from our clients, ranging from illuminating the history of Thai people to exploring the science of energy consumption, and asked to create something compelling for casual visitors. Over the years we've explored how to use spectacle and delight to draw an audience's attention. We've come to understand what captivates people, and we blend that with educational materials. This past few years we've put all our efforts into thinking and designing products for the education of code and electronics, and for imbuing computational thinking in the curious minds.
Our background stems from the maker community and we specifically cherish projects that explore the relationship between electronic hardware and code. For Little Robot Friends, we felt it was important that the result of learning to code be off-screen, something tangible that can react to what the kids are doing on-screen. This is what makes the coding experience delightful. Equally important is that the coding they learn should have a 'real world' connection, which is why we remain committed to having our system be compatible with other platforms (Arduino, C/C++). As well, since hardware and software knowledge should go hand-in-hand, we take the opportunity to explain how sensors and basic electronics work, and how they can come together to make a robot.
In our workshop activities, we start off by introducing basic concept of circuits and how technologies work around us in our daily lives, and then we ask kids to imagine a robot character they would create knowing its limited capabilities. Using the power of storytelling and hands-on crafts, our sessions look more like an arts and craft class, with laptops and electronics strewn on the table, than a pristine computer lab. Unsurprisingly, making learning fun helps to maintain kids' focus and interest level on the subject.
By the end of our sessions, kids are able to grasp the concept of events and responses (eg. a sensor sensing something and making something happen as a result), and understand that they are, or will be, able to change how a digital object functions by using their own code. It is hard to describe the satisfaction one feels from seeing a spark in a kid's eyes once they understand something new. Ten years ago, we had never thought of becoming educators, but we get what is so compelling about it now. Even if that spark is a short, fleeting moment, we know a seed has been planted.
Four years ago we became parents, and watching a little human learn how to navigate the world has been one of the most fascinating experiences for us. As we observe our world continuing to be shaped by technology and our son continuing to navigate and adapt to it, we decided that an important contribution is to better prepare the future generation for the world we are all building.
And this is why we teach kids how to code. It's not because we expect them to all become programmers or the next Steve Woz (although that would be nice too), but so that they can intuitively understand their environment and make good decisions in it.
The pace of technological advancement doesn't appear to be slowing, and looking to the future, we could have a generation who adapts to machines because they don't understand them or we can educate a generation to adapt those machines to our needs. Our world is going to be reliant on robots and AI, and of course, we want that world to benefit humans. We need to make sure the next gen grows up understanding that robots work for us, not the other way around.