Introduction

Coding with children is a topic close to my heart. This has four main reasons:

  1. I did not have any coding opportunities growing up. My family had nothing to do with coding, neither did my friends. Also, we did not have computer science or coding classes at school. I would very much like this to be different for other children, including my own.
  2. I love learning and teaching! You might have seen that from my GitHub projects or my voluntary work at the German initiative “KI macht Schule” where we teach AI to kids in German schools.
  3. I have always been fascinated by how the brain works. That’s why I studied cognitive science in my undergraduate degree. The human brain is at the center of all our cognitive abilities, including learning. Therefore, we must understand how it functions and develops to understand how to improve learning and how to teach coding to children.
  4. I love kids! I have spend a lot of time with children: after school working as an Au-Pair in London, professionally working at kids events and KI macht Schule and at home with my own children.

If you are a parent yourself, an expecting parent, a grandparent, godparent, teacher or just a friend of children, this blog post will leave you with enough knowledge to understand when and how to start coding with children. I hope you enjoy learning about this as much as I did!

Images in this post

All images in this post containing children were generated using Open AI’s Dall-e 3.

Motivation

Learning to program is not just about learning a skill for a job. It’s more about being enabled to create anything you can imagine: stories, art, animation, music, websites, and more. Coding allows us to create things that we like and even have fun doing it! Of course, there are also obvious advantages like improved career opportunities. Coders are constantly in high demand, and a coder can earn a high income compared to their peers. In addition, children acquire valuable skills while learning to code. We will take a look at a few of these skills as examples.

Logical thinking

Coding helps children develop logical thinking skills by breaking down complex problems into smaller, more manageable parts. They not only learn how to solve a problem, but they will be able to explain how and why they solved it that way. This skill is essential in everyday life as it helps us make structured decisions and solve problems in a more efficient way.

Problem-solving

While kids are writing code, they are forced to solve errors that come up with their program (what we call debugging). So they develop problem-solving skills by understanding how to analyze, debug and troubleshoot code. These skills can be applied to everyday life situations and are invaluable in any career.

Creativity

Coding helps children develop their creativity by allowing them to express themselves through code. It encourages them to think outside the box and come up with unique solutions to problems. In other words: it creates room for innovation.

Perseverance

We all know that coding is challenging. Not every solution is simple or straightforward. Perseverance is the ability to keep moving towards an end goal, even when the path is difficult. With the right encouragement, children will learn to try again when they fail. As a parent/tutor/friend/… make sure to celebrate both their wins and their failures. Specifically, praise their effort independent of the result! An example would be something like: “Wow, you tried really hard to solve this problem and did not give up. That’s fantastic!”

Should all children learn how to code?

In my opinion: Yes, but not for the sake of becoming future computer programmers. We really don’t know programming will look like in the future. It’s changing rapidly at the moment with new GenAI tools popping up every week. However, what we do know with a reasonable amount of certainty is that computational thinking (which is gained through learning how to code) will remain relevant and in demand.

Brain development

As mentioned in the beginning, the brain sits at the center of all our cognitive abilities, including learning. Therefore, to understand what cognitive abilities children have at different ages, we need to understand how their brain develops. Don’t worry: this is not going to be a neuroscience lecture. We will only look at the very basics of brain development and how they are related to the topic of coding with children.

The brain

In case you didn’t know: The brain is the most complex part of the human body. It controls thought, memory, emotion, and much more. The brain can be divided into sections that specialize in different functions. However, regions of the brain interact a lot. When performing a task, it’s usually a whole network of brain regions functioning together as a whole. For our topic, it’s important to understand that different parts of the brain (and hence different functions) mature at different ages.

Neuroplasticity

When talking about brain development one of the key terms is neuroplasticity. While in some species brains are mature at birth, the human brain matures over many years. In other words: brain development is a life-long process! This means that as the brain develops, it can be influenced by our interactions with the environment. During the early years when the brain is growing most rapidly, it shows a lot more plasticity than during later years. This is especially true up to ages 3–4, where the brain is more reactive to environmental influences than in later development. Consequently, this time lays the foundation for the rest of our lives! We, as parents/teachers/caregivers/… can support optimal brain development through positive influences such as responsive caregiving, appropriate stimulation, diverse learning experiences, etc.

Brain development at birth

When a child is born, the brain already has about 100 billion neurons and an average of 2,500 synaptic connections per neuron. Isn’t that amazing? (Side note: synapses are the connections between neurons. They are the pathway along which neurons pass on signals).

At birth, the brain reaches 25% of adult size. Newborns have basic reflexes for survival, e.g. rooting, sucking, startle, grasp. However, they don’t show any directed actions yet.

Brain development 0-4 years

The brain develops “from the bottom up”. The “primitive” areas of the brain like the brainstem already develop during gestation and in the early months after birth. Also motor reflexes and sensory abilities, including hearing and vision, are fairly well developed at birth and undergo rapid maturation during the first 6 months of life. The limbic system, which is associated with the emotional processing and emotional regulation, and the cortical areas, associated with cognitive and executive functions, develop over the first 3 years.

Other areas mature over much longer periods. For example, synapses in the neocortex, which controls higher cognitive functions, develop throughout the years of middle childhood and do not attain their final organization until late adolescence.

By the age of 4, the brain grows to 80% of adult size. Until this age, children are not capable of learning how to code or understand computational principles.

Sources

Brain structure:

Brain development:

When and how to start

Overview

Starting at the age of four, children have sufficient cognitive abilities to start coding. Of course, each child develops differently. Make sure to observe your child to understand how his or her skills are developing and when they might be ready to start coding.

In the overview below we can see that coding can basically be split into four different parts:

  • At an early age, starting around 4 years we can get started with basic algorithmic thinking and child-friendly robots
  • Starting with about 6 years of age, visual programming tools can be used
  • After reaching the age of 9, children can get started with textual programming

We will look at each age range individually to learn more about the cognitive abilities that have developed at the time.

Age 4

With about four years of age, we can teach basic algorithmic thinking without any coding whatsoever. You probably know that an algorithm is just a set of rules that describes how to solve a problem or how to perform a task. This principle can be taught with basic questions like “Which steps would you follow to guide a lost puppy home?”. Exercises like this help children understand step-by-step thinking. They will learn how algorithms function in breaking down tasks into smaller, manageable parts. This enhances their ability to think sequentially and logically.

Further, by the age of about four, a child is likely to have the motor skills and perceptual abilities to begin interacting with simple toys that introduce the very basics of coding. These child-friendly robots are a good tool to get started. Bee-Bot and Cubelets are both excellent examples of child-friendly toy robots that can be programmed. We will take a more detailed look at them in a later section.

Age 6

As your child gets older and reaches the age of six they become more used to using technology and their eye-hand coordination improves. Also, the prefrontal cortex undergoes a big growth spurt between 5 and 8, which results in vast improvements in working memory, planning, selective attention and inhibition. These are all important skills for coding. So six years is a good age to try out tools for visual programming.

Age 9+

At around the age of nine or ten, children’s language abilities are well developed. Also, typing skills are often sufficient for them to start using text-based languages. At this age the prefrontal cortex matures and stabilized. This means that a child’s executive functions, such as planning, organizing, and thinking abstractly, become more fully developed.

Platforms, tutorials, etc.

Hopefully, you now have a good idea of what your child can do different ages. Next, I would like to present some concrete tools to get started with coding. A ton of possibilities exist, so this won’t be an exhaustive list. Instead, I selected some options that will be presented in more detail and listed further resources at the end.

Robots and devices

Bee-Bot

The bee-bot is a programmable floor robot designed for children ages 4-7. It costs about 93€ per robot. It can be programmed to move into different directions by pressing the buttons on top of the robot. A bee-bot can remember up to 200 commands!

The video below gives a short demonstration:

Cubelets

Cubelets are small blocks that can be used to introduce physical computing to children. Children can snap together different types of blocks to create their own unique robots. These robots will perform actions such as moving or lighting up, depending on their surroundings, such as the distance your hand is from the robot. A nice thing on top: cubelets can be programmed using MakeCode, a visual programming language, when a child grows older. A disadvantage of cubelets is their cost: a single block costs around 50€.

Short demo video:

Micro:bit

The micro:bit is a small programmable device with an LED display, buttons, and sensors. It can be used to create games, animations, interactive projects, and lots more. It’s recommended for children age 8+ years because it involves visual programming using MakeCode. Compared to other devices it is cheap, with the starter bundle costing only 20€.

Zumi

Zumi is a tiny buildable self-driving car kit. It’s recommended for ages 10+ years and can be programmed using Python and Blockly. It’s quite costly with 170€ per robot but a lot of fun for children. We have used these robots at several kids events here at inovex.

Raspberry Pi

A Raspberry Pi is a very small and cheap (86€ for a Raspberry Pi 5) computer that runs Linux. It also provides a set of GPIO (general purpose input/output) pins, allowing you to control electronic components for physical computing and explore the Internet of Things (IoT). It can be used to learn programming skills, build hardware projects and do home automation. Because it requires actual coding, it’s recommended for children that are at least 11 years old.

Others

Visual programming

Visual programming uses puzzle-pieces (or blocks) to represent code concepts like variables, logical expressions, loops, and more. It lets users program without having to worry about syntax or the intimidation of the command line. Several visual programming languages exist. We will look at a few of them below.

Scratch Junior

Scratch Junior is a simplified version of Scratch. It’s a free app (Android, iOS) recommended for children aged 5-7 years. It contains simple drag-and-drop blocks for creating basic programs, but no textual elements.

Scratch

Scratch is a free, web-based visual coding interface developed by the Scratch foundation and the MIT. It allows kids to create digital stories, games and animations and contains a lot of possibilities to bring projects to live, including graphics, sounds and music. It’s available in more than 70 languages and does not require an internet connection.

Although it’s primarily meant for kids aged 8 to 16 years, I know adults that still use it for some of their projects. This demo video might give you a better idea of how Scratch looks like.

Blockly

Blockly is a free web library that lets you add block-based code editor to your app. It’s the basis of many other block-based languages (e.g. Scratch, MakeCode).

The Blockly editor can represent JavaScript, Python, PHP, Lua or Dart as interlocking blocks and can export the text form of the code. Compared to Scratch, it’s more low-level with increased flexibility for creating customized blocks and integrating with other programming languages. It’s recommended for children that are at least 10 years old.

Code Club World

Code Club World is a platform created by the Raspberry Pi Foundation. It allows kids to design their own avatar, make it dance, and play music. It guides children through learning Scratch, moving on to Python in later lessons. Coherent with the recommendation of the Scratch foundation, children can get started with Code Club World when they reach the age of 8 years.

More visual programming offers

  • Blockly lessons: Blockly games, Codecademy, Code.org, etc.
  • Pencil Code: A programming site and code editor that uses visual programming to draw art, make games and play music.
  • Alice: From Carnegie Mellon University, free visual programming software with a library of lessons, exercises, projects, etc.
  • Edu blocks: Free tool by Anaconda, helps to learn text-based languages like Python or HTML using a drag-and-drop blocks system

Textual programming

Code Combat

With Code Combat students learn real Python, JavaScript, CoffeeScript, C++, Java or Lua by playing a game from beginning to end. Code combat is available in 190 countries and offers different subscription plans. For example, self-paced (~90€ per year) or guided learning (~200€ per month) with teacher lessons (once, twice a week dependent on subscription plan).

Officially, Code Combat can be used when reaching the age of 7 years. Personally, I find this a little too early to get started with text-based coding.

Hedy

Hedy is a gradual programming language. What does this mean? Learning a programming language can be overwhelming, since learners have to learn concepts (for example if-else or loops) and syntax (like quotation marks or round brackets) at the same time. In Hedy, concepts are first introduced with little syntax and then refined. So each level adds new concepts and syntactic complexity. This mimics the way in which we learn a language.

At the end of the Hedy level sequence, kids master a subset of syntactically valid Python. Hedy is recommended for age 10+ years.

Traditional programming languages

If you’re looking for more traditional programming languages for your child you can best do that with 12 years of age and beyond. Recommended are Python and languages that the World Wide Web is built on, particularly HTML, CSS, and JavaScript. Many options are available. For example:

Note that trying Python or another textual programming language does not mean you can’t go back to tools like Scratch or switch between them for different purposes.

Online and on-site classes

  • Tynker: Full platform with visual and text-based coding classes, age 6+ years
  • CodeWizard: Online coding classes (Scratch, Python, etc.) for kids and teens ages 8-18
  • Code.org: Free courses, projects and teaching materials to learn and teach coding
  • Hacker school: Online and on-site classes for children aged 11-18 years. No prior knowledge needed.
  • IT4kids: Coding classes for schools, grades 3-6

More ideas to start coding

Screen-free offers

  • Robot turtles: Programming board game, for kids ages 3-8 years
  • Turing tumble: Game where you use ramps, bits, gears and other parts to create mechanical computers that solve logic puzzles

Other offers

How children learn

In the past years I have researched and learned a lot about how humans learn. Some of these principles also apply to children so I would like to share some of the main points.

Learning set-up

  • No matter at what age you introduce children to coding, one key element is empowering them to create things that are relevant to them. They should be allowed to follow their own interests. Above all else, coding should be a fun activity for kids! Therefore, it’s important to make learning entertaining.
  • Children benefit from having a variety of learning experiences. For example, you can use real life situations to explain concepts like loops, etc.
  • Don’t be afraid to switch tracks if your child is not enjoying their work! It can take a while to find the right path for you and your kid. Take your time and don’t be afraid to make changes.

Learning sessions

  • To improve learning outcomes it can be helpful to use spaced learning. This means that we distribute learning sessions over time. A single, long lesson is usually less effective than multiple, shorter lessons. Having multiple (shorter) sessions helps to transfer knowledge to our long-term memory. Also, it prevents cognitive fatigue.
  • In addition to spaced learning, encourage active recall testing. For example, ask questions to encourage your child to actively retrieve learned information!
  • How long should a session be? There is no “one size fits all” answer to this question. We know that attention spans increase with age. Make sure to observe if your child is still focused and enthusiastic about continuing the session.

Supporting children in their learning

  • Be patient! For example, use words of encouragement to keep a child going if they’re struggling.
  • This goes hand in hand with encouraging your child to try new things. Keep praising your child for trying new things, not only for succeeding!
  • Learn together with your kids! You could make learning a family activity and sit down yourself to improve your coding skills. Another idea is to let your child be the expert sometimes, explaining concepts to you instead of the other way around.
  • Show an interest in what your child is doing and learning. Engage with the child to learn more about the project they are working on.

Conclusion

I hope this blog post leaves you with enough knowledge about when and how to start coding with children. In case you can recommend resources that aren’t listed yet or have thoughts on this topic you are welcome to send me an e-mail. Happy coding!