Modern technology and kids is a tough combo to handle. Some parents fight it, while some choose to embrace it. But these days, coding for kids has become more popular than ever, turning this seemingly not-so-child-friendly activity into a field of creativity, exploration, and discovery. How difficult is it for kids to learn basics of programming? Get some straight answers from an experienced programmer and educator.
IT is here to stay in our lives, so it's unsurprising that most parents wouldn't mind the idea of their kids learning the basics of programming, either as an extracurricular activity or even as part of a regular school program. This is an ancient parenting technique that goes by the name "if you can't beat it, lead it". And while there are a lot of available computer literacy and coding courses for kids online, none of them can replace the value of interactive learning. Especially if we're talking about the learning process of children.
This is what Apify's co-founder Jakub Balada has been encouraging for years. The idea of teaching kids coding basics came spontaneously during one of the early COVID-19 lockdowns, as he was playing with Lego Boost toys with his own children. Fast forward to now and Jakub is leading regular coding courses for kids in middle school in his hometown and arranges occasional workshops during IT events such as WebExpo. We talked to him about his methodology, first steps, challenges, technology, and, of course, inspiration - and hope that it will give you the courage to start a Coding for Kids class of your own.
Teaching coding to kids in school
My experience with teaching coding for kids started in a small private school in Pardubice, Czech Republic. I have been holding a course of robotics for kids from the first to fifth grade, once a week for 90 minutes, for the past two years. The course involves basics of programming using Lego Boost, Scratch, and Ozobot – similar to what I introduce during the WebExpo workshops.
My interest in teaching coding for kids was kindled about two years ago, when my wife and I bought a Lego Boost set for our kids. I ended up enjoying it almost more than them, and I was playing with it both with the kids and on my own for the whole winter.
Soon after that, I started looking up tips for teaching coding to kids using Lego Boost, and I found this approach deeply interesting. I marveled at how kids aged 5 or 6 can learn the basics of programming, like using loops and understanding conditions with the use of simple block programming.
Eventually I suggested a course based on this to the school, which they welcomed gladly. Later, I got the idea to offer similar workshops for kids at the Apify offices, and WebExpo was an excellent occasion for it.
Weekly class vs. one-off workshop
WebExpo included six workshops of 90 minutes each, distributed over two days. Each workshop was independent from the others, so different kids showed up for the different workshops, while some attended more than one.
All of the workshops showed a high level of attendance, especially this year, and I was lucky enough to have a few fellow Apifiers helping me out. That's also beneficial for the kids, who get more dedicated attention when more teachers are present. That means that whenever they get stuck with a step of the process, someone is available to help them individually.
Although the workshops are relatively short and isolated when compared to the regular classes I hold at the school, the kids had a chance to learn the basics of block programming using Scratch, Ozobot, or Lego Boost.
When I mention the basics of programming, I refer to loops, conditions, basic commands, and parallel rounds of commands. The kids end up actually operating the robot they build out of Lego bricks, and that’s a deeply engaging way for them to learn. They can draw a path with colored highlighters and instruct the robot to follow the lines, or make it shoot and hit a target.
I've done lots of research into teaching methods and tools and I have found some comprehensive teacher training materials that show you how to approach and engage the kids, starting with games for a playful learning experience. Scratch is a good example of this material from MIT (Massachusetts Institute of Technology), which includes thorough documentation and tutorials. It's a detailed step-by-step guide on how to explain commands and their uses to kids and what kind of exercises you can suggest to them for practice. It’s been used in more than 200 different countries, speaks 70 languages and is designed especially for ages 8 to 16. Scratch is a great starting point not only for kids but also for educators and parents, so I definitely recommend it.
While these tools are designed so that kids can learn on their own and don’t necessarily need guidance, I believe it’s good practice to do some research into teaching methods. In that way, the learning experience is more structured, and teachers and parents are prepared should the need arise.
The main technologies I have been using are Lego Boost, Scratch, and Ozobot, which I believe are a good combination for kids aged 5 to 10, and I've had highly positive experiences with them. However, there are more tools I would like to try out in the future. One of these is the new Lego Mindstorms. It is designed for children aged 10+, and it features more capable sensors and motors. Unfortunately, one year after it was introduced on the market, it's now sold out everywhere.
Preparing for chaos: challenges of teaching coding for kids
One of the most common challenges with kids is that it can be hard to make them pay attention for a long span of time. Kids are like sponges and they absorb every stimulus around them. During WebExpo, we kept all of the tools for the different workshops in the same place.
That means that when eight kids came in for the Lego Boost workshop, they saw not only Lego Boost, but also Ozobot and 3D printers. Suddenly, their attention was grabbed by all the different unfamiliar tools and their curiosity took over their concentration, so it was hard to keep them focused.
Instead of trying to force their attention back to the theme of the workshop, which would probably have left both me and them frustrated, we played along with their interests. Again, I was lucky to have assistants who could explain to some of them the functioning of 3D printers and to others Ozobot.
What age to introduce coding for kids?
The workshops are designed for kids aged 5+ years. Of course there are potential obstacles to take into account when dealing with kids that age, as a bad mood or missing their parents can threaten the successful outcome of the workshop, but kids starting from that age definitely possess the capability for learning these skills.
In my experience, a 10-year-old might be a beginner whereas a 6-year-old already presents the advanced skills required to play with a robot alone. Age doesn't matter as much as we are used to thinking, and we need to give the kids a chance to experiment with the toys and discover their aptitudes.
At the school in Pardubice, two kids were so eager to try Lego Boost that they actually received it as a Christmas gift before they even attended my class, so when the class took place, they started to show me what they had built.
I often marvel at how capable the kids are at building the robots, particularly from Lego. I saw kids build a robot in 10 minutes which took me hours to figure out. It’s thrilling to see their imagination and passion at work.
Parents enjoy the workshops as well, and many times I have found myself explaining them how to do the loops and conditions rather than to kids. I often joke that I should get an affiliate fee from Lego Boost because of all the parents who bought a set after the workshops.
If we were to take a single lesson from this conversation, it would be that technology is just a tool - whether it's harmful or useful depends on how you use it. We've witnessed numerous times how technology can be a helping hand, a facilitator, even a warrior on your side. Especially when it comes to children.