I empathise with Jeremy Paxman squirming at the explanation of the value of a “year of code”. I support the year of code wholeheartedly, but let’s understand why it’s valuable, and recognise the bullshit in “create your own web-page / business”.
As far back as 1973/74 I recorded schoolteacher / form-master Ester Pearson teaching us to code – early Fortran via teletype and punch-tape – he having switched to maths and computing from French and modern languages for the purpose. Bar a few weeks at university first year, I’ve never written a line of code, but I’ve published thousands of web-pages. I’m not proud of that particularly, but it’s a fact. [Not quite true, I did write script-based technical analysis and calculation routines and high-level simulation language code in my early engineering years too.]
[Aside - aaaaagh - Chris Packham on the telly selling us "clever" animals .... those damn trained crows get everywhere, and the honey bee's waggle-dance .... sigh ... no thought, instinctive behaviour, and not clever understanding either but taught / learned-by-association behaviour. And I support Dennett's "precision engineering" problem solving metaphor. Now Packham needs Dennett's coding course.]
The point is, I mentioned my old maths teacher last when I reviewed Dan Dennett’s “Intuition Pumps” – where Dennett presents his laws of computing and registry programming exercise – the very same exercise Pearson had taught us 40 years ago. As I said (and meant) then, it should be compulsory primary school education [See Note *].
I could also have mentioned ex-colleague Siobhan from back around 96/97 – on a project where we’d employed a developer to create an information management solution, not entirely successfully, when Siobhan announced she’d researched some programming courses and would we support her in doing one or more. I wasn’t sure of the direct applicability to our current job, but supported the educational initiative – what the hell, go for it. Sadly our immediate management at the time was explicitly against it – even rather scornful of the idea.
More recently my own younger son, working in a not specifically IT related business, spotted some opportunities to extend the functionality of basic geographic layout and design tools with some information linking and data driven functions – and it turned out he had an aptitude to execute the idea in scripted code. Useful functionally, and naturally I’m encouraging him to develop it further but not necessarily, at least not exclusively, for the immediate application value.
Coding – can represent a skill at some given situation in time, but the core point is not to be a skill !! “Apps” didn’t exist x years ago, in x years time they’ll be superseded by Gocs (or whatever) – something we’ve never heard of or predicted. Programming languages and tools are evolving as fast as technological possibilities. It’s not a skill that can necessarily be applied to employment at the end of a course, or at the end of 7 years education. It’s knowledge about what computation is, a transferrable concept like understanding how humans function.
So what is computation? It’s a fundamental concept about how the world works.
But do we have any better understanding of computing than the audiences who switched on to watch Ian McNaught-Davis in the 1980s? I somehow doubt it.
[* Note - The rules referred to are "The Seven Secrets of Computer Power" - six "laws" you can learn from the registry programming exercise, and a seventh that says there are no more laws to learn. On-line PDF version here, or here at Google Books, and subject to a few minor technical errata by Dennett.
- SECRET 1: Competence without Comprehension: Something - e.g., a register machine - can do perfect arithmetic without having to comprehend what it is doing.
- SECRET 2: What a number in a register stands for depends on the program that we have composed.
- SECRET 3: Since a number in a register can stand for anything, this means that the register machine can, in principle, be designed to “notice” anything, to “discriminate” any pattern or feature that can be associated with a number, or be different between any number of numbers.
- SECRET 4: Since a number can stand for anything, a number can stand for an instruction or an address.
- SECRET 5: All possible programs can be given a unique number as a name, which can then be treated as a list of instructions to be executed by a Universal machine.
- SECRET 6: All the improvements in computers since Turing invented his imaginary paper-tape machine are simply ways of making them faster.
- SECRET 7: There are no more secrets!
Note that these are the secret and incontrovertible conclusions, but the point is to learn (to believe and understand) them through the Registry Programming exercise. In practice of course, a real group of people in a practical time-scale for running the exercise will only actually learn the first couple directly empirically, but having got the simplicity of the principles, the rest follows inductively and can be demonstrated by progressively more elaborate computer-assisted simulation exercises - where interest is piqued.
Once interest is piqued, of course the student can go any number of ways into "hey, I get computing why don't I learn to program what can be done with current tools and technologies?" to "hey, it's intriguing how basic those rules are and independent of any clever 20th or 21st century technology; I wonder what that tells us about how information and knowledge works more generally in the world?" or "hey, if I put those two ideas together, maybe I could learn something about how information and computation (or knowledge and brains) are evolving?" or .... maybe, just think.
All of which presumes that wise education is at least partly aimed at learning to understand the workings of the world at large, the world of humans that is not some disembodied objective world, and not simply about knowledge, qualifications and skills directly aimed at only 1/3 of student's future lives.