Why CS shouldn’t be taught before high school (and coding for kids is a bad idea)

An introduction to computer science was part of my high school curriculum. I was about 16 years old at the time and had been coding in Basic and Pascal for a few years already – I was just getting started with C. This part of the curriculum was a complete waste of time. Not because I had books that taught me better than my teacher ever could, but because, in order to make it easier for us, the programming language we had to use was a version of Pascal … translated to Dutch.

It made no sense to me, and honestly still doesn’t, to translate a programming language. How is code that says afdrukken any clearer than the same code that says print? I didn’t get the point and I was one of those kids that, if they didn’t see the point in learning something, refused to learn it. For that same reason, I refused to learn French and German (and had to redo my second year of high school because of it)1.

Still, teaching computer science before high school is, IMO, a bad idea. Children this age should focus on four things: social interaction, basic reading and writing skills (understanding for the reading, structure, spelling and grammar for the writing), math and analytical reasoning. At twelve, a child should be able to read and understand a newspaper or a book, write a letter, do basic money-based math (and perhaps a bit of algebra) and independently find the answer to a question such as “why is the sky blue?” Each of these skills is a prerequisite of solving a problem in Computer Science and the level of each of these skills is lacking (to put it mildly) in most of today’s twelve-year-olds.

Now, don’t get me wrong: I was writing code well before the age of twelve and I don’t regret it. However, at twelve, I also possessed three of the four skills mentioned above. Exceptions will exist and some kids will learn how to code, but coding isn’t the goal in software engineering or (more generally) in computer science: it’s solving problems (or, as I like to call it, “Making Life Easier”). Coding is only a small part of that and isn’t even a skill you need to solve problems in CS or SE, though it is sometimes helpful.


Update is the education system ready to teach CS to kids?
Read these:

  1. The irony, of course, is in the fact that I make a living doing what I refused to learn, that my wife is French and we speak French at home (and my children speak French as well) and my dad’s girlfriend is German []

About rlc

Software Analyst in embedded systems and C++, C and VHDL developer, I specialize in security, communications protocols and time synchronization, and am interested in concurrency, generic meta-programming and functional programming and their practical applications. I take a pragmatic approach to project management, focusing on the management of risk and scope. I have over two decades of experience as a software professional and a background in science.
This entry was posted in Education and tagged . Bookmark the permalink.

2 Responses to Why CS shouldn’t be taught before high school (and coding for kids is a bad idea)

  1. Joëlle says:

    I think you are overestimating the abilities of an average 12 year old (you know, the ones you had trouble interacting with). I don’t think it’s a realistic goal to let them find the answer to a question like “Why is the sky blue” independently. That is, if you want them to understand the answer as well. But I do agree on the four fields of focus for primary education, wich means I want to ad “sience” to the basic curriculum in the Netherlands. In my experience, that’s the subject that really encourages children to think, and they can do the thinking in a way that fits their personal learning strategies (theory-based, handling-based etc.). And once sience is added to the Dutch curriculum, it might become easier to find the answer to the discussed question, because more child-aimed resources will become available in their own languages. I couldn’t find suitable material explaining ‘convection’ in Dutch, while youtube offered nice lectures in English. There is still a lot of work to do 😉

    • rlc says:

      If I am over-estimating the abilities of a twelve-year-old, then all the more reason to not teach computer science before that age!

      I agree that understanding the response to “why is the sky blue” may be a lot to ask for a twelve-year-old (I know adults who don’t understand the response) but not completely understanding something and still arriving at an acceptable answer is

      1. a common experience in adult life, and
      2. an excellent reason to dig deeper

      . It’s the digging that needs to be taught – not a particular spade to dig with. If that means adding science to the curriculum, so be it. I agree that that’s a good way to learn analytical thinking if the focus is on thinking scientifically rather than learning a large number of factoids by heart.

      It remains that most eighteen-year-olds couldn’t write a proper letter if their life depended on it and most adults today have obvious problems handling their money (if the economy is any indicator) so while making lots of money in computer science might look like a nice way to attack the lack-of-money problem, being able to do simple arithmetic looks like a better way of you want to keep those lots of money…

Comments are closed.