Replicate the past - the cause, the mechanism, or the effect?

October 23, 2011 at 05:17 PM | categories: kidscoding | View Comments

Meta: The next post in this category after this will be "what do I plan to do". I'll keep this post brief, unlike the last one. Sorry for the length last time, still finding my feet.

Recap: I've so far argued that part of the cause of kids starting to code in the 80's was really a catalytic effect in legtimising coding as an activity that yes, kids can do, leading to the creation of many books, tools (micros), and so on being created as part of a wider ecosystem enabling children to learn.

Replicating Mechanisms?

The thing is, it's worth remembering that these were mechanisms, and mechanisms legitimate at the time. As a result, this is kind my issue with Raspberry Pi. Now again, I don't want to do a downer on Raspberry Pi - it's a fun idea, and it has a lot of geeks excited. I've yet to hear anything to excite a child about it. Me ? Yes, I'd love to have one. I've got some grippers (along with associated servos etc) from my birthday, along with a few faraduino's and a tracker robot (which I had previously - in part because of building a catastrophene for my daughter) which would really nice to control with an onboard diddy computer. However, I doubt the tech savvy kid of today - who own a display with an HDMI input... - would be excited by it. (I'd love to be proved wrong on that though :-)

However, it assumes that the majority of kids don't have access to hardware they can code on. This is despite broadband takeup in the UK being at the 74% , and higher in households with children at 91% overall. ( OFCOM ) Any household with a browser, let alone broadband, has sufficient hardware to start coding. As a result, I don't think hardware is really the problem to attack.

Put succinctly, I think Raspberry Pi is replicating one of the mechanisms of the 80s, rather than the cause or the effect. This doesn't make it bad, but neither does it mean it's inherently good. It means it's a tool, which may have an effect. But despite its price, it's not cheaper than a PC donated from Tesco vouchers or Sainsbury vouchers (etc).

I can't see the kids being interested though - so by itself, it doesn't help me as an interested father...

Replicating Effect?

This is what lots of people are crying out for. For lots of different reasons. In order to replicate the effect, we need to examine the cause to reinvent new, more appropriate mechanisms for today. To do that, we need to do two things:

  • Look at the motivations of the past and especially of people today - the causes that did it last time ? What will make people do things today? Are they different ? How have things changed ?
  • Look at the ecosystem of the past, and the ecosystem of today.

If we simply replicate mechanics, albeit in an interesting and cheap way, we risk doing the equivalent of putting a typewriter in a living room and expecting that to be the way that children learn to type.

Replicating Cause?

I've looked at causes in previous posts, so here I'll summarise. People making micros wanted to sell them, saw children as key users, and made hardware affordable. The governments of the time seeing needs of UK industry to have a technologically skilled workforce. Arcade games (and similar) were growing in popularity and micros allowed this at home. Kids wanted to play games and share them with their friends. They wanted these games either very cheaply or free - through typing games in, finding and correcting bugs, and taping them. This also led naturally to customisation, new games and selling tapes. A fledgling games industry was burgeoning, and seen by kids as both fun and doable .

The UK had just had economic problems in the 70s which continued in the 80s. Parents, like always, were looking at "what's best for my child". Parents could see that this was a means of getting their children a better livelihood than themselves. (cf survery on page 11 of the computer literacy project report "pdf"). Teaching children about computers became clear as something which was considered a "Good Thing", and due to internal and external factors the BBC formed the Computer Literacy Project which legitimised this in the eyes of many.

I hope that's a fair summary, but it still misses 2 vital points:

  • It was within the reach of children, using tools made available to them, to write games, etc they could share with their friends, in terms of financial, technical, factors social, with educational support through media, schools, books and peers.
  • They had few legal ways of getting new games for free, or next to free, without writing code.

Barriers to Overcome

The interesting thing here to me is that whilst the following are all still true...

  • Children still seen as a key market, government interest, industry interest, games at home are played by kids and adults, kids still want to play, make up games, share games, strong presence in games industry, UK having economic woes, parents wanting best for kids, interest both within/without the BBC for BBC to do "something".

... I'm not really sure that the other points are still true, for a variety of reasons.

  1. Parents do not see value (or as much value) in children learning how to really unlock the potential of the power they have available.
  2. Children can get at an almost infinite library of new games for free, thanks to the existence of the web, and the many systems they use. Examples include fronter), (purple mash ) , club penguin , moshi monsters etc. (the last 2 use a freemium model and allow kids to play together)
  3. It is not realistically within the reach of the average child to replicate such games of similar power, without jumping over hurdles they may not be able, allowed or willing to jump over.
  4. Making games and sharing them is not seen as something doable. Let alone the idea (say) of making a game to sell at a school fete.
  5. It's not seen as fun by kids. (or most adults) I wonder how many adults view games consoles as computers.
  6. Kids are less likely to pick up a book to discover how to write code because a) those books no longer consider children a valid audience b) publishers don't get bookshops to stock such books c) libraries don't stock them d) kids would prefer to look at a webpage than a book anyway.

I personally think point 5 is a consequence of the way computers are used in schools today, and their usage is taught. Similarly a generation of people brought up to think that computers are things you browse the web, run word processors on, write spreadsheets on, and that's really the limit of their experience I think leads to number 1.

The fact that point 2 exists now also is a psychological barrier between the gratification now (play and chat) vs gratification potentially much later (make, play, chat). Even if they do overcome that barrier, the toolsets available to kids hit other barriers. Many parents see computers complexity as beyond them, the idea of risking the kid "breaking it", is quite frightening. (unlike the switch it off/on again of micros) There's risks from virii, and so on. This means that even if they're willing or able to jump over the hurdles of installing python, scratch, ruby, or similar they may not be allowed to do so (3). Then, even if they do jump over, they do so without any real support, this is in part due to point 6, but also due to the underlying problems that causes point 6.

Finally, the steps necessary (say) for a kid to be able to run an arcade at a school fete and sell games there (I'm sorry, I remember that happening in primary schools in the 80's) is now considered sooo far out of their reach, it wouldn't even be considered possible.

Turning this around

I think in order to turn this around, we need to re-examine the issues and opportunities that are in hand. One of these is that the computers available to kids today are more powerful than the supercomputers of 30 years ago. Another is the fact that kids are reading much more today than they used to (thanks to the web).

These include:

  • Educating parents of the value of computational thinking, and unlocking the power of the computers in their lives for their children's benefit. This to parents means not just freedom, but financial freedom.
  • Working with the fact that the web is the cheapest/easiest way of getting games and interacting with others. Working with the eco-system that they love today, including the club penguin, moshi monsters, cbeebies games, titter/mary.coms, and so on of the world today.
  • Making it realistically within the reach of children today to build, and share games and apps with their friends. Not only in practice, but also in perception, despite barriers of changing the local device.
  • Make it seem plausible to children and parents. Something they can do. Something that they can make a better life for themselves doing.
  • Making it fun once again. Learning lessons from things like Horrible Histories, etc about how to make "non-fun" subjects fun once again is a real opportunity.
  • Recognising that even if books did cover these things (and they should), that the role of books for many kids is taken by web pages today. Books were just a mechanism. (Much as I love books!)

All of this has to be done whilst at the same time:

  • Respecting the freedom of children whilst they're doing this
  • Recognising that the internet is here to stay
  • Not assuming that any one group or company, will achieve the goals by themselves.
  • Enabling kids to share their creations with others, and have them portable between companies. (code and data portability)
  • Recognising that this is happening in a computer literate world.
  • Fitting in with the modern approach of cross curricular teaching. (Much like the project/theme oriented schemes of the IPC )
  • Taking into account the modern world and where it will be in 2-5 years time, not where we were 30 years ago.
  • Recognising that much of computational thinking is of benefit beyond coding and is really problem solving skills

After all, the world of 30 years ago looks as old and archaic to the children of today as 1955 did to Marty McFly.

My next post in this category will describe what I plan to do. I'd like for it to be a part of the day job at work, but I'd be surpised. We'll see though. However, I have a strong motivation to do this at home anyway, and the ability to do it there too (albeit taking significantly longer), so I'll still be doing it :-)

In the meantime, any feedback on "turning it around" would be welcome :-)

Read and Post Comments

Why did coding at school level disappear ?

October 18, 2011 at 11:11 PM | categories: kidscoding | View Comments

As before, this post covers a fair range of points, I hope, intended to support my summary. If you just want though, you can skip to the summary.

In my earlier post Children and Computers I was outlined some of the key issues relating to kids and coding. There were 2 points I specifically mentioned that I think deserve dealing with first.

The first of these two I've already written about, and had some great responses. This post is about the second. I don't think anyone can claim to have absolute truth in these matters, since the UK educational system is not 100% homogenous. (Indeed, they still have the archaic divisive system of grammar schools and eleven plus in this area). However, I'm trying to describe things as I saw them both at the time and with the benefit of hindsight.

So, why did coding disappear at school level? Is that even the right question? Not really, so let's ask a better question : Why was 'computer studies' replaced with 'IT' ?

Where we left off

In my previous post I was talking about the early eighties - primarily when I was in the juniors at primary school. In days gone by that was called years 3 and 4 of junior school, these days it'd be called years 5 and 6. I talked in a lot about the environment that led to it being socially acceptable, and pragmatically beneficial for even a low income family to consider owning a micro. I summed up there one of the main reasons why kids learnt to code as being - access to free software (Free as in gratis for those who get antsy about definitions).

Again, like many things, at least many things were happening at once.

  • The BBC Computer Literacy project was in its hey day. Computers were going into family homes and schools. Programmes were inspiring people as to the possibilities these devices could provide - both on BBC and ITV. Interestingly, the BBC focussed on the less commercial aspects of computers, whereas ITV focussed on games. Both were complementary.
  • In schools, they started grappling with what they could do with computers in schools : how best assist with teaching. There was very little software for these machines, so usage was influenced by people like Seymour Papert, and in particular things like Logo. Whilst by today's standards, those micros were less capable than the arduino's and similar of today, they were also as powerful as the sort of computers that put people into space.
  • Programmes like The Great Egg Race were on TV (76-86 or so) - invention was part of the psyche of the time, and celebrated.
  • In homes, parents saw the opportunity for micros to give their children the opportunity for a better, well paid, job when they grew up. Bear in mind that this was a time of recession, after the recessions of the 70s, and millions of people unemployed. The idea that any kid could write a game and make a fortune from their expertise was something that inspired kids and adults alike. I suspect that most kids really thought "wow", whereas adults (used to longer term planning :-) saw the potential.
  • Kids saw the opportunity for free games to play with their friends.
  • Games were distributed on tapes which could be copied even at home

That's a pretty heady mix. Out of this, lots of kids learnt to write games to play with their friends, that people like their friends would be willing to buy, which led to success stories and a virtuous circle.

I want to argue here that this industry, this legacy is a side effect of the law of unintended consequences . Consequences of clear intention: let's educate the population to be computer literate. It's a fantastic legacy, but one that when the literacy project was started doesn't appear to have been an initial aim - they planned to make a 10 part series targetted at adults initially and weren't sure as late as 1981 who the audience would really be, and were thinking of targetting an even more niche audience. It's also also a consequence of all the other things that were clearly going on too.

Schools

So let's get into schools. This really means 2 things:

  • Computers and computing as a subject worth learning and in need of teaching
  • Computers as a tool for teaching and enabling learning.

These are two very different activities. The latter is where the bulk of the rest of this post follows, the former is an idea that really was ahead of it's time. Some people, even then had been way ahead of everyone else. For those who like me like books, even today, there's a great book with a terrible title - The New Media Reader. It has many seminal papers and extracts of seminal books. One of these is an excerpt of a book by Seymour Papert : Mindstorms Children, Computers and Powerful Ideas. This book was published in 1980 which itself seems early, but to give you a flavour of what it's like:

In the LOGO environment the relationship is reversed: The child, even at preschool ages, is in control: The child programs the computer. And in teaching the computer how to think, children embark on an exploration about how they themselves think..
...
This powerful image of child as epistemologist caught my imagination while I was working with Piaget. In 1964, after 5 years at Piaget's Centre for Genetic Epistemology in Geneva, I came away impressed by his way of looking at children as active builders of their own intellectual structures..
...
when a child learns to program, the process of learning is transformed. It becomes more active and self-directed. In particular, the knowledge is acquired for a recognizable personal purpose. The child does something with it. The new knowledge is a source of power and is experienced as such from the moment it begins to form in the child's mind.

Seen in this light, LOGO was always really designed to support the latter point of being a tool for enabling learning, but was mis-categorised by many as learning about computers and how they work. In practical terms, yes, it fits both categories, and yes, by definition by help with teaching 'computers' as a subject, but it also explains longevity - it is 44 years old, having been created in 1967. Yep, Seymour Papert was interested in teaching children using computers before man had stepped on the moon, when the vast majority of computers still used punch cards to be programmed.

As a result, given this long legacy, interest in LOGO was a given. People built turtle robots. People wrote LOGO interpreters for micro computers, including the BBC micro, and many a school ended up teaching preschool children to control little robots to run around the floor, either following a line, or drawing a line. Thing is, they didn't really know how or why to go further at primary school. If you think about it, that really makes sense - very few adults - teachers specifically - had had access to computers prior to the advent of the micro. How can we integrate it into teaching? How can we teach what's relevant to a 12 year old, if we don't know ourselves ?

That's not to say that people didn't try, but it wasn't really co-ordinated beyond these basics. There also wasn't any internet to enable bottom up co-ordination, and sharing of knowledge, let alone lesson plans. Heck, even as early as 1983, people tried creating custom versions of prolog (yes, prolog!) for children - microprolog - and found that yes, given the right tools children could learn programming and to their benefit. There were journals for teachers, published by Heineman with names like "Computers in Schools" and "Micro-scope". People even looked at teaching children COMAL...

The problem is, aside from a few far thinking people, the question of how to integrate with the curriculum wasn't really clear. Heck this was before the days of a national curriculum, which made it even harder. As a result, it shouldn't really come as any suprise that once people had used logo to essentially learn about geometry - leaning logo as they went - that the focus was mainly on "enabling or enhancing learning".

So what happened?

Well, if we take a snapshot in time, in the early part of the eighties:

  • Children in primary school learnt to use LOGO, essentially to learn geometry, though under the guise of "learning computers"
  • Children in secondary school, first 3 years, used educational software to enhance existing learning. This was often in the form of math related games. This was pretty painful horrid stuff that most kids, used to better games at home, really didn't enjoy. That's a rather important detail - they didn't enjoy "edutainment" software as it became called.
  • Then in the later years, there were CSEs and GCE O-Levels. It was common to select the subjects you would do, some would be new - a new language, technical drawing, woodwork, some would be old - maths, english, sciences. Both of these predated me, so it's worth noting that CSEs were targeted at a lower ability group, and O-Levels targetted at a higher ability group. As a result, it was possible to create a subject - computer studies - which was aimed solely at O-Level students - who could be assumed to be more capable.
  • At sixth form, you had GCE A-levels. Again, computer studies was a subject that was made available.

As you can imagine, being a new technology in an area that most adults had never encountered, there was a need for new teachers for these areas. (In anyone from the US reads this, secondary school is like high school, and sixth form is like seniors, except 2 years - 16-18 rather than than 1)

Schools, Computers and Programming in the early-mid 80's

Marty McFly started his time travelling, and Supergirl was writing code, baffling her computing teacher. (yes, really, rewatch it if you don't believe me)

As a result, the Computer Studies O-Level was like a simplified subset of the subjects you'd learn at A-Level, and the A-Level course itself like a simplified version of a polytechnic's first year course in computing. So, as a result, children doing O-Level computing would be taught how to use computers, broadly how they were put together and used, the basics of how programs were written. Heck there was even a programming project that kids had to write aged 15. In a time dominated by exams as the sole metric that in itself was quite unusual, but highly appropriate. This project would almost certainly have been written on a BBC Micro for most kids doing GCSE's. (Though clearly those with a micro of any kind at home would stand a better chance with this subject)

What this means of course is that in the early-mid 80's whilst not everyone in a school learnt to code - they didn't, and whilst not every year of the school at secondary school learnt coding, they generally shared a school with someone who coded, who could code. It wasn't something "adults did after university". It wasn't something "you did at sixth form, maybe". It wasn't something that you couldn't go an ask, you know, another kid, what it was. It was a part of life - at least for kids.

In a way that was also part of its downfall. There were many kids who'd learnt to write code who didn't see any value in doing that O-Level because they already knew the stuff . As a result, if you think about it, that means even then the curriculum failed children. It got them started at primary school, they had the means to carry on at home, and by the time the school was ready again to work with them it was too late.

Now, I can't give more detail about what that was like in secondary school in the mid 80's because I only started secondary school in 1985, so we need to skip forward a couple of years.

Schools and Information Technology, late 80's and onwards

Skip forward to 1988, and things have changed:

  • The family computing market is transitioning to 16/32bit Micros. The common computers in homes started changing from Spectrums and Commodore 64s to Atari ST's and Commodore Amigas.
  • Business computing was established as something that was common - PC Clones ran DOS (mainly) and were commonly used for tasks we'd recognise today.
  • The BBC Micro was a long dead machine. It was technologically inferior in almost every way to the dominant machines of the day.
  • Acorn established ARM - as a means of creating RISC based CPUs for powering it's new 32bit machines. Due to Acorn's historic dominance in the educational market by making sure that their machines interoperated with and in some cases ran BBC Micro programs, they provided schools with a way of "keeping up with the times", and simultaneously not throwing away their investment. Their primary machine was the Acorn Archimedes.
  • Macs were around, and highly sought after, but extortionately expensive, their influence though was felt through the fact that the Atari ST, Amiga and Archimedes all used a windows/icon/menu and pointer environment - or WIMP as it used to be called. Macs, as today, were heavily used in artistics industries.
  • Changes in education, and educational approach.

The point being is that computers were becoming categorised by usage: entertainment, education and work. They were being seen more and more as tools for fun, learning and doing business. Naturally, given a new generation of tech was in place, people started realising that they hadn't really thought about "how do we teach people to be ready to use these things in business.

So now we hit the final piece of the puzzle - changes in education. In 1987, the last set of people ever took their CSEs and GCE O-Levels - with both qualifications replaced by a new fangled qualification called "the GCSE". Now you can convince me of many things, but you can't convince me that the name GCSE isn't derived from going GCE CSE and smashing the two together until you get something that roughly fits.

GCSE's were designed as a piece of social engineering. It's easiest to be anti-social in describing this so I will be. CSEs were subjects and exams taken by thickos, and GCE O-Levels were subjects and exams taken by know it all brainiacs. (Being offensive to both groups seems equally fair, and simpler than thinking of a politically correct approach)

To understand where that comes from, in the post war period they formalised the idea of grammar schools (for know it all brainiacs) and secondary modern schools (for thickos) sorted by a rather offensive test called the eleven plus. As noted there's pockets of the country that this still exists in, and I find it rather sad that I currently live in one. Primarily because it's wrong to label someone for life as a thicko simply because they were born at the wrong time of year making 3 short exams harder for them than for people almost a year older. (The eleven plus thing has similarities to the hockey player thing described by Malcom Gladwell in his book Outliers) As a result, the thickos got one exam, the brainiacs got the other.

Now this was considered, rightly in my view, deeply offensive, wrong and for lots of reasons that Outliers makes sense of (IMO) pretty dumb. This led in the 60's to the creation of the comprehensive school system where everyone in an area would attend, and have equal chance to shine as they went through school - rather than relying on a brief test at age 10 or 11. This led to a change in general ideology whereby 20 odd years later it seemed like a good idea to stop labelling people as thickos or brainiacs in terms of what exams they could do.

Thus the GCSE was born - a single grading structure to cover everyone of every ability. This adds in a challenge - every GCSE provided by an exam board was a subject that had to deal with the varying levels of natural ability you find in the world. Everyone's crap at something right? Most of use are pretty good at something. Where does that leave Computer Studies ? A subject that includes programming, that as programmers agree is a hard thing. It puts it on shaky ground.

That's not all though.

1988 also saw the introduction of the national curriculum. Now, there are again lofty positive goals behind the national curriculum, and I'm not really here to talk politics. I know that it's both liked in ideal and hated in practice by many, and also vice versa.

By the time I took my GCSEs in 1990, they'd been established for a few years - our year was the first year to have been taught from the first year of seconday school all the way through to GCSE's with a plan of education that was designed for GCSEs. This means we also saw some of the teething issues - though not the kind the poor buggers of 1988 and 1989 had to deal with. We had all fresh ones. It also means that we were amongst the first group of kids to have our exam results comparable across the country. A GCSE grade A from a south cambridgeshire exam board covered the same curriculum as a GCSE grade A from Cumbria. At least that's the theory, not sure about the practice.

Now this is all well and good, but this led inexorably to the idea that subjects taught should be as widely applicable to as wide a range of abilities and due to the fact that it was now possible to rank schools subjects taught should lead to reducing the risk of making the school look bad. GCSEs slowly led to a situation whereby they became a means of measuring school quality rather than student performance, or student learning. (Why else would numbers passing, and passing at higher grades, increase every year - people aren't getting inherently smarter after all)

On the ground, in schools this is where it really hit. Our school ceased teaching computer studies in 1988. So when we started our GCSEs in 1988 (they're a 2 year course for people outside the UK, so for me 88-89, 89-90), Computer Studies wasn't even available as an option - it was information technology or nothing.

To get what a bummer that was for me and people like me, betwen 1986 and 1988 we'd had a Commodore Plus/4 (me writing a basic logo implementation on the ZX81 I think had been noticed and the plus/4 was for us to grow into, and the plus/4 was sold cheap) I'd learnt enough from all those usborne books and computer magazines to be able to write my own games, move sprites around, manually create bitmaps, encode those as binary, and enter that as hex. I'd learnt 6502 machine code (which the 8501 used), to the extent that I'd managed to implement my own memory manager and task switcher such that I could run 2 basic programs side by side, each having half the screen, in a form of basic pre-emptive multitasking. Not bad for a 13 year old kid. So then I'd outgrown that, and my parents upgrade me and my brother in the summer of '88 to an Amiga 500. Looking back, I'm not sure how they afforded that, but I'm certain it was on credit.

So then I start my GCSEs ... and we can't do Computer Studies, we had to do information technology instead.

What was IT? Well, that was as it is (largely) today - about what computers could do, and what they were used for. Not only that it was evaluated solely on coursework - no exam. You had to demonstrate that you could drive a word processor (albeit one on RISC OS rather than "MS Word" today. You had to show you could drive a spreadsheet. And so on. This actually makes sense given the design features of the course:

  • Something which anyone of any ability can pick up
  • Is a collection of life skills which someone will need to learn in order to be productive in the future
  • Makes good use of the hardware available.

For someone who has a pretty good idea of where to start writing the apps though (or at least thinks it's possible) it's a rather sad thing.

Now as noted, GCSEs were new. Evaluation of people based on coursework not exams was new. Hardware was still expensive. People had paired up on their IT coursework because in an IT class there were enough machines for about 1/2 the kids. Not only this our school had had a miscommunication with the exam board - they thought working in pairs was fine, the exam board said "no" and gave the school 3 options - all the kids redo the work, each pair split the work in half and each kid redo half the work, or one from each pair take the coursework and the other redo it all.

I asked our examinations tutor if instead I could be entered for the computer studies GCSE. I knew that it had a large exam element - 50-70% still and a large project worth 30-50% of the mark, but was also confident of my abilities. My exams tutor negotiated with the IT teacher who essentially said "If he thinks he's good enough, I've got last year's papers here, let's test him on that to show him it's not practical". So that morning, without warning I was asked to sit the previous years papers, and marked accordingly. Given I'd've gotten an A on the basis of that, they really had to enter me for the exam as a result of their balls up. (The IT teacher was called Mr Balls ironically...) For my project I wrote a music paint program. (You quite literally painted notes) I'll let you guess how it all turned out... :)

Why was 'computer studies' replaced with 'IT' ?

Anyway, whilst that's all a rather odd thing to discuss here, it does illustrate quite keenly in my view some interesting points. First off, the fact that the computer studies GCSE existed, but that the school refused, even that early - late 80s - to offer it. The fact that the GCSE still had a programming element then. That the school resisted requests to do that GCSE, even though it meant no extra teaching. The question you have to ask really there is why.

I've periodically thought about that, and whilst today I think it'd be because they'd be loathed to risk low grades unless they had to. I think there's elements of practicality - if everyone has to do a programming project, and there's not enough machines then you simply don't offer it. Then there's also the fact that people who could do it, simply chose not to, because they saw little value in being bored for a couple of years in order to simply get a piece of paper.

However, I think the real issue really boils down to is this - there was 1 IT teacher. 600 children (20 classes I guess), That's a pretty large load, and the last thing you want there is too much customisation. 1 kid who you can just leave to get on with it, who can talk at your level? That's probably OK and the limit, but offering 2 different GCSEs would've doubled an already heavy load. You can buy more machines, or split classes, make them smaller, timeshare, heck even get parents to buy them by shopping at a particular supermarket of the day.

You can't however magically create more teachers with the knowledge.

And so it all came down, I think, to a choice: despite sufficient kit, given limited human resource and the fact that everyone has to take IT, do you offer the more technical (and IMO creative) aspects of computing or just train them to use the tools and packages of the day. (At least then they still had to teach principles rather than MS Office...). Do you favour a subset of those interested in making stuff, or the majority to be able to use the tech.

Since in schools a teacher's time is actually the scarcest resource, and the fact that bad grades make the school look bad, and that risky "harder" subjects have higher rates of low grades and alienate people, why wouldn't you drop Computer Studies? If you do, this does mean you drop programming from the curriculum, and by this time next year you'll be able to get all the young women who took computer studies at a-level and put them in a room together.

As a result, due to a collection of reasons that make sense in isolation, we now have a world where programming is not taught on the curriculum, and we are creating new vicious cycle of generations of adults and parents who have never known anyone as a kid writing software. Which is sad, since it probably traces back to a decision to try and make things fairer, more relevant and more useful - by throwing the baby out with the bath water.

The real reason though is that programming, computer studies, and the wider ideas of computational thinking (as we call it today) simply did not fit it with the curriculum of the day. These days, again, teaching it in complete isolation would be fraught with the same consequences - it would be cut as an option when resources are tight.

If however it could boost and augment the capabilities of the child, of the teacher and of the school - if it could be treated by them as a superpower granting exoskeleton, then it'd be more likely to be adopted - especially if it was in a cross curriculum way.

In a world where businesses are code, trading on the stockmarket to make real money is algorithm design, where artistry is the creation of physics models, where cartoons are built using rendering pipelines, where extras in CGI films are code, I think I'm with Seymour Papert, who I'll give (almost) the last word:

As with writing, so with music-making, games of skill, complex graphics, whatever: The computer is not a culture unto itself but it can serve to advance very different cultural and philosophical outlooks. For example, one could think of the Turtle as a device to teach elements of the traditional curriculum, such as notions of angle, shape, and co-ordinate systems.

... so why stop there ?

Read and Post Comments

fwd: BBC Micro Project - Invitation to Contribute

October 18, 2011 at 07:55 PM | categories: python, kidscoding | View Comments

This post is being forwarded round lots of people at the moment, and I don't think it hurts to repost it here as well. My position relative to it is one of enthusiastic cheerleader who'd like to get involved and have opinions of my own. However I'm sure Keri would appreciate your thoughts and opinions - the more people this reaches, the better.

From: Keri Facer <K.Facer at mmu.ac.uk>
Date: 6 October 2011 11:54:36 GMT+01:00
To: Keri Facer <K.Facer at mmu.ac.uk>
Subject: 'BBC Micro' Project -

Hi all

Thanks for expressing an interest in informing a possible new BBC Micro Project and thanks to all of you for the comments you have already sent - apologies for the group reply, but your help with the following would be very much appreciated!

Best wishes

Keri

Invitation to contribute

The BBC is exploring the possibility of developing a new ‘BBC Micro’ project to encourage an interest amongst young people in computers, computational thinking and computer science. Manchester Metropolitan University is working with the BBC to draw on the views of teachers, lecturers, computer scientists, programmers and others with an interest in computational thinking in the UK today. We would appreciate your assistance in helping to inform the early stages of this process.

First, a bit of background:

In the early 1980s, the BBC started what became known as the BBC Computer Literacy Project in response to predictions of a coming microcomputer revolution and its likely future impacts on UK economy and society. The BBC based its project around a computer and programming language capable of being used to perform various tasks which would be demonstrated in a TV series The Computer Programme. The list of topics in the TV programme included graphics, programming, sound and music, controlling external hardware, artificial intelligence and teletext The computer selected was the Acorn Proton, which was then re-badged the BBC Micro. The government funded the purchase and distribution of 12,000 of the computers to UK schools for use alongside the TV programme. In turn this stimulated a significant growth in domestic use of the Micro.

Today, there is criticism of the ICT curriculum and the teaching of programming (or computational thinking) in schools. The Royal Society, amongst others, believe that design and delivery of ICT and computer science curricula in schools is so poor that students’ understanding and enjoyment of the subject is severely limited. In response to this the BBC is exploring the possibility of developing a project with the specific purpose of encouraging an interest in computers, computer science and computer programming amongst young people.

We would like to know your views on what the BBC could do in this area. In particular, what you would see as the desirable equivalent of the BBC Micro and The Computer Programme today? What technologies and processes, what tools and skills would such a project need to develop? In particular, we would appreciate answers to the specific questions below

(NB, we use the term computational thinking rather than computer science, programming, or ICT skills because we don’t want to assume one particular view of what is important in this area. That, indeed, is what we want your views on).

Key questions

  • What aspects of computational thinking (e.g. understanding how ‘computers think/work’, using programming languages, understanding systems thinking or other issues) should a BBC Micro 2.0 project focus on? What do you think people should be able to learn to do with computers today? Why?
  • What are the best ways to support and encourage those young people (aged 9-14) with an interest in this area, to develop their interest and skills in computational thinking ? Can you suggest any examples of resources or activities that you know of?
  • What are the best ways to support and encourage young people (aged 9-14) with other intereststo develop an interest in and understanding of computational thinking? Can you suggest any examples of resources or activities that you know of?
  • What are the key obstacles to learning computational thinking and how might these best be overcome?
  • If you were to make hardware available to schools in the same way as the BBC Micro in 1981, what sorts of hardware would you think was essential to develop the skills and understanding needed?
  • If you were designing a tv programme today that sought to have the same effect as The Computer Programme in stimulating interest in the most important new area of technological development, what area would you expect it to address and what topics would you expect it to cover? Would it still be in the field of computer science? What areas?
  • Do you know of any projects, resources and activities that would be examples that this project could learn from?
  • Do you have any other comments on the idea of a new BBC Micro project?

Thank you for your time and your help – do let us know if you’d like to be kept updated if there are further developments.

Keri Facer (MMU)

Howard Baker (BBC)

Nicola Whitton (MMU)

Via Nicholas Tollervey / Python UK mailing list.

Read and Post Comments

Dennis Ritchie: Goodbye World

October 13, 2011 at 10:13 PM | categories: memorial | View Comments

RIP Dennis Ritchie

Dennis Ritchie never was a household name and probably never will be. However, he was the inventor of the language C, and one of the key inventors of the operating system Unix. These two inventions are integral to the world as we know it today and completely invisible. In all likelihood you have a derivative of Unix (or Unix-like system) embedded inside your broadband router, inside your PVR, and even inside your TV. Almost every major website you access today sits on the foundation of Unix, it underpins the infrastructure of the internet at every level, it carries your emails, it carries your facebook messages, your tweets and so on.

The vast majority of every other computer based system you use, and by that I mean anything that contains a microcontroller upwards was in all likelihood coded in C, built using systems that use C, or designed on systems written in C. That scripting language you're using probably uses a C based runtime. That browser ? C based. That iPhone with the objective C based apps, or C++ based apps - again C derivatives.

What about non-programmable things? Like watches, or similar ? Well, lots of those are pure hardware only. No Unix, no C. Clearly no influence ? Well, no actually, lots of influence. One of the major languages used in the design (and implementation) of hardware is a language called Verilog. What was one of the (creditted) design goals of Verilog? "The designers of Verilog wanted a language with syntax similar to the C programming language, which was already widely used in engineering software development.". Yep, because C was so successful, useful and portable, they wanted a version of it that worked well for designing hardware. OK, the resulting language does look very different, but that doesn't mean that the inspiration wasn't there.

So, one way or another if you're using something electrical that's even vaguely "intelligent", it's been touched by the influence Dennis Ritchie, directly or indirectly. We're richer for him having been with us, and poorer without him.

Read and Post Comments

Why did kids code in the 80's?

October 11, 2011 at 11:42 PM | categories: programming, kidscoding | View Comments

Caveat: This is my view. Your views/memories may be different. Please share them :-)

The Shark

They say that those who forget the past are condemned to repeat the mistakes of the past. That's all well and good, but there's also the idea that if you watch Jaws and think the reason it succeeded was "shark", then you might think adding sharks always improves a thing. Sometimes remembering the past is fraught with missing the point.

This is why I raise this is the idea "Why did kids learn to write code in the 80's?". Some think it was due to the BBC Micro. Some think it was Sinclair, or Commodore, or Apple or Atari. There's a dozen possible answers to the question, and I'd be interested in hearing why you started coding in the 80's as a kid (assuming you did) in the comments. It was when games like David Braben's Elite took to the space ways, when small computers rode ontop of robots solving mazes for the first time, when men leapt of quantum leaps over bad ideas, and many more cliches. In amongst all this there were some real opportunities.

However, the reason other reason I'm picking the 80's is because they're viewed today through the rose tinted goggles of history, and because it's when I started coding. I'd like to argue that in terms of the home - where people really learnt to code - the BBC Micro was in fact the shark, not the story.

The era

So let's pick a rough date - say 1983. I would've been 9 (going on 10) or so, living in a caravan, on the outskirts of 3 villages in cambridgeshire, a year after my parents had done the whole Good Life thing (which was their way of working round the lack of jobs when 4 million people were unemployed). My bedroom was 2m by 1m. Suffice to say by UK standards we weren't rich, but we were happy :)

Back then, you could get a computer - a ZX81 for £50, and then lower as other better machines came on the market. It wasn't the world's best computer, and an arduino today beats it hands down, but it was a real computer, and with a 16K RAM pack it could play a mean game of chess. Probably the next up the food chain was the Commodore Vic 20 for another £20-£30. The ZX Spectrum was pushing the £99 price bracket depending on model, and Commodore 64 was getting towards £130 or more. (My memory is rather hazy) To put this into perspective, the BBC Micro was £299 and £399. A ZX81 would also, work on a normal television - even a black and white portable - whereas things like a BBC Micro generally had a composite monitor attached to them.

However £50 was a lot of money then. To give an idea of inflation, a monthly magazine that now costs about £4.50 costed 60p then. That means in today's money a ZX81 then cost the equivalent of £375, and a BBC Micro costed (in today's terms) around £3000 (or £2250 or so). Given the economics of the day made putting food on the table hard each month, why would we have a computer ? Even a "cheap" one ? Part of the reason is simple - parents of the day - like parents today - want the best they can afford for their children. You'll always hear many families scrimping and saving and putting aside just enough to do well by their kids. Aspiration is unchanging and universal.

That's only part of the reason though. There was an awful lot else going on. As hinted at, 4 million people were unemployed, a recession was happening, money was tight.

What else happened?

Influences

Well, Doctor Who for starters. In 1977, the Doctor gained a new companion in a story called The Invisible Enemy. In a story reminiscient of the recent one with the teselector, the Doctor was shrunk and went inside his own body, complete with fighting white blood cells. As a story it sticks in my mind, even though I was 4, primarily because as well as "explaining" the immune system it introduced a new companion - K9.

K9 wasn't created by the Doctor though. K9 was created by a human scientist - Professor Marius - on a space station because he missed his dog. For me that was the start of my interest in robots - since K9 was a human creation and therefore possible (from a 6 year old's perspective). This was followed by C3PO, R2D2, and other random "greats" (from a small kid's view) like Metal Mickey.

In early 1980, Doctor Who Weekly magazine started, and for a 6 1/2 year old something really fun was printed - "complete" plans and schematics for K9 were printed. Unsurprisingly then, I tried to build K9. Unsurprisingly then, I failed. I was definitely hooked on robots at that point. I read book after book on robots.

Unlike today, they actually made books for kids on robots - that you'd find in bookshops anyway. One of them, made the point that robots were programmed. They were controlled by a program written by people. It described essentially (in the broadest possible terms) what would now be called top down stepwise refinement. Over time my interest switched from robots to programming.

Kids, Computers in the 80's and the BBC

Not only that, this was a time when computers and kids was very much something which mixed. This is really where the BBC comes in, in a piece of the puzzle I only really understood in recent years. In my few years at the BBC, I've been lucky enough to have met a handful of those behind "The BBC Micro". However, the BBC Micro was really the tip of the iceberg for a more important project - the BBC's Computer Literacy project. The linked PDF (link found via Diane Coyle's blog) describes the project over the years of 1979 to 1983. In others words the crucial years leading up to the point where I personally started learning to code. That helped form the environment that I grew up in and learnt to code.

Not only that but the environment that many of my peers also grew up in.

Who does that project credit with the large take up of computers in the UK? Sinclair. This tracks with history as I remember it. A few years later when I was at secondary school around 86-88, as part of a maths project were all had to run a survey and produce stats on a subject, so being a geek even then, I ran a survey on home computer ownership in the school. Out of the surveys returned, a significant chunk had a home computer, the vast majority were ZX Spectrums, followed by Commodore 64's. There were then mainly Vic 20's. A couple of Commodore Plus/4's, a Commodore C16, a couple of Oric's (Oric 1 and Atmos) and a Jupiter Ace (Forth!). Out of the 100-150 people who said they had a home computer, about 2 or 3 people had a BBC Micro.

So the BBC Micro's contribution in terms of hardware was remarkably small at home. However, there was a target of at least one per school or something like one per class per school, which is where the impact in the classroom happened.

So, in this great heyday, kids learnt programming in schools, and kids learnt to write games, and develop software ? Sounds good, but no. That's not the case.

What did we learn? We used educational software, we learnt a bit of logo to control a robot turtle, and, um, things pretty similar to what we actually still get today.

So how the hell did we end up with an industry and heritage that (rightly) credits the BBC Micro so heavily? For one very very important reason - it legitimised micro-computers in the eyes of the mass public, in the eyes of it being an educational tool, in the eyes of publishers and most crucially in the eyes of parents.

There were TV programmes - such as those produced by Dave Allen (who has been welcome around BBC R&D since, and I've had great pleasure to be his assistant recording open days a few years ago) - which quite literally brought computers into the living room saying "hey look, they can do this!". There were reports of children writing games, and making thousands by simply recording them onto tapes and selling tapes. These things encourage a small cottage industry and that cottage industry bloomed.

Heck, if you're 8 and you hear that a 14 year old has made £2000 (in money then - the equivalent of £15000 today) for simply writing games, it makes you sit up and take notice. So do your parents.

Similarly, I'm pretty certain that without the BBC computer literacy project specifically legitimising micro computers that I wouldn't've had access to books like this:

And without books like that, I would've been left as a consumer using a ZX81 (if I'd been lucky enough to get one), rather than a creator. I'm pretty certain that it's due to the BBC Computer Literacy Project acting as a social and political catalyst in a time of economic hardship, that led to this environment.

Why kids coded in the 80's

So, given all that, the reason kids coded in the 80's was greed? No. The reason kid's coded is because they learnt it at school? Not really. Why then?

One thing about most of those books above is that they are full of listings. Not dry descriptions of "this is how a computer works", but pictures using robots as a metaphor for how things work, but also showing how computers and programs work, by providing programs for a child to type in. Given that when I was a kid I got these books out of the library, what did these books, programs, listings and games represent?

  • Free games
  • Free tools for modelling systems
  • Free tools for playing with graphs
  • Free tools for learning and understanding complex systems through play

Today, those 4 usecases are taken by the web. However, in the 80's the reason why you learnt coding really is because those books, bless them, had typoes. They had to deal with variants of BASIC on various systems, and in order for you to get your free games to work, you needed to make sure you entered the right variant. Most of the pieces of the puzzle were done for you, but not all, not quite.

From my perspective the real legacy of the Computer Literacy project was in legitimising micro computers, inspiring people to learn and encouraging the creation of resources that kids would want to play with to come into existence.

In case you're wondering the book "Computer Programming - BASIC for beginners" was the first programming book I ever owned. I didn't own a computer, but a friend of mine had a Vic 20, so I went round his house to type in the space invaders game to play round his.

Yep, back in the early 80's programming was social by default because you wanted to play games with your friends, and didn't have the money to buy the games.

It's really quite simple - kids learnt to code because they wanted to play and to play with their friends.

Kids still want to play games, and still don't want to be limited to what they can buy.

They still want to create their own games to play with their friends. To my mind, that's a window of opportunity.

A Modern Computer Literacy Project ?

And all this really makes me ask:

  • What is it that the BBC could legitimise in the eyes of parents, politicians, schools.
  • What would a modern BBC Computer Literacy project look like?
  • How do you make it relevant to a world where 75% of homes have broadband, and 25% of children in the UK live in poverty.

Personally, I think what we really need as a society is:

  • The useful aspects from computational thinking used to boost the curriculum
  • Concrete usage of that through instructing programmable devices (not just programming)
  • Make it work in the modern school

That last point is actually quite complex, since there are 8 main classes there:

  • Well equipped schools, with knowledgeable staff and well maintained kit.

And each of the other boolean options there where the inverse of each is:

  • Poorly equipped schools, without knowledgeable staff and badly maintained kit.

After all, these days kit is in most schools - either through the schools (or LEA) prioritising computers, or through schools getting Computers For Schools vouchers from Tesco and Sainsbury's...

The real killer point though is how to actually interesting children, today in today's environment, in learning to write code? Where it fits in with their personal desires and needs. With their homework and curriculum? With, quite frankly, the kit they DO have at home or school, today ? When they're used to 3D gesture controlled games, online social networks, and rich computer graphic systems? A world where even Blue Peter shows children working with dev teams to create Apps for iPhones.

I have no doubt that these questions all have answers and are all tractable.

I do think the questions need posing and answering though.

Anyway, comments welcome, and if you started coding in the 80's as a kid, I'd be curious as to why you did so. After all, I'm basing this on what I saw and I clearly wasn't everywhere, and people didn't blog then either :-)


The monthly magazine I'm using for inflation is Doctor Who Monthly magazine. It's not a bad metric because it's something that kids then and kids now would want to buy. And yes, it's also a terrible metric, but it's to give an idea of relative costs.


Later edit - it's struck me that someone could read this and think that I'm belittling the achievements of the BBC Micro - I'm not, not even slightly. What I'm saying is that the Computer Literacy project (which it was a part of) is the thing to not lose sight of and the thing to learn from. Now that I know what the BBC is like internally, it's more incredible to think it happened at all, let alone as successfully as it did.

Read and Post Comments

New Blog

October 09, 2011 at 10:42 PM | categories: blogmeta | View Comments

Well, after playing around with a bunch of different blog engines, I've switched hosts from yeoldeclue.com to sparkslabs.com, and switched blog engine from a home grown file based one to a file based one which works the way I'd want a blog engine to work if I had the time and desire to write one - Blogofile.

I've migrated all my old posts here, but none of the comments (yet). I may move the comments at a later point in time. I've also copied over a couple of facebook notes that I think are worth coping over.

Why sparkslabs ? Well, sparks.com was taken many many moons ago, and it just seemed nice to have an URL with my name in. After all if other people create services which have my surname as their name, why not? :-)

The reason for kicking my blog back into gear is because I've got a bunch of opinions which people ask for, and would be better put on a blog for other people to comment on, critique and improve (after all, I don't claim to be correct, just hope to be), and putting them here, rather than behind a privacy wall seems more appropriate - it's a foil to my twitter account I guess :-)

Anyway, if you came here direct from a tweet, the root is back here.

Read and Post Comments

Children and Computers

October 09, 2011 at 10:42 PM | categories: programming, kidscoding | View Comments

This is likely to be the first of a few posts on this theme.

One of the common memes going around the tech industry at the moment is "Kids don't get to do programming, oh the horror!". There's a petition to start teaching programming in year 5 at primary school (9-10 year olds for those without a small child). There's been various comments lamenting the death of the BBC Micro in the eighties and a lot of rose tinted glasses about what it achieved, and why. To that end some people think that lack of hardware is the problem, and have started a project called raspberry pi to try and make some affordable hardware. Heck, even hoaxing hoaxing a receptive audience (and a non-receptive one) about a BBC codelab has happened, as a means of trying to get something started. Lots of people think "the BBC should do something". (Consider "why?" for a moment...)

Getting my cards out

I don't think this lays all my thoughts on the table, but it's a start:

  • I agree that programming - or more generally computational thinking needs to be on the curriculum more . (much more)
  • I've signed that petition - you should too. It's something that is a very good idea.
  • The Raspberry Pi is in my opinion misguided, but I'm glad they're trying. Geeks like to throw hardware and software at social, political and economic problems. That rarely works until you've solved the social, political and economic issues. However, I concede some of these things are chicken and egg, and if you can't make an egg, maybe try making a chicken.
  • The hoax thing was a huge mistake. I've told the hoaxer this directly, but also encouraged him to keep going and that I'm sympathetic to his ideals. Anyone who cares that much is my friend as far as I'm concerned.

I don't think people have thought about the why, nor the what hard enough though. (Let alone the who, where, when or how)

Myth: There's no programming in schools

After all, it's a myth that kids don't do programming. Geeks latch onto this, very easily, and then say "it's all bad". However, children do do a little programming, and then they stop, which personally I think is a bad thing. Indeed, the way computers in school appears to be taught is as follows:

  • Infant school, in year 2, they learn to control a basic turtle type robot using either buttons + memory, or a cutdown version of logo.
  • Secondary school, they get taught to use some office applications
  • Sixth form, depending on which one you go to, you may get taught to program a spreadsheet or database.

It's very easy to attack this, but counter productive. After all, do you want to get rid of:

  • Infant school, computers are used as a tool to explain geometry
  • Secondary school, they're taught essential life skills regarding using a piece of technology. This is akin to being "taught" Art but not taught to stretch your own canvases, nor make your own paints.
  • Sixth form, advanced usage of applications for automation of basic tasks

I'd expect your answer to be "no". So rather than jump straight in with "how do we get more coding in the curriculum", let's consider:

  • Why did kids in the 80's really start coding?
  • Why did coding drop off the curriculum ? Why was there a change from "Computer Studies" being about building things (~'88/89) to being about using computers ?

Programming is Hard

Programmers really like to say, a lot, that programming is Hard. And yes, that's Hard with a captial H deliberately. If you're in charge of setting a curriculum, and you know there's university courses where people start there and learn programming, you might reasonably go "well, we don't teach rocket science to children, nor mathematical analysis from formal axioms and formal proof to kids, so leaving programming until later makes sense". So given that, why the outcry from many a developer?

After all, you can't have it both ways you say. People simultaneously make these two comments:

  • "It's difficult, really difficult, listen if you think it was difficult to program your microwave oven to roast a chicken, boy let me tell you how hard it is to write a program that goes ping"
  • "Why isn't my 8/9 year old being taught to write programs?" (When their 8 year old doesn't yet know their times tables, how to spell properly or basic punctuation...)

Otherwise rational and skeptical programmers will miss the logical schism between these two points.

Why am I, as a parent of 2 children (girl and boy, 8 and 9) anxious that they should understand the fundamentals of programming? Passionate about the subject even ?

Well, for pretty much the same reason we teach children about action and reaction, the same reason we teach children about soda bottle rockets, the same reason we teach basic maths, basic maths principles, the core ideas of science, the basics of artistry, the basics of poetry, how to structure stories, essays and so on - because these become the cores of tools that enrich the lives of our children.

Ask an 8 year old that if they could build anything on a computer, what would it be and you'll get a dozen different answers. However, some commonalities I've noticed:

If shown that hardware can be played with:

  • I want to make a games console (then describe something like a DS)
  • I want to make a robot cat
  • I want to make a robot that can bring you cake. (When confronted with a robot hand)

Reality : Children are taught computers, but only at a crippling level of use

I think the reason why geeks really get annoyed that kids don't get to learn to write code, isn't because they expect all kids to write code. It's because we're teaching them to be cripples. We're teaching them that these exciting, magical devices are non-exciting black boxes and all they can do is edit documents, play with existing apps and play existing games, and chat to their friends.

Computers, at their best, act as intellectual augments. They augment our intelligence as a means of allowing us to make better predictions. They augment our abilty to create through the wave of a mouse, a swish of a gesture, through typography, through mixing, through doing and undoing, through being able to play with ideas in ways undreamt of 100 years ago. They allow us to create amazing films which would take a cast of thousands or hundreds of thousands to act, or years to animate by hand. They allow us to replicate our intelligence into devices so that we can do many things at once. They allow us to share our thoughts, feelings, our loves, our hates, in ways that enable us far greater support and sympathy from people we could never have known otherwise.

Not only that in order to write code, you need to be able to understand how to break a problem down into manageable chunks. How to delegate behaviour and actions in replicable ways. In short, you learn the tools for solving problems. You learn tools for understanding, really understanding a system. You understand how to pitch ideas at a level that needs to be understood. The reason for that is because you constantly do that when writing code. You abstract this concept away to this. Generalise a principle of behaviour to that. Question assumptions to get to the core of an idea. How do i understand the brain? Let's model a neuron and find out what happens using many.

Simply learning to use applications is the same as learning how to add up, subtract, multiply and divide. It's like learning how to write words on paper, use adjectives,ad-verbs, nouns, sentances. For many in the world those are the basic core skills. However, learn to use a spreadsheet properly, and you can juggle household finances, or count calories. Learn to use a database and you learn more skills. Rather than just use a blog, you start being able to script the blog, so the computer starts doing the work for you. Start teaching the computer to do things that you know how to do, and you start freeing up your own mind for other, more interesting things.

The real motivation

Teaching kids to code gives them tools to augment their own intelligence and intellectual capacity. It allows them to solve problems in more refined and mature ways. It allows them to experiment and create things their grandparents could only dream about. It allows our kids to have a better life than those of either our parents or hopefully ourselves.

It's as vital today for children to learn to create code now as it was a pre-industrial society to know how to grow your own vegetables, how to fish for fish, how to bake cakes, how to make a chair, or bed, or table.

Without learning these skills, they'll be left at the mercy of those who do have them, and in a world dominated by code for getting our food, for transportation, for managing the economy, for sharing information, for protecting privacy, for creating art, films, entertainment, music.... in a world where in a "free" service, the consumer of the service is the product, do you really want your children growing up simply to be products and consumers of products, or the builders, thinkers, dreamers, makers, lovers, entertainers, singers, educators and creators ?

I'd hope for the latter for my children and I suspect many others would too. In the coming age, being able to code - to be able to create controlled automation of intellectual tasks - is going to be a vital skill. In the past intellectual augmentation simply wasn't possible, now it's critical, in the same way that education became 100 years ago.

It's also fun.

That's my motivation, what's yours ?

Read and Post Comments

Waterfall method was a mistake - from start to finish.

October 09, 2011 at 10:32 PM | categories: software engineering | View Comments

This is a repost of a facebook note I wrote last november, but I still like it, so reposting here

The waterfall (& big design upfront generally) method has been debunked as a good for a long time now. However, what's not generally known is that it was originally a "grandiose" strawman method created to explain the worst possible way of creating a system, and then to explain how it goes wrong, and possible solutions. In essence rather than the paper advocating waterfall method, it advocated (essentially) iterative cycles leading to better systems based around working closely with the customer.

The paper was misread by US military procurement as advocating the approach, and became defined as the way of managing computing projects when bidding for US military funded projects, and hence viewed as a stamp of approval..

The only way someone could misread the paper that way is simple - by only looking at the diagrams and their captions, and in particular just figures 1,2 and 3.

This URL describes quite well how the mistake and misreading came about: http://pascal.gugenberger.net/thoughts/waterfall-accident.html

Original paper is here: http://www.valucon.de/documents/managing_softwareprojects.pdf MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS. Dr. Winston W. Royce

The irony of the original paper is this: it posits waterfall as being a bad idea, and a bad approach. Someone took that as a recommendation to do it - because there was a pretty picture of how it "worked" - and the next 1/4 century (or more) of software development proved the original author correct. Not only that, the inherent assumption in that conclusion - that you absolutely will not understand the implications of your large software system and assuming you can define it "right" first time is madness, and it's better to assume that you will get it wrong, and the sooner you find out how you get it wrong (so you can correct the mistake to build it righter) matters more.

A lot of money could probably have been saved worldwide if the original paper had actually been read rather than skimmed.

What's interesting to me here is this though: any software project that says "design a spec", "gain agreement", "declare a standard" and then build, is doing waterfall. Why do I mention that? Because I still see people doing that today. (Despite many alternatives existing)

I'm not saying every project is "agile ready" - I'd argue actually many projects aren't, but some balance between the two extremes is probably worth finding. (Boehm's spiral is reminiscient, but incomplete for example, VDM ends up being closer to waterfall (where actually applicable it's useful, but ...), and various aspects of Scrum/XP don't really seem to apply well where the project has by definition vagueness, and TDD only makes sense if you have absolute clarity about what you should be testing before you start coding. (When you do, TDD is great IMO))

What is clear though is that if someone has a long time horizon for a software project the assumption that you can spec, design, agree, standardise and then build is fundamentally flawed. Does tend to explain why so many large public service projects fail abysmally, unless people ignore the "rules" and try to do things more iteratively.

Read and Post Comments

Open standards, Open Source, Open Data

October 06, 2011 at 02:31 PM | categories: BBC | View Comments

Whilst there's (an awful lof of) negative in today's announcements about changes at the BBC, there's some which are positive, if incremental, steps forward:

    We believe this strategy for online, archive and connected broadcasting will help us reinvent the BBC for the digital age, through: Richer content
    • Integrating our linear and non-linear services, ensuring the full range of BBC content is available whenever and wherever audiences want Presenting and linking the BBC’s content online in new ways to create outstanding social, personal and interactive experiences
    Greater choice
    • Allowing audiences to consume BBC services seamlessly across four screens: mobile, computer, tablet and connected television Making our content permanently available by putting the best of the BBC’s back-catalogue archive online
    Open for all
    • Providing audiences universal, unfettered and free access to the full range of our content on as many devices as possible Sharing our technical platforms, metadata and code with the industry to support a creative, digital UK.

Read and Post Comments

Disabling Comments etc

February 04, 2011 at 10:21 AM | categories: python, oldblog | View Comments

In preparation for a complete replacement of this site, I'm disabling comments and posting after this one. The UI that this site uses has been interesting, but now shows it's age and creaking, people have complained about the editor I put in place for comments (even though it's just a vanilla dojo toolkit editor) and some minor bugs on the server side (which never affected security). The focus of this blog was really to test of a bunch of ideas, some good, some bad. Next iteration will be nicer :-)
Read and Post Comments

« Previous Page -- Next Page »