Should kids be taught to program?

Summary:Schools should prepare our children to thrive and compete in a digital world. But is coding a requirement for tech fluency?

Charlie Osborne

Charlie Osborne

Yes

or

No

Matt Baxter-Reynolds

Matt Baxter-Reynolds

Best Argument: Yes

80%
20%

Audience Favored: Yes (80%)

The moderator has delivered a final verdict.

Opening Statements

Education evolves to cater to changing social needs

Information technology is an area often ignored in schools, and lessons are limited to repeating the same instruction in touch-typing and how to use Microsoft Word and Powerpoint. Although these basic skills are often required in workplaces now heavily dependent on digital systems, there's no denying that the younger generation is often more tech-savvy than their predecessors -- and by the time they enter high school, have already mastered these programs and others besides.

The real questions are: Do schools have the resources to teach children computing more suited to social needs, and will children see the value in learning code?

In order to prepare students for a more competitive workplace, coding should become part of school curriculums, perhaps not compulsory for those who have no technological aptitude, but at the least as an option. We must place more emphasis on IT, and teach children not only the how but also the why.

Why should programming get special treatment?

When this debate came up, I really wanted to argue the "no" position. For one thing, there seems to be almost universal positivity for this idea, and it's usually fun to play the foil to things that are "obvious".

The second reasons is that I have two very young children myself, and although I'm keen for them to understand and enjoy science and engineering, I find myself unkeen to automatically think "Hey, I can turn these two into programmers!"

I myself started writing code when I was eight years old. The home computer I had didn't have any games available so I used to while away the time writing little database apps. In hindsight what I was doing was aping my dad, a first generation computer consultant.

What concerns me about this approach is two-fold, Firstly, why should programming get special treatment? Why not teach kids how to read mass spectrograph output? Or how to calculate stresses on a suspension bridge?

Secondly, is it elitist? We don't all have minds that can think around software structures. Some of us have minds that are better at writing poetry, or understanding softer structures like psychology and economics. Are we doing them a disservice by making programming something special?

 

The Rebuttal

  • Great Debate Moderator

    We're almost ready to start.

    Are you ready?

    Posted by Lawrence Dignan

    All set

    Ready to begin.

    Charlie Osborne

    I am for Yes

    Ready at this end.

    Let's start.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Benefits and drawbacks

    What can coding bring to kids? What can't it do?

    Posted by Lawrence Dignan

    It's everywhere but not for everyone

    The difference between education and training. In the West, we train children how to use software, but we don't educate them in how it works. Computer science isn't like learning how to drive a car or how to write a resume -- computers control our tax systems, credit cards, give us access to the Internet, connect our surveillance cameras, and monitor who we keep in touch with. It's part of society, and a large one. It's misguided to think that learning how to use Microsoft Office and Powerpoint for years on end is going to help children in their quest to secure a job in the future, and by teaching them the why and not just the how, we can help educate our students and refine their reasoning thought processes.

    It may not be a subject that every student has aptitude for, in the same way that not every student enjoys learning French. It may not be useful for someone who wants to be a mechanic, but its far from a "special" or "elitist" subject, and those who may want to pursue a career in computing shouldn't be limited just because not everyone sees the value in teaching such a subject. Just like any other, studying coding -- or english, or maths -- results in a set of transferable skills which can make transition into the workforce easier and make a student more appealing to an employer.

    Charlie Osborne

    I am for Yes

    Logical thinking

    The argument "for" teaching kids to program is that it is logical, and it encourages logical thinking.

    My argument is that kids are "already" taught to think logically in schools, and that -- within the UK at least -- there is less focus on facts and more focus on reasoning things out.

    What programming can't do is embrace the whole spectrum of how individuals think through problems. I happen to have a mind that -- I guess -- is rather well-suited to writing computer software. But when it comes to marketing, or painting, or car maintenance, I am totally, *totally* hopeless.

    The fallacy of this argument lies in the idea that all children would benefit from being taught how to think through a problem as a computer programmer would. They would not. Large numbers of children would simply be made to feel excluded and stupid just because they are not predisposed to think through problems in that way.

    We all had subjects we were good at and bad at (and likes and disliked) at school. What makes "programming" a subject that we assume everyone is good at.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Priorities

    Should the education system improve other areas (math and science for instance) before worrying about code?

    Posted by Lawrence Dignan

    It's the basics

    The education system is not perfect. Improvements to core subjects will always be argued and debated, agreed, changed and then scrapped due to budget worries, but while this is taking place, IT continues to underpin our infrastructure and becomes even more engrained within society. It's not so much about "code" itself, but giving students a basic knowledge of how technology works -- in the same way that we give children a basic understanding of biology, chemistry and physics, things that shape our world.


    It shouldn't be the case that people believe teaching children about computers means you have to pull out all the stops. There's nothing special about it -- it's now necessary. Our world is networked, and companies are crying out for staff that have an understanding of computing and coding. Whether we like it or not, the point of education is to make a child a valuable addition to society who is able to support themselves. As the West's dependency on technology grows, we are doing children a disservice by ill-preparing them for such a workplace.

    English, science, and maths are all agreed upon as core subjects. However, coding -- as part of a radical overhaul of the "let's teach them how to touch-type and use Microsoft products" learning spectrum, can become an applied skill that may end up being far more valuable in the long run than memorizing the periodic table. The basics should be taught, and the option to go further should be on offer.

    Charlie Osborne

    I am for Yes

    Yes

    Yes

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    For everyone?

    Should the coding push be targeting all students or just some like those interested in math and science?

    Posted by Lawrence Dignan

    Preparing for the real world

    As an ex-teacher, I know that children have aptitude for different subjects -- some for math, some for sports, some for the arts. We shouldn't belong to the school of thought that children who learn coding will automatically become programmers and nothing else, just as science students who know how ecology works will not necessarily pursue the field.

    It's not about making coding "special" or "elitist," but bringing the subject into common study, and for the idea that children should understand just how our technology-driven society works as accepted as the fact they should have basic skills in reading and writing. It's not all about trying to create a generation of programming whizz-kids who will storm down the doors of universities to study computer science.

    Comparing code to teaching children "how to calculate stresses on a suspension bridge" or "how to read mass spectrograph output" is a flaw in itself. These examples suggest that coding is intrinsically without any applied value, or would only be useful in passing exams -- to be forgotten soon afterwards. But it's not. We are now sending our kids out into a networked world full of mobile technology, applications, surveillance and a reliance on technology to manage everything from our communications to our money. If we don't teach them the basics in how it all comes together, surely this ignorance should be an embarrassment to our education industry?

    Charlie Osborne

    I am for Yes

    More than one dimension

    If the argument was "should kids with a predilection for math and science be given stronger support around software engineering", I'd be voting "yes" rather than "no".

    What I hear in this argument is that all students -- regardless of how they think about problems -- should be taught that the rules we follow as software engineers are the best way to solve problems.

    To me, that's a one dimensional view that not only dismisses and excludes other ways in which individuals think about problems -- and it's that which is the inherent danger in this argument.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Learning the ABCs

    Learning to code has been compared to learning the alphabet or arithmetic. Is that a good comparison?

    Posted by Lawrence Dignan

    Need for the basics

    If you believe that programming -- or at the least, a more sophisticated computer science course -- should be as core a subject as english or math, then perhaps. However, in itself, this suggests that coding has to be learned by rote -- which simply isn't true. By starting with the basics, students can be challenged to create their own games and projects, and such learning can be an interactive experience. Not only this, but lessons in coding can develop skills in critical thinking, logic, and even team-building through collaboration -- which are all transitional skills valuable in any workplace.

    Code can encompass everything from algorithms to search functions, artificial intelligence to problem-solving -- and that certainly goes beyond the alphabet.

    Charlie Osborne

    I am for Yes

    It's not that simple

    The former -- no. Programming is nothing like the rote learning of an alphabet.

    Is it like arithmetic? I was always told it was, but never really saw that until I saw my own children trying to learn maths. Programming is only ever about "here is a problem", which you then decompose and decompose, down and down until you get lines of code.

    The logic that goes into the process of "I have 12 drawers and 10 pencils in each. How many pencils do I have?" is the same process of problem decomposition. The English of the statement needs to be decomposed into the sum "12 x 10", and from there into an answer.

    The issue is that programming is not that simple. Programming is the complex interplay of multiple subtle rules -- not just the decomposition of one task into one rule.

    This is where the problem diverges. Programming of any complexity is a specialised mental activity and -- rich tapestry of all human capabilities that we are -- any child who can't actually do that is just going to end up excluded.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Budget impact

    How do education budgets play into coding curriculum? Given tight budgets will coding always be a nice to have?

    Posted by Lawrence Dignan

    It's a big problem

    Budgets are forever the sticky topic in the education sector. A school can be plunged into debt by expanding their sports facility, or is faced with the expense of replenishing stationary and replacing books continually, as well as pay their staff and keep the school running. Sometimes, governmental budgets don't cut it.

    However, a school doesn't need to splash out on brand new hardware and software to teach children about coding. If a school has access to the Internet, there are a number of open-source projects available which not only include teaching exercises and how-to guides for teachers trying to keep up with changing ciriculums, but can also connect student and teacher to industry specialists. In addition, the Raspberry Pii has proven a popular tool to teach basic programming and may not stretch the budget too far.

    It's not easy, and sometimes schools make the wrong choices. Interactive white boards are all well and good for example, but work as a tool to enrich a teaching program rather than a necessity to teach a student a skill.

    Charlie Osborne

    I am for Yes

    Checks and balances

    No education system has enough money, but it does act as a "check and balance" against unnecessary expenditure, I guess. At least introducing coding into the curriculum won't just be a "knee jerk" thing.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Role of parents

    What is the role of parents in teaching code? Most schools aren't going to teach programming.

    Posted by Lawrence Dignan

    There are limits

    What's the role of parents who are  asked by their children to help them write a poem, or understand a math equation? Most parents won't teach their children about biology or art either, so they won't necessarily have a role in teaching their children how to code. Parents have to work -- more often than not, both in order to survive financially these days -- and so entrust their children's education to the school system.

    Unless children are homeschooled, which is a rare occurrence in the U.K. for example, parents often do not have the time or resources to help their children with academic work. Coding will likely be no different.

    Charlie Osborne

    I am for Yes

    Shared passion

    I would imagine though that there has to be some sort of "shared passion" in a subject between parent and child for it to be significantly additive to whatever the school is doing. I love science and engineering stuff, so that's what I like talking to my kids about whether we're doing homework or not.

    Medieval history? Not so much -- when they do that stuff I'll just be plugging away at whatever the teachers want them to learn.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Is coding necessary at a young age?

    Is coding necessary to be fluent in technology? Kids consume technology easily. Is it necessary to know the inner workings. Is learning to code the equivalent of learning to write?

    Posted by Lawrence Dignan

    The big picture

    The technology industry is broad, and programming is only one aspect. However, the process of logic and understanding the basics behind it is one that can be attributed to many industries. It is important that we make the distinction between the basics of coding and "understanding the inner workings," as one does not necessarily relate to the other.

    The basics of coding can broaden a students' understanding of the world they live in, and they don't necessarily have to understand the back-end of an application -- but they should know how data goes from here to here, and what happens to information they share and allow to be harvested. They need to understand more of their networked world, and if there are a few students who want to know more, the option to continue study should be available.

    Charlie Osborne

    I am for Yes

    No need

    Even professional programmers find that as time goes on, their day-to-day access to low-level of systems gets abstracted further and further up. A good programmer coming into the market today can go a long way without knowing what a pointer in C++ is, for example. The baseline abstraction away from the actual mechanics I don't think matters. It's just part of a societal driving forward of technological understanding.

    So do kids need to understand system fundamentals in order to get the most of out it? I doubt it. Plus kids these days (!) are going to have a far deeper sociological connecting with technology than my generation.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Here today, gone tomorrow

    Is there a risk that the code learned today will be irrelevant tomorrow?

    Posted by Lawrence Dignan

    Expanding rapidly

    With technology advancing as it is, perhaps. But whether irrelevant or not, coding is beginning to seep into a number of professions that at first glance are not related to constructing a program. For example, if you want to go into graphic or website design, you need to know how images can be integrated within static or CMS websites, or how to integrate a forum and gallery. You need to know how to read logic-based scripts like css, and to find kinks in HTML code. If you're working in administration, you may need to find out which formula in a database or excel spreadsheet is messing up your data and how to fix it. If you're working in research, the logic behind code can be applied to the thought processes required to make sense of statistics.

    The code itself may become irrelevant, but the taught thought processes behind it will never be so.

    Charlie Osborne

    I am for Yes

    Changing skill set

    That's an inherent risk in any sort of programming training, whether at school, university, or vocational.

    A programmer with 20 years commercial experience is unlikely to be using the same skills today as they were in their first year of professional practice.

    However, programming skills and "tradecraft" are independent from tools. So whilst the tools we use will be obsolete or irrelevent in years to come, the approaches won't be.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    At what age to start?

    At what age would you say kids should learn some code?

    Posted by Lawrence Dignan

    Start them young

    I'd say with most subjects, the earlier you start, the better. It takes time to build any subject knowledge up -- whether it is your ABCs or your understanding of the periodic table, and code is no different. You have to wonder -- when teenagers nowadays are struggling with HTML tags, if they had learned this language earlier, how far could they go?


    The basics, combined with additional lessons in digital citizenship and ethics, should be available to every student in the West. As a former teacher, I believe that you can make any lesson fun by turning it into a game or competition -- and coding is no different. Just add a bag of sweets as bribery and even the youngest will become enthusiastic. Our connection to the digital world is happening at a younger age (I felt uncomfortable when I saw that my four year-old cousin has a Facebook account set up by his mother), and so we should strive to impart a level of understanding at a younger age too.

    Charlie Osborne

    I am for Yes

    I started at 8

    I started about eight. If you did want to create a little offspring programmer-type person, that's about the right age.

    Typing skills you can start earlier with!

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Last question: Serious or selfish?

    You could argue that groups like Code.org are just looking to fill jobs for computer programmers in the future. Is that a valid argument? And is that a selfish motive?

    Posted by Lawrence Dignan

    Job skills are desperately needed

    Frankly, when so many graduates and high school leavers are out of work, any skill which can get you ahead of the game is worthwhile. Perhaps Code.org does have that motive, but so what? There are non-profits who aim to improve the reading and writing skills of teenagers and young people in London, and there are free training courses on offer in basic computing skills. The army recruits for potential infantry soldiers. I don't see anything wrong with giving students, teachers and members of the general public the chance to learn a trade, and although we all have motives for what we do, if these sorts of schemes can help secure the next generation's future, why not? 

    Charlie Osborne

    I am for Yes

    No

    I don't think that's a fair argument, no.

    Matt Baxter-Reynolds

    I am for No

  • Great Debate Moderator

    Thanks!

    To the Charlie and Matt for a great debate. And to you readers who joined us. Check back Wednesday for the closing arguments and I will announce the winner on Thursday.

    Don't forget to talkback and share your opinions.

    Posted by Lawrence Dignan

Closing Statements

We must teach the basics

Charlie Osborne

In the end, teaching children the basics of coding should simply be another subject introduced in schools. When our world is networked and so technologically driven, our educational system should reflect this society -- and introducing basic coding, digital citizenship and technological understanding is one way to prepare our students for such a workplace.

Humans are meant to be rational creatures. We may not all "think like a programmer," it's true. But in the same way that some of us are useless at languages or math, knowledge in the subject cannot do any harm -- and under the supervision of an effective teacher, no student should be excluded. 

Many companies need students who know how to do more than use Microsoft Word and Powerpoint. This doesn't mean that we need to produce a new generation of kids who can create apps and databases, but it does mean that they should be equipped with a basic knowledge of technology -- and should have the option to delve deeper into the subject if they wish.

What can coding bring to kids? What can't it do?

Matt Baxter-Reynolds

The argument "for" teaching kids to program is that because it is logical, it encourages logical thinking.

My argument is that kids are "already" taught to think logically in schools, and that -- within the UK at least -- there is less focus on facts and more focus on reasoning things out.

What programming can't do is embrace the whole spectrum of how individuals think through problems. I happen to have a mind that -- I guess -- is rather well-suited to writing computer software. But when it comes to marketing, or painting, or car maintenance, I am totally, "totally" hopeless.

The fallacy of this argument lies in the idea that all children would benefit from being taught how to think through a problem as a computer programmer would. They would not. Large numbers of children would simply be made to feel excluded and stupid just because they are not predisposed to think through problems in that way.
 
We all had subjects we were good at and bad at (and likes and disliked) at school. What makes "programming" a subject that we assume everyone is good at.

Another item for children to put in their educational quiver

Lawrence Dignan

This debate focused on a hot topic -- whether kids should code. In the end, Charlie made a better argument that teaching code isn't an end point, but another item for children to put in their educational quiver. Matt made some good points, but didn't do enough to sway the masses. We need to do more than teach our children how to consume software, but need to show the underpinnings -- at least at some level.

Topics: Great Debate

About

Larry Dignan is Editor in Chief of ZDNet and SmartPlanet as well as Editorial Director of ZDNet's sister site TechRepublic. He was most recently Executive Editor of News and Blogs at ZDNet. Prior to that he was executive news editor at eWeek and news editor at Baseline. He also served as the East Coast news editor and finance editor at CN... Full Bio

zdnet_core.socialButton.googleLabel Contact Disclosure

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Related Stories

The best of ZDNet, delivered

You have been successfully signed up. To sign up for more newsletters or to manage your account, visit the Newsletter Subscription Center.
Subscription failed.