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:
- “If you want to teach kids CS first teach the adults”
- “Why the US is not ready for mandatory CS education”
-
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. ↩