Computer education in Belgium
Today (well, technically yesterday by now), the Media were reporting of an open letter by '5 belgian university professors from the IT field' without calling them by name about how Belgian primary education should introduce programming into the curriculum, starting at age 5.
Unsurprisingly, this did not go well with a majority of the Belgian populace. Arguments like "what should the school drop to make place for that, then" and "why would people ever need to learn programming" were rampant on some internet fora that I had a short look at.
That being said, though, I think these five unnamed professors are correct. Understanding how a tool works is essential to proficient usage of said tool; and while it is possible to teach particular common and popular use cases of a given tool without providing enough background, doing so will only result in confusion when the computer "is acting up"—an oxymoron if there ever was one. After all, a computer can't "act up"; it can only follow instructions. Whenever your seems to be "acting up", what's really happening is that someone (most likely, you) gave it the wrong instructions. Or, perhaps, someone evil on the Internet gave it the right instructions (for their goals, anyway) and infected your computer with a virus. But that's unlikely.
Computer education currently mostly consists of "teaching software": rather than explaining how a computer does what it does, people are taught that if you click this button, the text will be bold, or if you click that button, the printer will start buzzing. That's all nice and dandy, until the actual computer people encounter when off the school bench and at work has this other piece of software, where all the buttons are in other places and look all "wrong". Because then they get all confused about the fact that things aren't where they're supposed to be.
So, yes, it is my opinion that any computer education should help people understand how a computer does the things it does. And what better way to do that than to actually explain things to a computer, the way computer programmers do such things?
Note that programming a computer doesn't have to be hard, and it can be something which kids can understand and will find fun to do. For instance, there's this scratch thing from MIT, which was made for teaching programming in such a context.
Yes, adding programming to the primary school curriculum will require that some other things are dropped instead, and I could see that being a problem. However, in our modern world computers have become so pervasively important that we would be doing our kids a disservice not to explain them how to understand computers, as opposed to just learn how to use them...
Computers are important nowadays but I think the answer to teaching ICT to all the kids is in the middle way. You are right that teaching to click on buttons isn't right. In my opinion learning them to program is also a dead road. As you want to give education to everyone and the main objective is 'learning to work with computers, tablets, etc' than teaching them logical thinking via a programming language is not going to solve that. The answer lies in the middle way. An example a computer can copy data - where do you find the copy button in program a, program b, program c,... , - - copying data is different in a program, on the systemlevel - data can be copied from one pc to another: what 'ways of transport' are there (network, data-storage, ...)
This seems to be easy but is in fact rather abstract and difficult to conceive.
When I was in elementary school we had to write a letter to ourselves, we put it in the postbox and were amazed when the letter arrived at our own home a day later. Then you can tell as a teacher how the system of one person handing over the letter to another person behind it works. The system of traditional 'letter delivering' is rather easy to explain. Try to explain at a 8 year old how the system behind 'I write an email from my android-tablet to myself' works. You have the android OS, the wireless connection to a router, the router connected to you ISP, the ISP delivering to another ISP, ... NSA looks into your email, your ISP puts the message in your mailbox. Then you start with part 1: the android OS, part 2: applications on android, part 3: network connection, part 4: wireless, ... This will be a lot of work for the teachers but you won't have to program you're own emailprogram
I recently volunteered for a Greenlight for girls event, helping out with a programming workshop. We used Pynguin, which lets you draw using a Penguin and Python (yes, yes, I know how you feel about Python).
It was amazing to see how quickly they picked it up, and how enthusiastic they responded. To be fair, some of them clearly didn't enjoy it, but that's OK too. Many children don't enjoy their math or French classes either and we still make them take them.
It's not even just helpful in understanding how computers work, it's also another great way to teach them abstract thinking and things like how to break a problem down into smaller problems, or how to re-use work you've done before.
"In the emerging, highly programmed landscape ahead, you will either create the software or you will be the software. It's really that simple: Program, or be Programmed. Choose the former, and you gain access to the control panel of civilisation. Choose the latter, and it could be the last real choice you get to make."
D. Rushkoff - Program or be Programmed - OR BOOKS 2010
http://www.orbooks.com/catalog/program/#
I think you're mixing things up, mate.
Teaching how computers work and teaching how to code are two completely different things. The former is OK, the latter, totally unnecessary.
Do I really need to be taught mechanics, or is it enough to know how to drive a car? Do I really need to know how to build a house, or is it cool if I just live in it?
Does everyone of us have to study law, or cooking, or ... you name it.
I don't see how coding is SO important over anything else.
Cheers!