Are you a parent with an avid coder at home? Or looking to get your kids started on coding classes? Read on to find out all the wonderful things kids learn when they learn to code. Hint: it’s much, much more than just a programming language :)
In this post, we spell out what kids and teens actually learn when they learn to code.
So let's get started!
Imagine someone handed a group of kids a can opener and asked them to remove the contents of a tin can. If they had never seen a can opener before, or didn’t know how it functioned, they might use it like a hammer, or a pick axe, or ignore it completely and open the can using blunt force. They might get the contents out eventually, but they would not have harnessed the power or convenience of the can opener. Now imagine those same kids are given computers (or smart phones, tablets, laptops, micro-processors, etc.). If they didn’t know how computers work, they wouldn’t be able to use it to their full advantage beyond it being a source of entertainment. Now, that’s a scary thought!
This is why understanding how a computer works is the first step for any kid or teenager learning to code. Only by understanding the possibilities and limitations of the computer can kids and teens harness the power of code to solve problems that they care about.
A computer can do 4 basic things. Each of these basic functions correspond to 4 basic coding tools.
Think of each of these tools as making up a beginner coder’s toolbox, in the same way that a basic toolbox will have a hammer, screw driver, spanner and nails. Mastery of these 4 coding tools are all you need to make some pretty interesting, complex projects.
It is also important for kids to know that a computer can only execute instructions step-by-step in sequence. The order in which the instructions are given matters a lot. Two pieces of software with the same code but different order of execution can have drastically different results. It is through the use of some of the coding tools above (i.e. loops and conditionals) that young coders can control the flow of instructions, or the sequence in which they are executed. That’s why it’s called control flow.
Additionally, young coders will also learn that the entire discipline revolves around data, or information. That’s why it is often said that we are in the digital age. When the computer is remembering things, it is storing data, which can eventually be processed and analysed. Understanding how data is organised and manipulated by a computer is extremely important, we call this the study of data structures. In fact, it forms a cornerstone in the field of computer programming.
Most of the time, kids will tell us that a computer can do anything! Which is great for getting them excited about learning to control a “can-do-anything-machine”. But not so great when they’re trying to solve a problem.
Once they understand what a computer can and cannot do, the possibilities start to really open up.
When kids and teens learn to code, they invariably learn the science behind it (computer science), and the skills needed to apply it (computational thinking skills).
Of course, the scope and extent of their understanding may differ from beginner to beginner depending on the learning curriculum and course content. Ideally over time, with the right exposure, young coders will learn each of the computational tools that we will describe later on in this article so that they can understand a problem, break it down into component parts, and identify any patterns in the sub-problem so that a solution can be made with coding tools. Only then have they learnt to go beyond the mechanics of a programming language to pick up critical thinking and creative problem solving skills.
Before we talk about some examples of key computer science concepts, let’s start with some basic questions:
It is the theoretical and practical study of processes that handle data, or represent such data in the form of computer programs.
Students of computer science typically learn the following things:
This may sound like a lot of jargon so perhaps an easier approach may be to consider:
Computer scientists combine their understanding of how computers work with mathematics and logic (i.e. computation theory) and use that understanding to design and build solutions to problems (i.e. software systems).
Strictly speaking, no. Coding to computer science is like what cooking is to nutritional science. Knowing how to cook is just one step (usually the first step) towards understanding how to plan meals, increase dietary wellness, improve health through better nutrition, as well as the chemistry behind food and the preparation process.
Coding can also be seen as the first step in the discipline of computer science. It is a means of expression – a way of telling a computer what to do. This skill needs deep knowledge, a robust methodology and clarity of purpose. The required knowledge is a conceptual understanding of how computers work, how code works, and how data can be organised and used. The methodology is a computational approach to understanding the world around us. The clarity of purpose is knowing what problems you are trying to solve using computers.
Knowing how to code without the requisite knowledge, methodology or clarity of purpose is like knowing the vocabulary and rules of Parseltongue (to steal a Harry Potter reference) but not communicating with serpents. You have a skill but you do not apply it to express your ideas in a way that serpents understand. Alternatively, you could be a Parselmouth (someone who speaks Parseltongue) that likes trash talking with a snake. But that is quite different from getting it to do your bidding (for example getting a snake to be your final Horcrux so that you can have everlasting life). The intention must be clear in order for the skill to have meaning and purpose. Parseltongue is a skill and a way of thinking, the full benefits of which can only be experienced if you set a clear intention.
What does this mean for programmers? Once you learn Python programming (now, do you get the serpentine reference🐍?), you have a skill. But you also need a methodology (computational thinking) and an objective (solving a problem) for the skill to be relevant and meaningful.
So let’s go deeper into the methodology:
It is an approach to solving problems efficiently using computers, logic and math.
The approach includes the following computational thinking skills:
Together, each of these computational thinking skills, and coding tools form the foundation of computer science because they:
Therefore, any good coding education should cover these thoroughly to ensure that our kids have a good head start in their coding learning journey. The absence of conceptual understanding is tantamount to swinging a can opener blindly without knowing how to approach a problem, or worse, not knowing what problem you’re trying to solve.
(One more for the Harry Potter fans: this is like shouting in Parseltongue at a Basilisk that’s trying to eat you. Sure, it understands you, but that’s not going to save you from it.)
So the clarity of purpose, the objective of any programmer is to solve problems using computers and writing code – this is the essence of computer science.
For many beginner coders, this is probably the meat of what they learn. Whether it’s their second, third or fourth human or programming language – like any other language of expression, the magic is in being able to communicate an idea accurately and effectively.
A programming language is a language that a computer understands. You may have heard of some of them before – Python, Java, C++, JavaScript, Scratch, micro:bit – while others may sound unfamiliar.
Kids and teens who want to code must learn a programming language. The choice of a beginner programming language for kids and teens can be confusing but don’t worry, we’ve got this! In a nutshell, you want to choose a programming language that is age and developmentally appropriate, while giving the learner access to a domain that they are interested in, whether its animation, game design, data science or mobile apps. Read this to dig deeper into how to choose a beginner’s programming language for your kids.
When learning their first programming language, kids will start with the basic syntax and grammatical rules, including what each symbol, character and even spaces and indents mean to the human coder and to the computer. For younger kids learning a block-based language, they will learn what the colour, shape and placement of each block means.
This process can take anywhere from 2 hours to 20 hours depending on how deep into the syntax and grammar kids and teens wish to dive. For any young coder who is just starting out, it is important for them to be able to see and experience how following each syntactical rule will produce the intended results and outcome of each coding tool and computer science concept.
Only then can they bring their ideas to life!
For some kids, their creative juices fuel a passion for creating beautiful animations, for others, they aspire to create the most popular app on Google PlayStore, and for yet others, they want to channel their competitive nature toward coding competitions.
And this brings us to the final and most important point - what motivates kids and teens to learn how to code? Simply put, it is:
For most kids and teens, their curiosity is limitless and their ideas countless. They see and consume technology all around them, and they really want to create their own tech solution to any and every problem that excites them.
By learning to code, kids and teens can become creators of technology rather than mere consumers. They will create technology in whatever domain that excites them, for all users that matter to them, and for any problem that they care about.
In conclusion, when kids learn to code, what they really learn is a skill, a way of thinking, and the power to solve problems they care about. Over time, they will develop an intimate understanding of how computers work, start thinking more computationally, deepen their digital literacy as well as become more creative when solutioning.
If you’re interested to see what that looks like, check out these awesome coding projects by our very own primary school and our secondary school Code Campers!