Should kids be taught to program?

Moderated by Lawrence Dignan | April 15, 2013 -- 07:00 GMT (00:00 PDT)

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




Matt Baxter-Reynolds

Matt Baxter-Reynolds

Best Argument: Yes


Audience Favored: Yes (80%)

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.


Log in or register to join the discussion
  • I wouldn't vote against it.

    I suppose it's ultimately up to the public, but I wouldn't vote against it. It's a good skill to learn, and it's tied in with mathematics and logic.

    Logic especially needs to be taught. I can't believe how many people out there can't tell the difference between objectivity and subjectivity, don't know the difference between opinion and fact, and think that just being the loudest in the room somehow equates to being right.

    . . . how many tech pundits are thinking that forecasting is 100% accurate? How many times have I seen some tech pundit try to predict everything, everybody worships his/her opinion, and he/she turns out to be completely wrong?

    More than I can count. Microsoft should've been dead 10, 20 years ago if predictions were accurate. Take a walk through the ZDNet archives, it is rife with proclamations of Microsoft's death that never came to be.

    Even proclamations of "no, we **REALLY** mean it this time, it's true, it'll die this time! We have MORE REASONS! It must die! It cannot possibly live after we give you all these NEW REASONS!!"

    . . . . which again never came to be. Apparently nobody in ZDNet had ever read the story of the boy that cried wolf. And apparently they don't realize that "reasons" are often subjective opinions, not objective facts.

    You'd think they'd learn - yet here we are again - this time with the PC rather than Microsoft. Instead of doing things differently and being more careful with sweeping predictions - nope, same old, same old.

    It's the same symptoms: I'm seeing an underwhelming amount of actual research into the actual cause of the decline of PC sales - just political posturing.

    And no, repeating the ideas of some famous tech figurehead does not count as "research." Research should consist of data, numbers, and analysis.

    And no, using a lot of words to say why you are "right" and everybody else is "wrong" is not analysis. Analysis means taking the information following where it leads, being careful not to make it say any more or less than it really does.

    Humm, now that I think about it - we should be teaching tech pundits programming as well :/. Might learn some logic skills.
    Reply 4 Votes I'm for Yes
    • You're mostly right

      I totally agree that Logic should be a subject taught in school - starting at the elementary level. However, it should be part of the communications discipline.

      Although programming uses logic, it does not teach it. Even programmers fall into the objective/subjective and opinion/fact chasm. Based on many of the posts on ZDNet, some who claim to write programs also think being the loudest, or most vulgar, somehow makes them right.

      Programming should be made available in schools, but not mandatory. All students are taught basic math, but not all have to take trig or calculus. These things are available for those interested. Chemistry was mandatory at my school, but the only thing I remember from it is that HIOAg is Hi O Silver. Mandatory courses need to stick with the rudimentary skills used in all disciplines and applicable to daily life - starting with effective communication.
      Reply 1 Vote I'm Undecided
      • programming does teach logic

        Absolutely it teaches logic -- if those are the assignments:

        mother_child(trude, sally).

        father_child(tom, sally).
        father_child(tom, erica).
        father_child(mike, tom).

        sibling(X, Y) :- parent_child(Z, X), parent_child(Z, Y).

        parent_child(X, Y) :- father_child(X, Y).
        parent_child(X, Y) :- mother_child(X, Y).

        This results in the following query being evaluated as true:

        ?- sibling(sally, erica).

        (from wikipipedia, prolog language)

        That's logic right there.
        Reply Vote I'm Undecided
  • Question is not clear

    Are you saying ALL kids should be taught to program? If that's your assertion then I say no, because it's not something the kids need to know. English, history, science, and math, yes, those are subjects all kids need to know. However, having knowledge of C+ and how to create the new version of Windows is not something every child needs to know.

    I'm assuming your question is, should programming be taught in schools as an option. In that case, yes, if the child wants to learn programming then they should be given that opportunity. If they want to be the next Bill Gates, let 'em have at it.
    Reply 3 Votes I'm for Yes
  • Yes - without a doubt

    The reason that Maths and English are required subjects is that we speak in English every day and it defines us culturally. We use maths every day because we require it every day in our jobs, it underpins the economy. Now if you think about the role that IT plays in everyday life, it applies to both life, commerce and culture and in no small measure.

    For some reason, people think that coding is unapproachable. This is complete rubbish and shows its immaturity (it's only been accessible to the man in the street or 30 years unlike English and Maths). Take maths - if you showed someone a trigonometrical calculation before they had started learning maths at all, their eyes would glaze over and they would say "don't get it, don't need it, not relevant to real life". You don't start with trigonometry, through, you start with the basics and work your way up to it.

    It's the same with programming. The difference, however, is that people can have a lot more fun learning coding than maths. While you learn the code you write can actually do stuff - put together simple games, apply some of the maths you are learning, make some API calls to other systems evem (much easier than mastering trigonometry by the way), communicate with people, draw stuff on the screen.

    But coding is 100% in the national interest. Shockingly, the quantity and quality of computer science applicants is dropping in the west. Countries like India, China, Russia, Romania however are very happily building up their expertise to the point that in 10 or 20 years we will be laggards where we used to be clear leaders. Take a look at for some sobering stats. Also, read the opening paragraph on the Raspberry Pi site . I think that we, as a country, could be about to do to our IT base what we did to our manufacturing and engineering so we could concentrate on banking. We will ship eastwards. It does not and should not be like this. Look at Germany - the best manufacturing country on earth and now responsible for propping up the EU, something the UK could not do as we have decimated our manufacturing base and have nothing to fall back on other than our beloved banks.

    It is time for us to grow up about our attitude to teaching people to code. We've arrived at 'geek-chic' and left 'spotty nerd' behind. Learning to Code teaches a pupil a hell of a lot more than how to code, by the way. It teaches us how to think logically, how to apply other skills we are learning, how to be creative in the digital world. If approached in the right way, it could be the most enjoyable subject of all as well as being critical to our national interests.

    So coding matters and I've hopefully persuaded some people of that but it needs to be well taught. The biggest danger, maybe a certainty, is that when a government committee puts together a programming curriculum, it will be flawed beyond belief. It will have taken many years to put it together in the first place. Then the committee will ensure that all the radical and exciting stuff has been removed. The net effect is that you will have something that is boring and out-of-date before a pupil even sets eyes on it for the first time.

    The approach that I advocate (I have written a mini-manifesto blog post you will be able to read here from Tuesday 16th : is to take a collaborative, open source approach to teaching people to code. Throw the building of tutorials and rich coding content to the community of teachers and professional developers and make it completely open. The developer community is already doing this to a degree and there is not shortage of willingness. You would end up with a dynamic, organic body of work that does not need committees or curricula. It is a body of work that teachers can draw on as they wish.
    Reply 2 Votes I'm for Yes
    • Well argued!

      And it's only Monday!

      I'm going to add another bit to the argument here. "Coding" isn't simply some esoteric skill. It is the embodiment of various mental skills.

      Learning to "code" means learning to break big problems into smaller problems, analyse those problems, find solutions for those problems, and organise those solutions into a cohesive whole. Even if the child never becomes a programmer, those skills will assist them in what ever their chosen occupation happens to be, and in life in general. "Coding" should not be seen as the end in itself, but as the means of producing a more well-rounded, better educated individual.
      Reply 5 Votes I'm Undecided
      • Absolutely agreed!

        People have different talents and skills, but KNOWING how other people do things NEVER hurts. For pragmatic or even empathic reasons...

        Indeed, I know what support people do, which is why I expect more from them than a sloppy job - but I do understand time constraints and other impositions put against them. As a customer, outlining the whole of the situation might not make the company I spent tons of money on feel any better, though, and such analysis on my part would whittle down the own people they hire that are supposed to do that sort of research and related work...

        Even then, the human factor - some people will just be sloppy, but usually there's an external impetus being applied. No choice is entirely of free will. After all, I didn't return to college and spend a ton of time and money on a whim - companies want people with higher degrees, even for entry level jobs whose wages cannot begin to pay the inevitable student loans...

        But, I ramble... :)
        Reply Vote I'm Undecided
    • Learning to code was easier in the old days...

      When I was in college in the 1960's, one big perk of being a student was access (via punch card and printed reports over 24 hours, then later via hard-wired dumb printing terminals at strategic campus locations) to the mainframe, the only computer available. And students majoring in all branches of engineering were required to take a basic programming course in FORTRAN. This was also a recommended elective for math and business majors. And since programming was concerned mainly with text and numbers in, text and numbers out, the languages available were simpler to begin learning from books before getting on the hardware (for most of my college years, the primary "hardware" was the keypunch, a card feeding desk that punched holes to encode text entered on its typewriter-like keyboard). Programs could, and usually were, written out on paper, then on a "coding form" that allocated a square for each character, and studied for logic errors before even getting to the computer.

      The main obstacle to my learning, at my age, any of the languages now used to write OS and apps for today's machines is the cost of legally licensed program editing and compiling software. If the schools can possibly pay for the volume licensing to allow kids to write and compile programs in a language with a useful lifespan, go for it.
      Reply Vote I'm Undecided
      • Discover Open Source/Free Software

        Linux exists in a near completely free environment, and use does not constitute a license violation. Many Linux programs have been ported over to Windows, and fewer, but still a great many to Mac (iOS).

        GCC is one of the most used commercial C compilers, and it is Free Software. GCC compiles C, C++, FORTRAN, and more. If you don't want to use a simple editor to write your code, consider Eclipse, also available free.

        Or, you could master a Script Language. Like Java (Available free) or Python, Perl, Ruby, TCL, and more. There are also Lisp programs and compilers out there for free too.

        Where are they? Google knows. Google is your friend.
        Reply Vote I'm Undecided
        • Oops, I Forgot

          I forgot to mention Java Script. You already have the language, as it is built into all browsers. There are libraries available that extend it from a basic level. It's a lot like C programming, but with a reduced instruction set. Still, it's Turing complete!
          Reply Vote I'm Undecided