As coding becomes introduced to classrooms all over the world, we should make sure to teach computer science the right way – by empowering children to mess it up!

 

Loops in programming

Children learning about loops with a visual programming language used in Bomberbot

What went wrong when I learned to code

I learned to program through online tutorials, books, and many articles of Stack Overflow. These resources often contained a lot of text. A lot of text. A lot of dry text, more specifically, with long explanations, winded examples, and complex vocabulary used to describe concepts that didn’t make sense in the first place. During the first couple of weeks, I felt that I spent more time filtering the relevant information I needed to use to achieve the result that I wanted than actually learning.

Textbooks and traditional instruction have long been the best-accepted method for children to learn new information in schools. It works very well for courses such as Biology and History. But when adding a new course to our curriculum, we shouldn’t simply assume that it should be taught in the same way as before. Educators now have an opportunity to teach this exciting, creative subject in an innovative new way. Now that coding has become obligatorily in the UK, Finland and some schools in the US, we should ask ourselves:

How should we teach coding?

What to teach

When asking how to teach coding, we must first determine what children should actually learn from their classes.

The first thing that might come to mind is teaching a specific programming language. But there are so many of them! Do you choose JavaScript, or Python, or maybe Ruby? Perhaps it should be the one that they will use most in the future. But how can we know which will be most common in 30 years? The next big programming language may not even have been developed yet.

Instead, we should first teach the logic that all programming languages have in common, the basic building blocks behind the code itself. Algorithms, loops, functions, conditionals, booleans. When children understand how to use this programming logic, they can apply them to all (future) programming languages out there.

How to teach

So how can we best explain kids what algorithms are, and in which situations they should use conditionals or functions? A wise man (or woman) once said that we only learn 10% of what we read, but 80% of what we experience and 95% of what we explain to others. In order to grasp abstract concepts, children have to experience how they work. When children actively play around with code, they are bound to make mistakes. In the process of figuring out what they did wrong, they will start understanding how to do it in a more efficient way. Children can even check each others’ programs and explain to their peers what can be improved in their code. Through peer review and collaboration, children have an opportunity to solve problems together — much like development teams do in the real world.

The best way to learn programming concepts is by making mistakes and figuring out what went wrong.

kids and computers

Children learning to code with Bomberbot in class

For kids to understand the logic of computer programming, explanations from the teacher can help flesh out their general understanding of the concept. However, it’s not enough to receive direct instruction alone. We have to create an environment for children that encourages them to make mistakes and can offer some hints on what went wrong while allowing the final discovery to be made by the child. This environment can’t be created with a textbook or a teacher alone. We can best teach our children about coding by moving away from the books and diving into interactive gameplay.

Popular Coding Platforms

Scratch is one of the biggest platforms used for coding for kids. Children can play around freely with a block-based coding language. Within Scratch, children have unlimited options to create what they want! A possible downside is that the platform doesn’t offer structured curriculum for children and teachers, but teachers can share resources in the Scratch online community.

Bomberbot is a digital learning platform that lets children practice programming concepts by using a visual, block-based programming language to solve puzzles in a game. The platform provides teachers with ready to use lesson plans and classroom resources to explain programming concepts without any previous computer science knowledge. Furthermore, the game contains over 300 problem solving levels, which allows children to make mistakes and continuously improve on their solutions.

Codecademy is an interactive platform that allows adults to learn a variety of programming languages using a step-by-step, gamified method. After reading a short explanation, the student can type in the code in the interface and immediately get feedback to move onto the next task. However, the explanations on the platform may be lacking for someone who doesn’t have any foundations on programming concepts, and may leave a user merely copying and pasting, rather than learning fundamental concepts.

In short, there are some great online platforms to teach coding! Scratch is good for kids who want to play around freely to create new programs, Bomberbot works best for teachers who want to teach coding more formally in the classroom, and Codecademy is great for adults learning to code for the first time.