When and how to start coding with kids
Being able to code is becoming a more valuable skill every day. Besides the obvious advantages of being able to code (e.g. better career opportunities), coding teaches important skills like logical reasoning, attention to detail and creativity. But what is the best time to start coding? Are kids even able to learn how to code? And at what age?
In this talk I would like to approach these questions from a scientific perspective, discussing the biological backgrounds and giving concrete advice on when and how to start coding with kids.
This session took place in track Community, Diversity, Career, Life and everything else and was classified suitable for novice python by the speaker.
Transcript (auto)
Auto-generated from the recording utilizing Open-Source AI. Speaker labels (Speaker 1, Speaker 2) reflect diarization, not identity. Timestamps refer to the recording.
Speaker 1 [00:05]
Yeah, hi everyone. I'm really excited to be here today and this talk is on when and how to start coding with kids. So no matter if you're a parent, maybe going to be a parent, grandparent, godparent, friend of a family, whatever, I hope that this presentation will leave you with enough knowledge to understand when and how to get started coding with kids. A side note, I have a cold, so I might be drinking a lot of water during this presentation not to lose my voice, so bear with me. Before we start, a few words about myself. I work as a machine learning engineer at a German company called Innovex, and we have a lot of Python enthusiasts there, so a lot of people from Innovex at this conference. So if you want to learn more, come and talk to me or one of my colleagues. I enjoy working on personal projects and usually share those with the community either on GitHub or my personal web page. Two examples, they are mostly educational or tutorial based projects. One is machine learning basics which teaches fundamental machine learning algorithms in plain Python. So really based or focused on understanding the algorithms rather than writing the best performant algorithms. And the other one is a magical universe based on originally it was based on Harry Potter figures, but I had to change that due to violation of, how do you call that, infringement of copyright issues. Anyway, most important, why am I interested in this topic? First reason is that I have had no coding opportunities as a child myself, so my parents had nothing to do with coding, neither did my friends, I had no coding classes at school, and I stumbled across it really late in my undergraduate degree when I had an introductory course to machine learning and got really hooked with algorithms that can learn from data. And then I switched to a graduate degree in computer science, but it was quite late. And I would like this to be different for my own children and also for other children that are around. Then I love learning and teaching. I've been a part of a volunteering initiative in Germany called KI macht Schule, which roughly translates into AI goes to school here in Germany, where we teach AI in German schools. I've always been fascinated by how the brain works. I studied cognitive science in my undergraduate degree, and the brain is at the core of all of our learning and cognitive abilities. So we will talk about the brain and its development in this presentation as well. And I love kids. This is actually the only image you will see with a real child in it. It's my son when he was quite young and it was one of the rare occasions where he fell asleep again in the morning and I could get some coding work done. That was really nice. Okay, overview for this presentation. We will do a motivation first and then we will look into brain development and then specifically into when and how to start at specific age ranges and I will present some specific devices, languages, platforms to get started at the different age ranges. And before a more extensive Q&A session, I will give you some more tips and tricks on how children learn and how you can support them in their learning. First of all, the motivation. So why should children learn how to code? Learning to program isn't about learning a skill for a job. It's rather that with coding you can create anything that you can imagine. You can create stories, art, animation, websites, and lots more. So it enables you to create things that you like and even have fun doing it. Of course, there are also obvious advantages like improved career opportunities and lots of skills that children acquire when they learn how to code. Oh yeah, by the way, all the images were created with DALL-E 3. and we will look into a few skills as an example first up is logical thinking and coding helps children to develop logical thinking skills by learning how to break a big complex problem into smaller more manageable parts and in the end they are not only able to solve the problem but hopefully also to explain why they solved it in that way this skill is essential in everyday life because it makes or helps us make structured decisions and solve problems in a more efficient way. Then there's problem solving. While kids write their code, they are forced to solve errors that come up with their programming, which we call debugging. So developing problem-solving skills is done by understanding or by having to analyze your code, troubleshoot, and debug it. And also this can be applied to everyday life situations and is invaluable in any career. Then there's creativity. I mentioned this already. So coding helps children develop their creativity by allowing them to express themselves through code. And they are encouraged to think outside the box and come up with unique solutions to their problems. So in other words, it creates room for innovation. And last, I chose perseverance. I think this is one of the most valuable skills regarding learning. I love this image. It was so much fun to create these images. Anyway, so we all know that coding is challenging and that not every solution to the problem is simple or straightforward. And perseverance is the ability to keep moving towards your goal even if the path is difficult. And with the right encouragement, children will learn to try again when they fail. So as a parent or tutor, ensure that you celebrate both their wins and their failures so you can make them stronger. And specifically, it has been proven effective to praise their effort independent of the result. So something like, wow, you tried really hard to solve this problem and did not give up. That's fantastic. Rather than saying your solution is great or you're so clever. Yeah. And of course, this is not an exhaustive list. There's lots of other skills that are learned. Is coding for everyone? Should all children learn how to code? I would say yes, but not for the sake of becoming future programmers, especially because we don't know how programming is going to look like in the future. It's changing rapidly at the moment, but what we do know with a reasonable amount of certainty is that the computational thinking skills that children acquire when they learn how to code will remain relevant and in high demand. okay let's go on to the brain or the brain development so i mentioned already that the brain is really at the core of all of what we're doing especially learning and cognitive abilities there's not going to be a neuroscience lecture don't worry but i want to talk about the most important fundamentals because if you want to understand when a child can learn how to code or do certain certain coding things you have to understand how for their perceptual or cognitive abilities are developed at that age so a very short introduction if you didn't know the brain is the most complex part of our body it is like this amazing supercomputer that controls our bodily functions our thoughts our emotions and lots of other things and you can divide it into different parts and sections and regions and those specialize in different functions but it's usually the case that when you do something or perceive something, whatever, that it's a combination of brain areas that interact with each other and function as a whole. When talking about the brain, an important term is neuroplasticity. While in some species, brains are mature at birth, this is not the case for the human brain. It matures over many, many years. This means that as the brain develops, it can be influenced by our interactions with the environment. And this is especially true for the early years, where the brain is growing most rapidly. So here it has an increased plasticity compared to later years. Especially up to the ages of three to four years, the brain is most reactive to environmental influences than in later development, both positive and negative. So you, as a parent or friend, whatever, have a huge influence on the brain development of a child. especially if you provide things like responsive caregiving, appropriate stimulation, diverse learning experiences you lay the foundation for how they are going to develop in the future and this is I think really really important to know let's go through the different age ranges I try to create these images to look somewhat similar to me as a child so we can follow the journey of Annalena in an alternative universe but of course you can plug in any other child here. Brain development at birth when we are born our brain has around 100 billion neurons already and an average of 2,500 synaptic connections per neuron. Synapses are the connections between neurons so they are the pathways by which they pass on signals and this is just 25% of adult size I think it's completely mind-blowing that the brain has already so many neurons and connections even though it's so small and yeah when children are born they have only basic reflexes for survival like rooting sucking and grasping but no directed interactions and yeah this is way too young to start coding. This also holds for the first four years. So in this time, the brain develops from the bottom up. Then primitive brain areas like the brainstem are already developed during gestation and in the early months after birth. Then there are motor reflexes and sensory abilities like hearing and vision. Those are also fairly developed at birth and undergo rapid maturation during the first six months of life. And then there is the limbic system, which is associated with emotional processing and emotional regulation, and the cortical areas associated with cognitive and executive functions that develop over the first three years. And then we have other areas that mature over much longer periods, like synapses in the neocortex, which controls higher order functions. They develop throughout the years of middle childhood and do not attain their final organization until late adolescence. So by the age of four, the brain grows to about 80% of adult size. But usually the perceptual abilities of children and the cognitive abilities are not there yet to get started with coding. But this changes when they reach the age of four. Oh yeah, all the sources that I used for these brain effects and so on are listed here in the end if you're curious. Okay, so let's look into when and how to start when your child reads a certain age. Here's a little timeline. We will look into each of these categories. So first of all, around the age of four, you can get started with algorithmic thinking and child-friendly robots. The next stage would happen around six with visual programming and then ages nine to ten with texture programming. And the slides, by the way, are also on the website. So if you go to the talk page in the schedule, then you will find the slides if you want to follow along or look at them later. Let's start with age 4 to 6. So at this age, we can start teaching basic algorithmic thinking without any coding whatsoever. So we know that an algorithm is just a set of rules that describes how to solve a problem or how to perform a task. And you can use this in your everyday life. Like you can ask questions, what steps would you follow to guide a lost puppy home? What steps do we need to follow to bake your favorite cookies? Whatever. You can teach children the step-by-step thinking and how to break down a task into smaller and more manageable parts. And this will help them 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 to interact with simple toys that introduce the very basics of coding. And these child-friendly robots are a good place to start with coding. And we will look at specific examples later. Here you see one, which is the BeeBot. It's a programmable floor robot. As your child gets older and reaches the age of six, they become more used to using technology and also their hand-eye coordination improves. Also, the prefrontal cortex, which is like the CEO of our brain, undergoes a big growth spurt between five and eight years of age, which results in vast improvements in working memory, planning, selective attention, and inhibition. So, all very valuable skills to learn about coding. So, six years is a good age to try out tools for visual programming. Also, here we will look into specific examples like Scratch Junior, Scratch or Blockly. And then at around the ages of 9 or 10, children's language abilities are well developed and also their typing skills are often sufficient for them to start using text-based languages. Also at this age, the prefrontal cortex matures and stabilizes, which means that a child's executive functions like planning, organizing and thinking abstractly become more fully developed. Now, I hope you have a good idea now of the different age ranges and when to start with what, but now I want to show you some specific examples. There are tons of resources out there, so this is just a few examples. If you start looking, and I list much more resources at the end of these slides, yeah, you will be surprised. Let's, or maybe a note at the beginning, Of course, every child develops differently. So you are the expert of your child. Just make sure to observe them and understand where they are at in their development. And this is just suggestions, of course. Let's start with child-friendly robots, which you can get started with at the age of four already. You see the BeBot on the left. I have a short demo on the next slide. It has four buttons. it can go to the front, to the back, left and right and you have the go button in the middle it's about this size and children can program a pathway along which the b-bot should walk or crawl or however you call it and I think it can remember up to 14 steps but I'm not sure and on the right side you see cubelets which introduce physical computing to children so they can snap together these different physical blocks to build their own unique robots. And these robots can perform actions like moving or lighting up, depending on their surrounding, like depending on how close your hand is to a sensor, for example. And what's nice about cupelets is that they can also be programmed later on if your child grows older using MakeCode, which is one of the visual programming languages. And I always listed the prices as well, because it varies a lot how expensive these things are. This is a demo which was working when I tested it just before this session. Let's see. Yeah, okay, it's working now as well. Let's wait a second, then you can see it from the beginning where it's programmed. So it's very simple. Of course, they also sell additional things like rugs with certain pathways images on them, but I think this bbot is really cute. And this is a demo of cubelets and what they can do. Yeah, you will find lots of videos on the web. Next example is the the microbit. It's not a robot. It's rather a device. It's a small programmable device with an LED display, buttons, and sensors. It can be used to create games, animations, interactive projects, and much more. It is recommended for the ages eight plus years, and it can also be programmed using MakoCode, the visual programming language that was developed by Microsoft. Then there's Zoomy, which is a tiny, buildable, self-driving car kit. It's for a bit older children starting at the age of 10 and it can be programmed using Python and Blockly. It is quite expensive but it's a lot of fun. We have done several workshops at Innovex with Sumi and children and they have lots of fun doing it and it has AI components as well that you decide on how to train it on certain data sets and what it learns. It's really a very powerful robot. And last but not least, the Raspberry Pi. I know this is not a robot, this is a device so it's basically a very cheap computer that runs Linux but also provides a set of general purpose input output pins allowing you to control electronic components for physical computing and explore the internet of things so you can use it to learn programming skills but also build hardware projects and do home automation but it's for older children so at least 11 years old is recommended to get started with Raspberry Pi and going on to visual programming languages maybe it's a short introduction introduction if you don't know how they work so in a visual programming language the editor has puzzle pieces or blocks of code you do not write any text-based code yourself but these blocks represent concepts like variables loops and you snap them together so you do not have to worry about the syntax of coding or using the command line. One example that is for really young children is Scratch Junior. It's a simplified version of Scratch, one of the most popular visual programming languages. It's a free app that runs on Android and iOS. It's for five to seven years so really very early. You can see the image well enough. It has these drag and drop blocks. You can create simple programs and it's very simple blocks, very simple commands and actions that the figures can perform. Then there is Scratch, which is a web-based free visual interface. It's from age to 16 years, but I know adults that use it as well, so I wouldn't end with 16 years. And it comes with an assortment of graphics and sounds to really bring projects to life, and children can also share their projects with friends. It is a very big community and available in lots of languages. And, yeah, you can see an example down there as well. We will not look at demos for all these. But I tried to link some. Then next up is Blockly. It's also free. It was developed by Google. Oh, yeah. Scratch was developed by the MIT and the Scratch Foundation. And Blockly is actually the basis of many of the other block-based languages. Like it's at the basis of Scratch and also MakeCode. And it's a bit more low level. You can create custom blocks, for example, and that's why they recommend it for children starting at 10 years. What is nice is that when you use the editor, that you do not only have the blocks that you see there, but on the right side you really see the text-based code, and it's the functioning text version of your code, and they have different languages like JavaScript, Python, PHP, Lua, or Dart, and you can copy and paste this code somewhere else later on if you want to. And these are now three examples of visual programming languages and then textual programming languages and there are a lot of different offers here and I'm trying to present to you a bit of a range of different options. One is Code Combat, which is game-based learning. So students learn real Python, JavaScript or any of the other languages that are listed here, some of which are experimental, by playing a game from beginning to end. And Code Combat is available in lots of countries, I think about 190, and it's not free, so you have a subscription plan, and then you can use self-paced learning or guided learning with actual teacher lessons once or twice a week, whatever subscription you have. But if your child is into gaming, then this is a great way to get started. They say that you can start it as early as seven years. I think this is a bit too young because it's really text-based coding. You do not have to write it yourself in the beginning, but the editor is text-based. But apparently, for some kids, it works. I guess you just have to try and see if it works for your child as well. Completely different approach is Heady. Heady is a gradual programming language. So it is based on the idea that learning programming is or can be overwhelming especially because learners have to learn concepts like loops and the syntax at the same time. In Heady concepts are first introduced with little syntax and then refined so at each level new concepts and syntactic complexities added and this mimics the way in which we learn a language so for example if you learn how to print something in the beginning in Heady you would just print in the text you wouldn't worry about the quotation marks or the brackets around it in Python but this would be added later and in the end kids learn a subset of syntactically valid Python and it's also free and web-based and recommended at the age of 10 plus years. And if you're looking for more traditional programming languages for your child to progress on to you can best do that with 12 years of age and beyond. Recommended are of course Python because it's a really nice language and very easy to get started with and languages that the world wide web is built on like HTML, CSS and JavaScript where kids can build nice projects quite easily. And there are lots of options available like the Raspberry Pi Foundation has Python and web development courses for children. There are Udemy courses and lots of other options and if just one note, I think I mentioned that already, that if you move from visual programming to textual programming, that doesn't mean that you cannot go back. I know people that still use Scratch for creating interactive projects. It's more like finding the right tool for what you want to do. And of course you can also learn about these things in online and on-site classes. There are lots of platforms here. This is also just a collection. There's Tinka, similar as Code Wizard and Code.org. although Code.org is nice because it is free and it also has teaching materials if you want to teach at a school or a course for children. And I added two German offers. One is the Hacker School, which offers online and on-site classes on lots of different topics like web development, gaming, and other things, and you do not need any prior knowledge. And it starts at age 11. And there is IT for Kids, which is an initiative that teaches or brings coding to German schools, which is something that I would have needed as a child, and they start really early, like grade three. So if you want to bring coding to your German school, then these people would be the right ones to talk to. And some more ideas. It's always a good idea to check out local events like Girls' Day, Deaf Ops for Kids, Code Week. There are lots of other things that are happening if you start looking. And there are also usually offers at local universities for children that are free and workshops at companies. I mentioned already that at InnoVEX we also do workshops with children. And if your child enjoys coding with their friends or doing something with their friends rather than on their own, then there are coding clubs like Coda Dojo and Code Club. And yeah, this is now just lots of other resources that you can take a look at. And this is still not an exhaustive list. Now, before we go on to Q&A, because I want to leave more room for Q&A for this topic, I think it's quite important to discuss questions about how children learn. I took a lot of time in my graduate degree to learn about learning and the best ways to learn, and most of these principles apply to children as well. So first of all, regarding the setup. No matter at what age you introduce children to coding, one key element is to empower them to create things that are relevant to them, so they should be allowed to follow their own interest, because above all, coding should be a fun activity for kids. If they are forced into doing it, they will not learn to love it, and will not develop a love for learning itself. offer a variety of learning experiences that something children benefit from. For example you can use real life situations to create or to explain concepts like loops like while we preheat the oven we can do X and don't be afraid to switch tracks if your child is not enjoying their work. So this is usually an iterative process to find what works best for you and I think communication with a child is the most important bit especially when they get older you can just talk to them and ask them is this fun like are you enjoying it should we try something else and um yeah don't be um afraid to do it then regarding learning sessions um first of all one of the main principles is spaced learning so distribute learning sessions over time a single long session is usually less effective than multiple shorter ones. Also, having multiple shorter sessions helps to transfer knowledge to our long-term memory and helps prevent cognitive fatigue. Then, next big, oh yeah, sorry, I just mentioned that. Next big one is active recall testing. That means that you can ask questions to encourage your child to retrieve learned information, like, what did you learn today? Or, can you explain to me what a loop is? Or, like, really that they do not just learn passively, but that they actively have to recall information. And regarding the question how long learning sessions should be for children, there is no one-size-fits-all answer. We know that attention spans increase with age, and so it's important to observe your child and see if they are still focused and enthusiastic about continuing a learning session. And then how you can offer support while they are learning. First of all, be patient. So use words of encouragement to keep them going if they are struggling. This goes hand in hand with encouraging your child to try new things. So keep praising them for trying new things. This also is related to what I said earlier. Praise their effort. If they work hard to do something, it doesn't matter if they succeed in the end. It's more about understanding that challenges are fun and bring you forward and that they don't balk at challenges. Then, learn together with your children. So, sit down and improve your coding skills as well or do something else. Try to engage with the learning process. Ask them questions about their projects. Let them be the experts sometimes and explain something to you. So, really try to engage with them. Oh, yeah. Sorry. This is it already. I tried to keep it short here because there are lots of things that you can share about learning but these are the most important points and then regarding Q&A I was asked lots of questions beforehand and three of them were asked repeatedly so I will answer them right now already first of all should children get started in the native language I would say yes if possible because having access to projects in our native languages helps foster our confidence and independence and as a result we become more engaged with the learning process and of course if you start in your native language then you do not have to learn two things at the same time. You can focus really on learning coding and not the language and luckily lots of offers are available in many many languages and I think with large language models now this will only increase rapidly in the future. Then, what if my child doesn't like coding? I think I gave a few hints already. First of all, don't force anything. Try to find an approach that works for your child. Maybe game-based learning is the right thing, or they need a guided course, or you learn together with them, they learn together with their friends. Try out what works for you. If that doesn't work, maybe try again at a later stage children have different passions or interests at different ages and still in the end not all kids have to learn or like coding of course, so if your child absolutely hates it, that's fine as well there are lots of other ways to learn about these principles but from my experience also with working with children for such a long time with KI Mach Schule, this German initiative, usually you can find something that interests them if you take the time and invest some of your own time and show interest. And last question, what about children with learning disabilities? I tried to find a web page that has a nice overview of different learning disabilities and how to approach coding. And regrettably, no such page exists, but there are resources for different learning disabilities. For example, there are tools like Microsoft Code Jumper, which introduces blind and low vision kids to programming and there are also offers for learning disabilities like ADHD and yeah, others. But you will have to do the research yourself, I'm afraid. That's it from my side. Thank you so much for listening and now I'm curious to hear your questions.
Speaker 2 [31:58]
Again, thank you for your talk, Annalena. I have here the question from the crowd. First question is, do you consider coding a good screen time?
Speaker 1 [32:09]
Yes, so I think screen time is a very different topic. I always favor not minimizing screen time, but maximizing other activities to keep children away from screens. But I think coding offers so many great opportunities to learn and learn different principles that I personally would consider it.
Speaker 2 [32:34]
You had talked about starting in the native language, but when would you start teaching English to your kids? Most visual and textual programs, languages are based in English.
Speaker 1 [32:47]
Yeah, so first of all, of course, they're based in English, but usually you will find them in your native language as well. Like Scratch is available in 70 languages, I think. So, yeah, 70 languages. And regarding, I would have to look that up. I'm not sure when to switch to English is the best because I think this also depends very much on which language you're starting with. So how different English is to your native language. how difficult it is for them to learn English if they already started doing it at school very early or if it really has to be your effort that they learn English. So I don't have a final answer for that I guess.
Speaker 2 [33:36]
Is there a board game that you would recommend?
Speaker 1 [33:40]
No. Also, I did not look into any of the hardware kits that exist for learning about and doing hardware projects because when I started researching this, I got overwhelmed by how many things there are. But if you know a good board game, let me know. I can update my resources.
Speaker 2 [34:01]
Do you think a kid may spend too much time learning to code regarding screen time?
Speaker 1 [34:09]
course, I think that you can spend too much time on your screen. I think it's very hard to find a good balance there. I do not have a solution. I would always say that it depends on the child and how much time they spend on what. But I remember, like, I didn't start coding as a child, but my brother started quite early. And it was amazing how he could focus on his projects and how many time he spent in front of the screen, but he got really hooked with what he was doing and focusing and creating something that he loved and he had lots of fun doing it. So then I don't see the point in stopping them and follow their passions and creativity only because it's in front of the screen.
Speaker 2 [34:57]
We just talked about board games. Are there any other technology-free ways to teach coding? Would it be really helpful for kids from rural areas or remote villages without any Internet access?
Speaker 1 [35:13]
That's also something I didn't look into.
Speaker 2 [35:17]
Have you experienced with music generation languages like Sonic Pi or TunePad? I think they could provide a very stimulating context for...
Speaker 1 [35:27]
older children yeah i agree absolutely they are also in the extended list of resources i just had to limit um what i was presenting at some point but yeah especially if your child likes music this is a great um yeah sonic pies in here and earth ear sketch for example as well so yeah music based um offers are also really nice way to get started
Speaker 2 [35:51]
Someone is asking, how did you do your slides? They look super lean and awesome.
Speaker 1 [35:57]
These slides are based actually on markdown files and with pendog and reveal.js
Speaker 2 [36:03]
At which age would you introduce kids to the main tools of the adult devs, like Google or ChatGPT?
Speaker 1 [36:17]
Like, I would have to think about that.
Speaker 2 [36:20]
Someone asked which gen AI model did you use for the pictures again?
Speaker 1 [36:25]
I used deli.
Speaker 2 [36:29]
What are the sources for the age recommendations?
Speaker 1 [36:33]
For the specific tools, it's the tool itself. So all the robots and so on, they have their own recommendations on when to start, like what the H you see here is always based on the tool. And here it is based on my research on what abilities they have at their age and then looking also at the tools and what they recommend. So, like my own conclusions from all the reading I did.
Speaker 2 [37:08]
We have some more time left. If you have any questions, just write them down at Slido so we can go through them. The next question is, what would be your argument against NVIDIA CEO's opinion about learning to code is something people should not spend time learning on?
Speaker 1 [37:25]
Who was saying that?
Speaker 2 [37:26]
The Nvidia CEO said learning to code is something people should not spend time learning. Okay.
Speaker 1 [37:35]
said that, maybe because it's changing so rapidly, the coding itself. But as I mentioned at the beginning, I think all the skills that you learn while you learn how to code are invaluable. So you do not have to write all the code yourself at some point. Like me as a developer, I'm also using tools that help me coding. And I still think it's useful to invest the time because there are so many other advantages rather than just with the goal of being a future programmer.
Speaker 2 [38:09]
Next question is, not all kids can sit still. Do you know of programming or coding exercises that involve movement activity?
Speaker 1 [38:22]
i know that i saw some um and this is also i think related a bit to this learning session topic um that if your child is a child that likes to move a lot my son is the very same um then it's always good really to use short learning sessions and try not to force them to sit down for too long and even if it feels weird in the beginning if it's short sessions it can still be very useful and then go on to longer sessions once their attention span increases and you can of course also talk about concepts and explore them with your child and yourself during movement or walking around whatever you do not have to do everything theoretically using a screen
Speaker 2 [39:11]
There are no questions left. Thank you very, very much for your talk, for having all our questions. Thanks to all of you for listening to this talk. If you want, please share your insights on all social media. Next one is coffee break, I think.