I was emailed by the BBC last week and asked to comment for the PM programme about suggestions that the British Government may add basic programming skills to the national curriculum, and whether this would have a political impact on society in terms of how we interact with technology. Here’s my answer.
Question: Are we going to get a more critical, creative society if we are all taught basic programming skills?
Yes, we are. Very often technology, and particularly software, are artificially restricted in their usefulness in order to allow one set of interests, like a private company, to manipulate consumers to their profit. Although in Britain we are consuming more software and media products than ever, only a tiny percentage of the population are able to participate in how these products are formed, or to adapt them to their own needs, or to create their own.
This has an enormously damaging impact on society. It creates an imbalance in power between those who design the tools that determine the work of everybody else. Regardless of what industry a person works in, they will most likely have to use a web browser or an email client at some stage, for example, even if it’s just to find a job in the first place. But the terms of how a person interacts with these technologies are typically set by a remote group of people with no association with the person who ends up using it, and who may have catered very poorly for their needs.
If our society was better educated in basic programming and digitally creative skills, we would be more able to interact with the culture of our social and professional environments. This is particularly relevant to important trends like citizen journalism, and self-hosting and publishing. A wide understanding of how digital voting systems function could have a big impact on future politics, for example.
Simply having programming skills is not sufficient however – to be competitive, efficient, and productive, Britain will have to also foster a culture of freedom and Free Software in its computer industries. This is because copyright and patent restrictions can silence the creativity of even the most gifted programmer, or require them to reinvent the wheel over and over again before they can even begin to innovate.
Free Software has driven a revolution in communications and technology markets over the last three decades, bringing us the Internet, and computers cheap enough to be distributed en masse in the third world, amongst other benefits.
Schools should foster curiosity and the spirit enquiry in an environment that encourages students to learn. A classroom running proprietary software cannot provide this. “How does this work?”, “what happens if I change this?” – these are questions that have no answer when children are taught using non-Free Software operating systems, office suites, and robotics packages.
The four freedoms of Free Software guarantee rights to use, share, study, and improve the technology around us. You can find more information about them here:
You may also find our Education Team’s mission statement useful; it explains why an understanding of software, and the use of Free Software is critical in training young minds to understand the world they live in:
The question is: “How to teach programming?”.
In order to actually *do* something, you need to know some more advanced code, which some people will need a lot of time for, while others will get it instantly.
Also, a lot of people will think they can’t do it, or just not want to, just like physics and maths, actually. This ‘demoralization’ will be even more extreme, because, as someone once said: “Computers have the ability to remove all common sense within a 10-feet radius.”.
It will have to be taught in such a way, that everyone can (and will) do it, but that those who know what they’re doing aren’t being treated like cretins.
Overall, I think it’s a good idea, but only if the above problems can be solved.
And the most used language of them all; C, is also one of the more difficult languages. Anyone can learn cobol , but your average desktop computer isn’t that likely to use any cobol .
@m8472: Even basic coding skills can have a big impact – basic HTML is enough to enable someone to self-publish online, and to begin to get an idea of what typical web page source code means. Basic skills also potentially make learning more advanced skills later in life significantly easier and more likely – people are going to be more inclined to try and understand what PHP or Java code means at work if they have already done a little Python or Ruby at school.
I don’t see why it shouldn’t be possible to teach the skills in such a way that “those who know what they’re doing aren’t being treated like cretins”. For instance: setting open ended tasks which have a set of completion criteria but which can be achieved in a variety of ways, and incorporate varying levels of complexity. Mixed ability / prior-knowledge classes are not a problem unique to computer science.
Reading this made me think that programming should be a core subject like maths, physics or chemistry: not just an also-ran. Not something that everyone will need to get advanced at, but everyone should be introduced to a working knowledge of it.
The stuff they teach now is more like reading and writing and numbers – sure it needs to be done, but everyone’s over that by grade 4 and the rest of primary and secondary is for more interesting stuff.
This is a really thoughtful article. I haven’t thought of this before but now when i have read this article i think that basic programming will help children in taking creative decisions, searching their error i.e problem and rectify/ammend it, etc. It should become a core subject or should ib added in daily crriculum of the children.