Nesta Report - Legacy of the BBC Micro

May 23, 2012 at 11:21 PM | categories: BBC, programming, reports, nesta, kidscoding | View Comments

Earlier in the year we visited MOSI - which is (these days) a Manchester branch of the Science Museum. Anyhow, one of the long standing exhibits is of the Manchester Baby - or more specifically a restored version of the Baby which has been lovingly restored with many original parts. The Manchester Baby is significant because it was the worlds first stored program computer, and was switched on and ran it's first programs in June 1948.

The exhibition it was in was in a celebration of computing, including the BBC Micro. They had a survey, which would feed into a study on the legacy of the BBC Micro, you popped your answers in and they'd forward you the results if you were interested. I ticked the box, and duely today recieved the following email:

Thank you for responding to the BBC Micro survey that the Science Museum
conducted in March 2012. We received 372 responses which is amazing given
that the survey was only open for a couple of weeks. Many people left
detailed responses about their experiences of using computers in the
1980s and the influence it had on their subsequent careers paths.

As you took part in the survey I thought you might be interested to know that the Nesta report on the Legacy of the BBC Micro has been published today and is available to download here: www.nesta.org.uk/bbcmicro

It's an interesting report, and from what I've skim read it seems to be a good report. If I had to pick out one part, the final chapter - "A New Computer Literacy Project ? Lessons and Recommendations" in particular is something I think is very good food for thought, and motivational.

In particular it makes 7 recommendations which I'll aim to summarise:

1. A vision for computer literacy matters

The report singles out John Radcliffe as a single motivating force in the original Computer Literacy Project as being a key driver in the success in the past. it goes on to say:

    Today, there is no single vision holder creating the partnership between industry, education and the range of actors who want to change things. {...} personal leadership and vision, based on a level of knowledge and understanding of the industry that inspires respect, and backed up by significant skills in diplomacy, is vital at this point in time.

I'm not sure I agree on the point of regarding a lack of a vision, but possibly agree on their being no single vision.

2. We need a systemic approach to computer literacy and leadership.

The key points brought out here is that the reason why the CLP worked last time around was due to there being efforts at many levels - all the way from grass roots, all the way to high level government buy in, which included resources and that the key reason for success was the many micro-networks that existed, which were assisted in co-ordination (in part) by the BBC's Broadcasting Support Services. (which I don't think have a modern equivalent) Crucially though, individuals and local groups had to take ownership and did.

It makes two interesting points:

    A key part of this plan will be empowering local and regional bodies to take part and own this new movement for computer literacy. Organisations leading this effort need the commitment, the capability, the skills and the scale to deliver. At present there are many candidates, but no one organisation that meets all these criteria. Someone needs to step up to the plate.

In particular, it then does on to single out the BBC, but with some caveats:

    The BBC may be able to replicate their previous role, by providing supporting television and online programming, but to deliver at the scale of the original CLP would require not only significant buy-in at a senior level but significant institutional re-engineering and resources.

This final caveat of buy-in at a senior level, and buy in with resources is an important point. After all, it's one thing for someone to say "this is a good idea" and another for someone to say "yes, this matters, here's resources" - which may only be time and space.

3. Delivering change means reaching homes as well as schools.

While I really like the last part of this recommendation because it really says what should be done clearly and succinctly...

    We need a contemporary media campaign: television programmes that legitimise an interest in coding, co-ordinated with social media that can connect learners with opportunities and resources. This is a vital but supporting role, arguably still best played by the BBC.

... it gets there by making a point a point which I emphatically agree with - that the focus of this must reach out into the home, rather than just into schools. In particular it notes a point I've made repeatedly:

    Despite the BBC Micro now being considered ‘the schools machine’, the computer was actually more important in its impact of changing the culture of computing in the home, particularly through the legitimising effect of the television programmes.

The key point brought out is that it's this aspect - which boils down to engaging children in their time - that really matters.

4. There is a need to build networks with education.

Again, the executive summary is nicer/kinder than the final chapter, and in particular calls out a real issue from the BBC side of things:

    At the core of the original CLP were the BBC’s educational liaison officers {...} These two-way networks provided an invaluable way of both listening and delivering appropriate tools and training for adult, continuing and schools education. {...} These days, the BBC has neither the equivalent staff nor the resources to play such a role.

That's pretty harsh. However, it's interesting to note that there are some groups actively looking at improving this sort of thing. I think however there's a long way to go based on what I've seen. There's misunderstanding about how schools work, how academia works, how industry really builds good systems/works, how the BBC operates today, etc.

On a positive note, people are talking, listening and trying to figure out how to move forward - which IMO supports this recommendation.

5. There are lots of potential platforms for creative computing; they need to be open and interoperable.

This point really brings summarises the issue I've described before of "ask a hundred engineers what the BBC Micro of Today would be and you get a 100 different answers". Furthermore though it points out that the reason why the Micro worked was because it helped provide a clear common platform for talking about things.

Today the issue is that we have a collection of micro-development environments which aren't joined up, either in practical terms or conceptually, but if they were more joined up, even in just a conceptual framework for discussing things we could make progress. Without this, it makes the task of teaching this in schools hard, and even harder in the home for someone to say "where do I start?"

It's probably worth noting at this point that there is a project which may result in just such a common platform or framework. It's a project I've helped spec out, and Salford University are hiring someone to work on it. It's target is really to do with "the internet of things", but is spec'd out in terms of pluggable micro-development environments. It's my hope that this could help head towards a common platform spec. We'll see.

6. Kit, clubs and formal learning need to be augmented by support for individual learners; they may be the entrepreneurs of the future.

Again, this reiterates the need for support outside schools and notes that last time round the informal learning was more influential than formal. This relies belies something quite incredible - it succeeded primarily because people found it fun and had sufficient support.

Not only this it specifically points out that these things need to go beyond after-school clubs, and that whilst those are good, these run the risk of following a route of formal learning rather than the motivations that encourage longevity. The former could be said to be "I am doing this because I've been told I should", whereas the real motivator is "I am doing this because it's fun and I want to". I think this is one place where the executive summary is punchier than the main recommendations:

    There is a need for supporting resources that can develop learning about computers outside the classroom. These may be delivered through online services or social networks, but must bring learning resources and interaction, not just software and hardware, into the home.

7. We should actively aim to generate economic benefits.

This recommendation points out a handful of things:

  • The CLP built upon pre-existing skills in industry
  • That this stimulated a market - that boosted that industry
  • That that boost also then led to much larger take up that you'd expect otherwise
  • That this then drove the industry further down the line

It notes that whilst the third and fourth points may be the goal, that there's real benefits from the second point, and this time around any boost could from international opportunities as well as national and regional, and that including economic benefit is a good idea.

Personally I think that final point is more important than people realise. I still remember to this day hearing about a kid writing a game in his bedroom and getting paid £2000 for it. This was 1982/1983 or so, and that was an absolute fortune from my perspective, and the idea that you could get paid for creating something fun was an astounding thought. So you'd get something fun out of the process. You'd have fun making the thing. And you'd get paid for doing it. A bit like the idea you have tea testers excites people who like tea. You don't get interested in tea because you'll get paid for it, but it's an intriguing thought. Likewise, you don't write code because you'll get a fortune - you probably won't. What you might get to do though is something which is fun that you can live on, because it's outputs are useful to people. That's a pretty neat combination really.

Anyway, I hope the above points have whetted your appetite to read the whole thing - it's an interesting read. Go on. You know you want to.

Read and Post Comments

Hack to the Future (H2DF), Preston, 11/2/12

February 19, 2012 at 05:49 PM | categories: kidscoding | View Comments

Last weekend (11th Feb) I was at Hack to the Future (H2DF) in Preston, organised by Alan O'Donohoe and held at his school - OurLady's High School, Preston. What's that I hear you say ? Well, the blurb for the event was this:

    What is Hack To The Future?

    It is an un-conference that aims to provide young digital creators aged 11 - 18 with positive experiences of computing science and other closely related fields, ensuring that the digital creators of today engage with the digital creators of tomorrow.

    We plan to offer a day that will inspire, engage and encourage young digital creators in computing/programming ... -- [ from here, snipped ]

Originally, I'd intended to attend as just someone interested in this area, and perhaps putting on a session (it was an unconferences after all) teaching the basics of something. In the end I helped BBC Learning Innovation in a more official way (ie wearing my BBC id, etc), helping them test out a bunch of ideas, created some tutorials, acted as a mentor/guide on the day, and yes, taught a bunch of people young and old about various aspects of coding.

How the Day Went

In short, brilliantly. Very tiring, very long day, but very rewarding and learnt lots.

After an initial quiet period when everyone was setting up, and they were having welcoming sessions, we started getting a few visitors. They were made to feel welcome, and we chatted about what we were doing, and very quickly kids were sitting at laptops, learning to hack (in many cases) their first bits of code.

There were six laptops in use at any point in time, and we were after that initial start then very busy for the entire day. (Only stopping briefly for lunch) 3 devs who'd worked on the prototype BBC Learning were testing, and a few helpers from BBC Learning and one from BBC Childrens, and myself were all acting as mentors working through the tutorials I wrote as well as the prototype's built in tutorial.

Some learnt to bling up a simple hello-world style web app. (Which you can think of as being like a e-greeting card really) Others extended the quiz with different questions and answers The vast majority I worked with extended the image editor to add a collection of user interface elements, model elements and actual filters for flipping the image, inverting colours, embossing it, brightening it, or changing the HSL values, as well as changing mosaic tile sizes. (These used the Pixastic library)

Given these were done in 20-30 minute chunks by small groups of 1-4 (depending on how many came round), I think this was a great result. Crucially, I think kids took away the fact that you could do this, and that all you need is time, a text editor and a browser (at least for javascript)

As well as the reward of writing some task, each child that attempted it received a BBC Owl Badge, and a BBC Owl cloth patch, and some other bits and bobs.

Primarily because I had the documentation for the Pixastic library open in a browser window on a second desktop, I tended not to use the platform BBC Learning created, choosing to use my laptop instead. The other 5 groups though used the platform all day long, with as much success as I had with the kids.

For the large part, the children were doing the driving - they did the typing, they decided what they would code, how they would code it and why. I purposely stood behind the screen with them in front of the computer, making it clear it was their opportunity. I'd feed some information about code structures - by pointing at code printouts, and then guide by asking questions about "Where do you think X is? How might you add Y? Can you see anything similar to what you're after ?", but otherwise left all the decisions to them.

At the end of the day, some key takeaways for me were:

  • Whilst tools are needed, they only need to be sufficient to get started.
  • What is far more important is content - tutorials. The more of these that can be written, the better.
    • To emphasise this, there were a number of teachers asking for the tutorial materials and asking when/if they could be made available. I'm hoping sooner rather than later. ( Since I wrote them on my own time, I could just publish them, but they'd be less likely to be found if I do that.)
    • This need makes perfect sense when you consider that many teachers - especially primary school - are not specialists in coding. A handful may have these skills, but nowhere near all, so there's clearly somewhere support could be given.
  • A huge level of demand of interest from children - of all ages - even the very youngest who attended both wanted a go, and also "got it" when walked through.
  • An unexpected level of interest from digitally literate adults who want to do the same, BUT with the huge caveat of not having the time/task orientation
  • To me, it confirmed that the issue isn't just coding, but in being able to create controlled automation of intellectual tasks. (Akin to Nintendo's focus on "play" and "games" rather than on "gamers")

It made me feel that there is a need for compelling, useful, interesting and sufficiently featureful and sufficiently understandable content, code, examples and metaphors. (My tutorials/examples filled that gap for the day, but there's a genuine wider need) That content can't be written by non-experts but needs to be written or translated perhaps for complete novices.

I'm painfully aware of many many good things being done in this area, but is it reaching those in the teaching profession? My impression, based on reactions I saw, is "not really". There's going to be a variety of needs there I think, both in terms of pulling together existing resources and in terms of creating new resources, but also in terms of getting the resources in the places they need to be.

On this note of "relevant support material", it's perhaps worth noting that I also took along my inspiration for my tutorials - in the form of my collection of kids coding books from the 80's...

This turned out to be quite useful. After all, these days programming languages are generally focussed on giving instructions to computers in ways that make the programmer's life easier. This really means communicating in a way that other developers understand. Being able to show kids books which were kids books back in the day, which actually assumed that teaching machine code was a sensible and plausible thing to do (and it was) really helped in showing them "yes, you can".

For me, this aspect of opening eyes to "yes, you can", and then seeing the light go on in children's eyes when they realised "Yes, I really can! I made it do THAT!" was fantastic.

Adults!

Also, there were a small handful of adults who came in asked "How do you do that ?". I found this both interesting and useful in that I could clearly explain to them, but also learn why they wanted to know. What I've learnt from that encounter could easily take up a whole blog post in itself. However, some key takeaways:

  • Whilst kids can spend hours focussed on playing with something - given a good enough motivation, generally speaking adults simply do not have the time to do so.
  • Adults need task oriented tutorials, that actually match the tools they have available in practical terms
  • Recording a macro as a script for later editting/driving the app may be enough.
    • But too many apps don't allow this, or it's inconsistent between apps or difficult to use or even find.
  • This task orientation is also more like what happens in a class room where you also don't have time to spare.
  • Having the usborne books reminded some "yeah, I remember that, you went 10, 20, 30 and had to leave space for 11,12,13". This means they learnt the ABC's but never had a route to actually use those ABC's.

This makes me think two key points:

  • There's potentially also a big need/market for task oriented computational tools among adults. (This helps explain the enduring popularity of spreadsheets despite their problems)
  • When talking about computational literacy, it's not just children.

BBC And Hack to the Future

(Caveat: In this bit I'm talking about another part of the BBC, I've probably got something wrong here :-)

If you scan through the list of attendees at Hack to the Future, you'll see a number of attendees there from the BBC, and specifically "Innovations, BBC Learning". This is the bit of the BBC that tries to figure out the things that BBC Learning could commission. ie They try out things BBC Learning could do, see what works, what doesn't and based on all sorts of criteria suggest specific things that BBC Learning could do. They're also the bit of the BBC that asked Keri Facer to explore interest & possibilities.

So, ask a 100 engineers, you get a 100 different answers. Some people thought that a Micro 2.0 would be hardware - either Arduino/mBed/BeagleBone like, RaspberryPi/Tablet/Netbook/Net Top like, a pure webapp, through to downloadable Apps, etc. Unless you try something you won't learn.

So BBC Learning Innovations decided to try something - specifically "can we build a kid friendly IDE that enables them to get started using Javascript & HTML5". Now, Javascript is far from my favourite language, but I can see the logic behind picking the language, and it's both unavoidable and ubiquitous - in a similar way that BASIC was 30 years ago. (Well, things actually, but I'm going to focus on what was taken to H2DF for this post) Heck, faced with a similar problem 14 years ago, I reached similar conclusions.

So, Parmy has been leading a small dev team to test out the idea, and built a very simple IDE by taking Eclipse and either skinning it, removing chunks of functionality, or rebuilding from constiuent components (not sure which approach :-). The upshot is one idea of what a BBC Micro 2.0 could look like. However, it IS a testable, concrete, real thing that you can put in front of kids and see if it helps.

Someone reading this is likely react to any/all of the decisions in various ways... but as I've said privately: it's a typical geeky thing to go "how can I improve this hammer that I have?" which I think is a good reaction, but I really don't want to overshadow the "We've got a Hammer! We've got a Hammer! And we can do This! and This! and This! " thing that is going on. . (Once you have a hammer, you can see what you can do with it and whether you want that, a nail gun or screwdriver :-)

What did this platform actually look like though? Well, I happen to have a screen grab from a screen cast created by Parmy, which I feel no qualms copying here since it was demonstrated to dozens of people at Hack to the Future:

Hack to the Future's organisation was happening concurrently with this, and it looked like a pre-pre-pre-pre-pre-alpha version of the codebase would be ready for the event, so the BBC Learning Innovations team decided to take the platform to H2DF to try it out. My understanding of the plan behind this was:

  • Inspire, engage and encourage young digital creators in computing/programming
  • Take the downloadable platform there and see whether kids could use it
  • What's the level of interest from kids, teachers, and professionals ?
  • Was that sort of platform a good idea ?
  • Should it be a downloadable app?
  • What's missing?
  • Is this even a good idea ?
  • etc.

ie all lots of very good reasons.

I think the day also went a very long way to achieving either the goals, or answers to the questions listed above.

Like any time you take a new piece of code on the road, there were teething issues:

  • Power was at the side of the room, so rearrangement of the room was a clear necessity
  • The tutorials assumed a working network connection, and the school's wifi was too locked down
  • The platform's codebase was very much pre-pre-pre alpha, ready only days before the event. Whilst for basic "hello world" tutorials it worked one way (which I expected), it worked a very different (more eclipse like) way for non-hello world tutorials. This threw me somewhat - I use Kate and commandline tools normally. (Parmy and 2 other devs who'd been working on the codebase were there as mentors as well, so this was fine for them :-)
  • When I did use the platform I found it worked, but a little rough around the edges. For example it currently masks errors. I'd flagged this up before, but I guess there hadn't been time to resolve this before the day.

(Given this, you could ask, "why take such pre-ready code on the road?", the answer of course being it was a priceless opportunity to answer the questions above)

I pondered whether to list these, and then figured a warts and all thing was a good idea, primarily because mentioning warts makes it easier for everyone to avoid them in future.

What I did in prep for H2DF

As background, I've been recently trying to figure out how BBC R&D (the dept I work for) can help BBC Learning with their goals (BBC R&D's job, in short, is to support the R&D needs of the full spectrum of what the BBC does). So on a limited time basis I've been spending time with them, and helping out however I can. After all, IMO, first step to anticipating someone's needs is to understand them and their goals, and mucking in is one way to learn that :-)

In this case, it struck me that the best way I could help out with testing the ideas was to:

  • Help out on the day as a mentor
  • Write tutorials & cribsheets
  • Provide a mental model about how to teach building basic browser/client side based web apps.

So I wrote 2 tutorials:

  • A javascript based quiz, using a little bit of jquery to download the quiz and update the screen
  • The other was a simple image editor/manipulator using the pixastic library to pull in filters.

My aims for these tutorials were:

  • To be sufficiently interesting/useful to be engaging.
  • To be sufficiently simple to be comprehensible by kids who'd never coded in a very short time period. (Each session was to last 20 minutes)
  • To be also sufficiently clear to be able to be modified by kids
  • To make it clear that it was possible to do so, and that the modifications reflected "real" coding
  • To be no more than around 100 lines long, including HTML, style sheets, and javascript.
  • For each to teach a basic structural principle by example. Eg
    • The quiz demonstrated a data driven game engine, obtained by an ajax call, with a staged user interface
    • The image editor really demonstrated how to add user interface elements dynamically, how (and why) maintaining a model of the user interface was a good idea, and how to interact with library of functions.
    • Both were designed to show common structural elements common to client side based web apps.

This is a trickier balance than it might seem, and both took a procedural view of coding rather than object oriented approach. (Once you've demonstrated the value of having a model, I think you have better justification from the learner's perspective for increasing the code complexity in favour of flexibility)

The reason I took this approach is, in addition the the old Usborne books, probably attributable to Dave Hunt of the pragmatic programmers. There's a great book he wrote called "Pragmatic Thinking and Learning" which describes lots of learning models. One of them is called the Dreyfus Model of Skill Aquisition, which has 5 levels:

  • Novice - Follows Recipes
  • Advanced beginner - Adapts Recipes
  • Competent - Understand when recipes don't work, can plan their own
  • Proficient - Want the big picture, self correct and self improve, understand context (why you don't do that ?!)
  • Expert - As well as all above, work from intuition. eg "I think X has this illness, I'll run these tests". This is the inverse of earlier levels of skill.

The key point really, is that many computing books are really focussed on competent and proficient and very few on the true novice. By contrast if you look at the old Usborne books, they they were packed with what are effectively recipes. In part this is also why I picked the Pixastic library - its documentation is entirely geared towards the novice or advanced beginner.

If you're writing documentation or tutorials, I really think you should be thinking "which level am I targetting?" and "am I addressing the boundary - how do I enable someone to leap from one level to the next?". Clearly on Saturday though I was targetting Novices, and enabling to jump over the first hurdle of "I can't" to "I can".

So, along with writing the code, I produced A3 PDF's describing, in the style of those old Usborne books, what the code did and why. These were deliberately that size to encourage readability by groups, and used friendly fonts :-) Sadly, I didn't have time for little hand-drawn robots or manga cats. (I think using manga cats would be more gender neutral :-)

I'll probably blog about the analogy I used on the day for web apps at a later point in time.

Where Next ?

What BBC Learning do next is very much up to them, and I'll support them in their plans.

This whole event though did get me thinking about Micro Development Environments - MDE's - as opposed to Integrated Development Environments (IDEs).

  • The platform we had was a micro development environment for javascript based apps
  • The Arduino development environment is a micro development environment for a particular type of embedded system
  • Microsoft's Gadgeteer platform is another, for a similar type of system. Microsoft's Kodu, again, is another with a different focus.
  • Rapsberry Pi, has the possibility of being either a micro dev environment, or as a host environment.
  • Yousrc is a flash based / basic like language for creating web embedded games and similar, again a micro dev environment.
  • Scratch, is another.
  • Play My Code, is again, another Micro Development Environment, targetted at making it fun to write games for the browser. Personally I think Play My Code falls into the category of "most likely to hook kids and those who are kids at heart". Really neat :-)
  • And so on.

In essence there are a growing number of Micro Development Environments, and each focusses (rightly) on a particular domain and has its own strengths. Personally, I think "there next", along with tutorials focussed on the different micro dev environments, and perhaps looking at "what micro dev environment is missing?".

Since H2DF I've spent, a couple of evenings in the past week I've tried knocking up what could be a web version of the BBC platform, incidentally, since it looked like a reasonably plausible thing to do, and I think this looks pretty nice as a possible browser based dev platform:

That allows you to load 2 different apps, and the source for the MDE, edit them, and run them. (No saving, but you could copy and paste to a local editor). The fun thing is that as well as running on my laptop that it runs on a Kindle and even in my (non-iOS, non-android) phone's browser. There are downsides to this approach, but does no-download outweigh that as well?

Early days to say the least for that anyway, and more for a blog post another day.

Thanking Alan, AKA The Perils of Hoaxing

My closing note is really to thank the irrepressible Alan O'Donohoe for organising this Stone Soup. If he hadn't hoaxed everyone at Barcamp Media City and again at Pycon UK, then it's very likely that certain reports around H2DF wouldn't've been taken as a hoax as well. I think the lesson there is do it once, and make sure everyone understands it was a hoax and why, and people will be happy. Do it twice, and when something happens that sounds the same then it might be assumed to be a hoax. I think that's a real shame because what he organised really was amazing, and hopefully people will forgive him the hoaxes now :-)

Also, whilst I thought the hoaxes were a bad idea, but the more I heard about the detail he went to - setting up stooges in his audience for example, the more I can't help but admire the audacity. I don't agree with it, but I can't doubt Alan's determination, impishness, and element of wanting to bring fun to the table.

So many thanks to Alan for organising H2DF, it was lots of fun, we all learnt lots both adults and especially the kids :-)

Yes, he cried "The BBC at my school!" twice, but the third time, yes, the BBC really did go to his school and like many others there, I wish we'd had an IT/Computing teacher like him when I was at school ;-)

Continuity

I'm painfully aware that I haven't really followed up on my last blog post about "what I'm actually going to do", but rather been "doing it". This is probably a good way round, and my next post will pick up from the last. ex-Scout's honour. :-)

This is also because a fair chunk of what I was planning has been done by the Play My Code team. Go take a good look and play with their site.

Read and Post Comments

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

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

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