# What is the point of teaching coding and robotics to kids as young as six years old?

Nowadays, kids as young as six years are being taught coding through various tools such as MIT's Scratch. I wonder what is the point of teaching coding at such a tender age. They will go for a job after 10-15 years, so what is the rationale of teaching coding (and in some schools robotics as well) now?

Is there a scientific study that supports the claim of a benefit of teaching coding at a young age?

• At that age, they're sponges. It'll give them problem solving skills early, plus the gratification of creating something that they can enjoy in a relatively short time. – Phil N DeBlanc Nov 29 '19 at 7:56
• I don't think there's much point. It's like trying to teach everyone to be a concert pianist or car mechanic at that age. But we have this 'everyone must be a coder' mindset at the minute, whereby what we really need is a 'everyone must be computer literate and know how to be safe online' mindset. – Alan B Nov 29 '19 at 12:27
• How is coding different from anything else that you teach a child? In all cases, they're only going to apply it in a professional context at least a decade down the line. – Flater Nov 29 '19 at 15:49
• @AlanB: There is more to it than computer literacy. As the world automates itself more and more, manual labor jobs are being replaced by automation, but higher level jobs (i.e. the ones that work with automation) are opening up. A simple example would be to highlight the disappearance of production line worker jobs, with a simultaneous increase in production line robot mechanics and (by extension programmers). Coding is an exercise in analytics (not too dissimilar from what math already teaches), which provides a base layer for these employment sectors. – Flater Nov 29 '19 at 15:56
• What's the point in teaching kids music, if they [usually] can't become a concert pianist until at least a decade later? – Lightness Races in Orbit Nov 29 '19 at 16:19

I think the intent of such courses is to teach Computational Thinking, not programming as such. Programming is, I think, just one tool among others.

There has been quite a lot of activity recently on computational thinking, which is a good thing. Any "patterns of thought" that can be distinguished and taught seems to me to be a good thing. We teach math and language skills for about the same reason to youngsters. For just about anyone, having several differnt "ways of thinking" gives you an advantage as you grow.

Also, coding implies the "creation" of things. When I was about 5 years old my schoolroom had a set of very large building blocks. We created structures with those and I always look back on that as a good thing to have done. For youngsters the act of creation is a really good thing to teach, no matter the medium (art, music, ..., programming).

But educators aren't trying to create coders as a profession at that age, any more than we are trying to create "professional readers". It is just a tool to aid cognitive development (or should be).

Do a web search on "computational thinking" to see some things about where this comes from. One of my doctoral students has focused her career on these ideas, actually.

See CS Unplugged for a closely related set of ideas.

Let me add a couple of points.

First, robotics, especially, can be fun. Creativity paired with fun is a winner.

Next, in as much as students are able to create useful programs, those skills can be used (and expanded) later in their education. A bit of coding in a math or science course (at least) can add to the learning process of those subjects and, one hopes, help the student generate insights that will deepen their knowledge.

However, I have very mixed feeling about things like Code.org. These are being pushed by large companies with an agenda that is not, fundamentally, education centered. They seem a lot like marketing programs to me. I also worry, at least a bit, on the overemphasis of programming games. While games can be motivating, I think they give too narrow a focus. Commercial games also very likely have an overall negative effect on student learning and growth. There have been recent studies showing young students spending too much time looking at screens in more or less nonproductive ways. The time might be better spent building with blocks and kicking balls around. I'm a much bigger fan of things in CS Unplugged than I am of code.org.

• Could you please elaborate "pattern of thoughts" a little bit more? – gpuguy Nov 29 '19 at 14:10
• @gpuguy, that is pretty hard to do "a little bit". It would take a long answer (maybe to a suitable question). But the ways of thought in mathematics are different from those of pure science and both of those are different from literature. I used to like Apple Computer's catch phrase "Think Different". More generally, analysis and synthesis are different modes of thought. There are a lot of possibilities. The more angles you have to attack a problem the more likely you will be able to come to a solution. – Buffy Nov 29 '19 at 14:15
• CSunplug is quite interesting! Thanks for sharing. – gpuguy Nov 29 '19 at 23:40
• Unfortunately Apple should have used an adverb to modify the verb. "Think Differently". But maybe it was a command to think about the word "different". – Transistor Nov 30 '19 at 18:30
• For just about anyone, having several different "ways of thinking" gives you an advantage as you grow. Sums it all up in one simple sentence. – Guy Coder Jan 18 '20 at 15:51

Why teach English or art at a young age? Because it's a mode of expression and communication. Because proficiency requires learning the tools, learning the idioms, experimenting and developing a voice and a style. Because that path of development takes years if not decades. Although many students won't choose to make coding a major part of their adult lives, the ones that do will benefit from having started that familiarization process earlier.

And the ones that don't will still have something which hopefully leaves them with a better understanding of the world and the people around them. Computers are ubiquitous, someone tells them all what to do, and I find it frankly horrifying that the average person may think of it as something completely out of their ken. Everyone should have the chance to program (even if not very well), paint (even if not very well), play an instrument (even if not very well), etc. just to bring those activities down to earth.

Is there any scientific study that supports the claim of any benefit of teaching coding at a young age?

Not specifically for coding, but there is substantial evidence that teaching different approaches to creative self-expression are beneficial. This is why primary education also often includes music, acting, writing stories, and "constructive" arts such as sewing and woodwork. Simple coding is as valid a form of creative self-expression as making a collage picture, playing "Twinkle twinkle little star" on the recorder, or sewing a bag for your sports kit.

To see primary education solely in terms of "will this lead to a career?" is to entirely miss the point. Such a reductive view of primary education should in the end lead to children solely used as air-door boys or the like, in whatever local industry employs their parents. This was precisely the argument originally used against educating the "lower classes", because workers were not perceived to have a pressing need for literacy and numeracy. The skills required for a worker were not academic, and could be learnt as the child became physically able to do the job. Other factors were not considered important.

As we all know (I hope!), primary education exists partly to teach some basic facts and techniques, but partly also to develop children as human beings with an active and creative interest in the world. In a world where software now plays such a large role in day-to-day life, it's curious to think that we might need a scientific study to tell us that there is a benefit to giving children a basic introduction to it.

If you're focussing more specifically on the age (you mentioned 6 as a lower limit), then that does depend on the child. Using a Sphero, my son could manage simple "if-then" conditions and program a simple series of actions in order when he was 7. Like many skills, it's a case of presenting them in a way which is easy to understand, with a learning curve which allows one basic skill to be established before moving onto the next. Sequential actions are generally easy for children to understand, and if they are ready for games like Ludo or Monopoly which have "if this happens then do that" kind of rules, they have the conceptual framework for basic coding already.

A lot of kids learn some sort of crafting, be it paper cutting, origami etc.

Without citing any sources, I'd say that it seems that teaching forms of creation building and creation are crucial for the development of the kid.

Nowadays, there is a new way to build things: you get a general purpose thing and you program it into solving your specific task/problem rather than building the thing you specifically need. It's a simple change of perspective, a different way of building and creating.

Any type of creation requires some skills, be they motor skills in crafting or painting, problem solving (e.g. how to mix colors to get a certain nuance), etc. Every activity involves different aspects of this and programming focuses on developing the analytical skills and problem solving skills. Which are very much transferable to many other activities.

After I learned programming, all other topics suddenly became much easier. Math especially, but also literature, philosophy, psychology, chemistry and so on. Not only does programming helps unlock a sort of "meta-thinking" even when you're away from the computer, it also helps you build practical tools. I remember writing small toy programs to help me understand math and geometry concepts I was struggling with, such as perspective and polynomials.

A lot of people see math as a prerequisite to programming. But I think it's the other way around. They help each other, in a braid. A well-applied concept from discrete mathematics can save you hours of CPU cycles, but, experience with a programming language interpreter can make you quickly understand concepts in math or other fields.

• There are places where math and programming overlap, of course, but they really are different modes of thinking. Either can contribute to the other, as you say, and especially where they overlap. And you are certainly correct that math isn't a prerequisite. – Buffy Dec 1 '19 at 12:23
• Programming immanentizes manipulation of symbols♥ – Sandra Dec 2 '19 at 13:29
• That should be on a sweatshirt, I think. – Buffy Dec 2 '19 at 13:34

Well, I'm gonna to talk about my sister's experience...

When my sister was seven years old I taught her how to program using Scratch. When she was nine, I taught her how to use AppInventor. Now she doesn't program any more, but she understands the basic concepts about computer science.

She's able to use some advanced resources, like bash, and she's able to understand most of the articles about the internet of things and news about technology. With this she's also able to talk with our parents about our network problems.

I think this knowledge is important to children because it is the future, and when I was her age I would have liked to learn these things. If I had learned computer science by her age I would probably be exponentially smarter now. But I want my sister to learn this now because I want a better future for her.

I fell in love with programming when I was 6 years old and today I am a senior developer who still loves programming. I have had almost no formal training, and I have worked with a lot of formally trained developers who couldn't program their way out of a paper bag, possibly due to starting to learn programming as an adult.

The fundamentals of programming logic don't change although individual languages change very quickly and there will be many new programming languages invented by the time a 6 year old graduates. I can read code written before I was born, and as long as I understand the language, I can follow the logic. The world is getting more technically literate, so without a little familiarity with logic, computers and smartphones are just magic devices that often work, and bizarrely misbehave.

This is not to say that all children should be expected to grow up to be programmers, nor would that be a good idea! It's the same as everyone having enough first-aid knowledge to not need to make a doctor's appointment for a scratch, and more importantly, to be able to decide when they can fix a problem themselves, and when to seek outside help.

Sticking with the doctor analogy, you want medical students to have a basic understanding before they enter university. Student programmers should have some exposure to programming before they start to see if they like it or not. I feel some people think programming is glamourous and an easy path to a high paying job, which it isn't!

Personally, if I'd had no exposure to programming until I was 18 and entered university, I doubt I'd be a professional programmer today. I found that tertiary courses are taught at the wrong level, often getting bogged down in irrelevant details that are not useful when actually programming. Not many people would think of teaching such complex details to 6 year olds. They only need to know enough to get their code working, and why it works when it does, and why it doesn't when they've introduced a mistake.

I should also point out that teaching young children how to code is not a new concept, although it's been embraced much more than ever before. The Logo "turtle" was invented to make programming appealing to children. Here's an image from 1969:

Children have to be taught something in school, with most countries having combined primary and secondary education of around 12 years. There are two basic reasons I can think of for teaching a subject:

1. that subject will be useful in later life
2. that subject will broaden their minds and make them more rounded people.

We teach them English (in English speaking countries and many non-English speaking countries) because in 12 years, a good knowledge of English will more likely be helpful, not useless. We teach them maths because maths is useful. We teach arts, history, and geography because they broaden the mind. We teach them computer science because CS broadens the mind, and it is becoming increasingly useful.

Mind broadening subjects are only useful if the individual works in that area, or if that area is peripheral to their work. A doctor need to know a little geography because certain infections are concentrated in certain areas, and they need to know a little history because certain diseases have been wiped out, so shouldn't be diagnosed. How plate tectonics works, or what happened during the battle of 1066 are unlikely to help a doctor treat disease.

For an average person, a little knowledge of logic can help them demystify a computer's behaviour. For example, searching for "cats and dogs" or "cats or dogs". In English "and" and "or" can sometimes be used interchangeably:

Pet owners with cats or dogs need to be careful of mosquitoes that can infect their pets with heartworm.

Pet owners with cats and dogs need to be careful of mosquitoes that can infect their pets with heartworm.

The above two sentences mean the same thing in English, but the below two pseudo code fragments mean different things in CS:

TELL be-careful-of-mosquitoes TO pet-owner-has-cat OR pet-owner-has-dog

TELL be-careful-of-mosquitoes TO pet-owner-has-cat AND pet-owner-has-dog

The first one means what you'd expect in English. The second one means that only pet owners who have both a cat and a dog need to be careful of mosquitoes. This is unintuitive to most people not familiar with computing logic.

So teaching CS to 6 year olds helps prepare them for a world increasingly dependent on technology. I don't see a need to have a scientific paper to answer this question any more than "Are there any scientific studies that support the claim of any benefit of teaching English at a young age?"

Here's my opinion based on some experiences:

If I told you everyone is happy with their job, that would be a lie for sure. There are plenty of people that hate their jobs.

As the others mentioned, it teaches them a lot, just like any other subject in school. In addition to that, programming and computing are very new and young topics which have a huge development potential. As we have seen within the past 50-60 years, computers lead to great technological advances (unlike art for example). At this tender age kids are very well suited to absorb information and make use of it. In addition to that, there are many tools, like Lego Mindstorms.

Lego Mindstorms is basically assembling Legos that also have a small computer that kids can "code" to have different behaviours while working with them, and in the process see how computers, programming and sensors work. All of that while they are playing with Legos. In my eyes this teaches them that work CAN be fun.

I was 27 years old the first time I touched Lego Mindstorms. I was amazed. I loved it, even though I was very far from being a child. I was also able to see the potential value that it would add to the development of a kid's way of thinking. I think it is a wonderful "educational toy". In my opinion any sort of development is positive, especially when it comes to something that is yet to be fully figured out.