I have always been a little wary of calls for computer science or programming to be taught at school. Most of them felt like basic corporatism, trying to get people started in a given trade early, similar calls have been made by lawyers, and music teachers managed to get music teaching into the constitution in Switzerland. I had some computer science course when I was in Collège, the Geneva equivalent of high-school, and they were pretty random in quality in scope, nobody knew exactly what computer science was exactly, and what such a course should teach, coding? using a word-processor?
Later, just after I finished my computer degree, I did some hours standing in for a sick teacher in Cycle d’Orientation, the school before high-school in Geneva. The course was officially computer science, and I felt very proud of teaching with my brand new degree. Problem was, what was given was in fact a recycled typewriter course, one part was something I cannot do even today – touch type with 10 fingers – and the other one is something I abhor – using a word processor like a typewriter, using the courier font and doing the line breaks by hand. This was twenty years ago.
Teaching maths properly is already something hard, and math, at least at pre-university levels, is a pretty much stable and agreed-upon subject. Designing a proper high-school computer science course is far from trivial, in particular when considering the course should be stable long enough to be able to train the teachers, evaluate them, integrate the course into the general teaching framework. While computer hardware is cheaper and cheaper, whatever is used for the course will need to be adapted very often, this means a reasonable supporting staff. Finding proper teachers is also not going to be trivial, there is a strong demand for people with technical degrees, so there is a high risk you end up with computer science teacher that only have a superficial understanding of the subject.
In short, there are many things that can go very wrong and few people that would be able to judge the quality of the course: not the parents, not the other teachers, certainly not the politicians. Getting a hot new technology into schools has always been a good way for contractors and consultants to get juicy contracts.
So why did I change my mind? Algorithms. More precisely, the level to which programs affect our daily lives. Inventing stupid t-shirts, doing high frequency trading, simulating new planes, or even driving cars, things in the real world are increasingly done by computers. A baby born nowadays will interact with algorithms way more often that with, say animal farms. Currently they are taught basic facts about animals, but nothing about the algorithms. They are told stories about the bad wolf in the woods, but nothing about the nasty program that lurks behind the the firewall.
I don’t think that kids should be taught computer science and programming as a trade, but as a way to understand one increasingly important part of our society, algorithms.