IT in schools

An article from The Guardian’s website came to my attention today (hat tip to @woodsy), debating how what is taught in school as ICT is really only how to use Microsoft Office, and find things on Google. However, as I don’t agree with all of their points, I thought I’d write about it here.

Firstly, the praising of the BBC Micro irritates the hell out of me. Did you have one during the 1980s? I didn’t. Nobody I know did. Schools had them. My primary school had one (for the entire school, kept on a trolley in the corridor for special occasions), and there was a couple lying around at secondary school for the first couple of years I was there. Nobody taught how to use them – just how to insert a disc and do shift-break-break-shift to load it.

Everyone I knew in the 80’s and into the early 90’s had either a Commodore 64, or one of the ZX Spectrum models. My older brother had a range of ZX Spectrums and eventually, just as they were starting to become unpopular, I got my ZX Spectrum+2. It came with a light gun and a copy of The Living Daylights. I couldn’t complete the first level, as either the game had a bug or the gun just didn’t work, but shooting produced no noticeable results. I never had another game that worked with the gun.

I don’t really own a pair of rose-tinted spectacles with prescription set for “the old days”. Computers were shit in the 1980s. My Spectrum came in a box bigger than the one used for my current 32″ TV, complete with a carry handle, presumably in case you wanted to drag the enormous thing to a friend’s house.

And it wasn’t reliable at all. My power supply died and had to be sent away somewhere for what felt like about a month. The plug that connected the thing to the TV developed a loose connection, which had to be propped up by a certain amount (ironically the exact width of a cassette box) to get it to work. My brother’s old ZX Spectrum 48k (passed down to me at some point) had – whatever displays video – die, so that it only showed a screen of weird colours when plugged in.

When I started secondary school, there was a couple of BBC Micros lying around. As this was ~1993, they had mostly been replaced by newer Acorn systems. Much to my frustration, they still had no IBM/Windows PCs for another couple of years, meaning I could neither borrow software from school, nor play games when I should have been working (until I somehow found a way to load a game of The Crystal Maze, which was on there but hidden).

Programming

I don’t recall my first program displaying the words “hello world”. Maybe that’s an American thing. Mine was something where it asks you to enter your name, then when Dave enters his name, it says “Dave is a dick” all down the screen. My older brother had a way of making it say this in multi-colours, and instead of just saying it left-justified, making it kind-of cascade from top left to bottom right.

Games were shit in the 1980s too. Yes they were. Go and play a bit of Call of Duty or something, then find a Spectrum emulator, and see how long you’re really entertained by hitting two keys to run faster on Daley Thompson’s Decathlon.
You’ll still find people moaning these days that games cost £45, when you used to get them from the newsagent for £3. What they don’t mention is that some of the £3 games never worked. Most didn’t come with any instructions. You would spend the first half hour (with no practice level) of every game, randomly hitting buttons to see if you work out the controls, before you get killed. Quality control was lax to say the least.

Spurred on by this anyone-can-do-it mentality though, I remember getting a guide or a magazine from somewhere, which told you how to write a database programme. You just copy what is in the magazine. What I was going to catalog in a database, I’ve no idea.

So I started copying this code line by line, page by page. I finished, I ran it, and… it didn’t work. It came up with an error on a line. I trawled back through, checking my code, and it was exactly the same as the one I was copying. Great. So what the hell do I do now? The Internet wasn’t easily accessible, I couldn’t afford to buy books, and my local library’s selection of computer books was thin on the ground to say the least. So I think what I did was delete it and forget I attempted it. This may have been accompanied by some swearing.

Recently I wrote about my GCSEs. I was forced to choose between art, drama or music, and as I was very shy and didn’t want anything that involved public performance, I chose art even though I cannot draw or paint at all. IT (or ICT, as people seem to be calling it these days) was not an option as a lesson. When I finished school though, I went to college for 2 years, and did a course called “Information Technology”. This included a module on C programming. However, just before my course started, the tutor who was going to teach this lesson, resigned. They got a tutor from another area to cover his lessons. A tutor who didn’t know how to program. Can you see where this is going?

In our lessons, we were given a program printed out, which we had to type back in manually. Incredibly pointless exercise. I may as well have been typing in Swedish for all the difference it made. I had no idea what any of it meant. As a group (excluding tutor), we decided this was a huge waste of time everybody retyping the exact same code back in separately, so me and a friend split the document in half, typed half each, copy/pasted one to the other, and shared with the group. We compiled the code, and.. it didn’t work. Error on line <whatever>.

After checking our typing and discovering we had copied it correctly, this left us in the rather awkward position that we didn’t know why it didn’t work, the tutor didn’t understand the information he’d given us, and there was nobody else to ask. My friend asked on some developer forums over the course of the next few days, was told exactly why it didn’t work, and also that it was a massively overcomplicated, inefficient program to achieve a very simple outcome.

And that was the end of our programming. I don’t mention it on my CV.

I don’t agree that ICT (in its current form) should be scrapped altogether though. People do need to know how to use a computer, and I’d put learning Word/Excel a long way above dissecting a pig’s liver in the “things you might need to do again later in life” list.

If programming is going to be taught anywhere in schools though, it should be as a language. I’ve long since forgotten all the German I did for GCSE (I’ve never been to Germany), and even if I remembered it all, why would I want to talk to people on the street and ask them where the cinema is? Won’t the film be in (higher-level-than-GCSE) German?
I don’t speak Spanish, and survived a week there on holiday last year perfectly adequately. Unless you become an interpreter or emigrate, that’s all most of us are going to do in other countries. Touristy stuff.

The Guardian article mentions this:

“While we’re moving into a post-PC age, our ICT curriculum is firmly rooted in the desktop computer running Microsoft Windows”

Then goes on to expel the virtues of the Raspberry Pi device. A device, which can only be described as a PC, given that it allows you to plug in a keyboard, can run an operating system, connect to the web, etc.

Given that the current excitement surrounds mobile devices and web-based services, why couldn’t any teenager learn to program without the Raspberry device? The software required to make an application for an Android mobile is free. The software required to make a web application is free.

Surely anyone who wants one can get access to an old PC? I see people giving them away on Freecycle. And I think most households have a PC nowadays. While parents might not like the idea of their children taking it apart, if they’re going to be using a Linux environment anyway (Windows won’t work on the Raspberry Pi device), what’s stopping them from booting to a Linux live disc, and using that? No additional hardware required, and Windows isn’t touched.

I don’t think the lack of cheap hardware is what’s stopping people getting into programming, but more the lack of support or knowledge. Where do you start, with learning something like that? What are you going to make? What’s the programming language to learn? In the Spectrum/BBC days, everyone used Basic. These days, there are jobs advertised for people coding in PHP/C/Java and a whole host of other things. You don’t want to spend a long time learning the wrong one, do you? And when you get stuck, who on a million anonymous forums can you trust to give you an honest/helpful answer?

If it were taught in schools, I’d say you’ve got two main problems. The first is finding enough teachers. Good programmers don’t come cheap, and where are you going to get them from? If you’re going to end up with the geography teacher holding the lessons, then you may as well just leave the students to do it on their own.
The second is an important but relatively simple one. You’ve got to be current. Don’t spend 5 years writing a syllabus because IT doesn’t wait that long. If you want to engage some teenagers into learning about programming, I reckon they’d enjoy making a Blackberry app (apparently surprisingly popular phones among teenagers due to free BBM messaging), or building something that plugs into Facebook.

If the Raspberry Pi device does anything though, it levels the playing field somewhat. The beauty of programming for something like an Xbox is that you know they’ll all behave the same way, will have the same amounts of memory, etc., and until people start modding them (which will happen immediately), the Raspberry Pi means everyone has identical hardware, to swap tips/help on.

5 thoughts on “IT in schools”

  1. At the risk of monopolising your blog, a potted history of how my computing and programming education went slightly differently…

    I started primary school in 1979, and my primary school got a BBC setup in about 1982. I don’t think any of the teachers really knew how to use it, other than loading educational programs (which is fair enough) and I think maybe one sparked my interest by writing something similar to your ‘Dave is a dick’ program. I was intrigued by the way one could program a computer to do what you like, and it’d /appear on TV/. I got chatting with the head about it. He kept it in his office when it wasn’t being used, so I’d sometimes spend lunch break in there with a friend or two plugging through the manual. He also gave me a rough idea of how much the setup cost, and I could see it was going to be utterly unaffordable for my parents, so we checked out the reviews of £100-400 micros ( ftp://ftp.worldofspectrum.org/pub/sinclair/magazines/YourComputer/Issue8312/Pages/YourComputer831200093.jpg ) and plumped for a 16K ZX Spectrum. I remember that all stores were having trouble getting hold of stock, but Dad managed to pick mine up from Rumbelows on the day before Christmas Eve. It wasn’t until I got to secondary school that I met anyone (“a posh kid”) with a BBC. Everyone else, as you say, had a VIC 20, a 48K Spectrum, or one of the other also-ran micros covered in that Your Computer round-up. Eventually, most of the VIC 20 users upgraded to C64s.

    My Spectrum served me well, and I learnt bits and pieces from the manual, from magazines, from experimentation at school and home, and, most importantly, the greybeards at the Hanham Computer Club in the folk centre. I played my share of games, but I was more interested in programming, to be honest. Like you, I typed in my share of listings from magazines, but unlike you, I persisted and began to be able to use a bit of deduction to find my typing errors, and eventually, find bugs in the original listing, and rewrite the code to correctly achieve the same goal. My GCSE project was hacking a commercial Spectrum word processor package to support my printer interface. At 27 bytes of Z80 machine code, I suspect it was one of the shortest GCSE projects ever submitted!

    My experiences with the hardware were better than yours; I think I killed a tape deck or two with the constant FF/RW to find programs, and I think I got through two or three keyboard membranes over the course of using my Spectrum until 1990. It did need a rather extensive repair after an embarrassing fit of bored adolescent destructive experimentation with the edge connector, but that was entirely my fault! For what it’s worth, I suspect something materially similar happened to your brother’s 48K, even if it might have been accidental in his case…

    In 1990, I upgraded to an Amiga 500 at home and also started using Amstrad 1640 MS DOS PCs at college. At home, I was teaching myself 68000 assembly, C, and OS programming (rather than “banging on the metal” as we did it back on the Spectrum, because there was no OS to speak of) from books, magazines and with a bit of help from a couple of guys from the Muller Road Computer Club who did more than play Sensible Soccer on their Amigas. I also made extensive use of my library’s inter-library loans to get access to expensive reference books. At college we we learning Quick Basic and dBase III. MS DOS seemed very primitive compared with AmigaOS, even when supplemented with GEM, and my tutor’s knowledge was also somewhat antiquated, along with the exam syllabus.

    As for the games of the 80s? Well, there were some genre-defining classics, whose DNA I can still see in the gameplay mechanics of many of today’s AAA titles, which is astounding considering the processing, memory, graphical, audio and storage constraints on 80s micros. CoD owes much to ID’s Wolfenstein 3D and subsequent sequels, but if you squint, you might also see a hint of http://en.wikipedia.org/wiki/3D_Monster_Maze in Wolfenstein.

    Regarding Raspberry Pi, I think it’s an interesting development. The trouble with programming for ‘real’ platforms such as mobile phones, Facebook or the web, is that doing so requires a very broad understanding of the supporting technologies (TCP/IP, Makefiles, IDEs, compilers and the like). I think the idea of Raspberry Pi is to strip everything back to the bare essentials, like it was – by necessity – on 80s micros, and get people writing actual programs quickly. The platform uniformity also helps, as you’ve identified.

    As for which programming language to learn, I think C is probably as good a place as any to start. Its syntax and constructs show up in modified form in so many other languages that the effort spent in learning it won’t be wasted, even if it isn’t one’s primary language. Learning some Object Oriented language (probably Java) and SQL won’t hurt, either.

    1. Thanks for your comment. Very interesting.

      There has been lots of comments added to that original Guardian article, and it’s fair that most of them did not have a BBC Micro outside of school (where as you say – the teachers didn’t know how to use it anyway).

      While I’m sure I was a fairly fickle teenager, I found the finding of information/what-went-wrong, difficult.
      Your persistence clearly paid off, but in my defence, you did have a bit more in terms of resources.

      When I was about 7, I moved from a reasonably well connected town (it had a train station, cinema) to a smaller town with very little facilities.
      New town had no train station, no cinema. It didn’t have much of anything really. Imagine Bradley Stoke without the leisure centre or Tesco-developed-retail park, and you’re mostly there. Just houses, newsagent, the odd pub, etc.
      I checked out the only programming book I could find in the library, which featured cartoon robots painting a house. This was fun, and showed how you can’t say “go and paint a house” but must give clear instructions of what to do in what order, and IF you run out of paint or walls, what to do THEN, etc. It featured some basic programs, but was quite small/limited, obviously.
      I did look at buying programming books at one point, but the ones with decent reviews seemed to be ~£30 each, which was much more than I could afford.

      Now I live in Bristol, which, as you say – is blessed with massive interconnected libraries. Brilliant. Maybe if I’d grown up here, I’d have achieved more. Probably not.

      I don’t remember getting a manual of any kind with my Spectrum. It might have been that Amstrad had bought out the organisation just before I got mine, and they were refocusing it at the games market, hence coming with a light gun, and using a Bond film for marketing.

      Thanks for your point on programming for real platforms. As a non-programmer, I wasn’t aware of all these other components.

      Questions for you then:
      How much do you think you got out of the greybeard computer clubs? Had they not been there, would you have been hindered?
      How do you go about improving computer teaching in schools (as complained by Eric Schmidt), if (as you say) the teachers’ knowledge is limited and outdated?
      Given your/our comments about the Raspberry Pi stripping everything back to bare essentials, with everyone the same, don’t you think they’re ruining that a tiny bit, by releasing two different models?
      Do you think Raspberry Pi will live and die based on how good the user-communication, forums, etc. are, or do you think they’ll produce a lot of guides/information themselves?

      P.S. I enjoyed that magazine article. I could actually read more.
      I remember GEM! Just.
      I think I’ve seen bits of Monster Maze on Charlie Brooker’s Gameswipe, but it’s slightly before my time as it came out the year I was born.

      1. Hmm, sounds like the town you grew up in was pretty dismal! Bristol wasn’t great in the 80s, but it sounds a whole lot better. I think the inter-library loans scheme was national; I’m pretty sure I remember some of the books I ordered came from libraries a long way away…

        The Spectrum +2 did originally come with a manual, as I remember borrowing it from a friend in order to hack Dk’tronics’ music composer to use the 128k’s sound ports.

        The folks at the computer clubs didn’t so much as teach things, as connect concepts which I’d learnt, but hadn’t worked out how they linked (e.g. I didn’t realise that ASCII values of the BASIC keywords in the table at the back of the manual were essentially arbitrary and bore no relationship whatsoever to the machine code you would need to perform the same function). It might have clicked eventually, but it’s hard to tell how long that might have taken, and whether I would have persisted.

        On the other hand, since the emulation/retrocomputing scene started up in the early 90s, the quality of the information online made me wish I’d had Internet access back in the 80s – I’d have made much quicker progress, and at a time when it was relevant!

        Sadly, I’m not sure programming can really be taught to anyone who isn’t already really interested in it. I tried teaching peers, but only a few ever really took to it. Maybe there were more fundamental problems, like finding elementary arithmetic and spelling of keywords to be difficult, that made it more like work than it was for me?

        The differences between the model A and model B Raspberry Pi seem fairly minor; the B doubles the memory and number of USB ports, and adds an Ethernet port. So anything you learn on the model A will be applicable to the model B. There were usually several official models of each popular 80s micro (e.g. ZX Spectrum 16K, 48K, 48K+, 128K+, 12K+2, 128K+2A, 128K+3), and there were even subtle differences between different manufacturing batches ( http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/spec48versions.htm ). We managed, most of the time! If Raspberry Pi produce a continually-developing set of tutorial materials, that’s brilliant, but I’m not sure it’s key, providing the initial documentation is adequate.

        1. The inter-library scheme was national? I’ve never heard of such a scheme. Oh well, never mind.

          My Spectrum might have been a +2a or +2b, if that makes a difference. It was black, not grey.

          A relative of mine is about to go to university to study programming, and it surprised me to know he has no prior knowledge of it. He does have good qualifications in Maths at A-level, but the Guardian article seems to think that being good at maths doesn’t always make for a good programmer. Good luck to him anyway.

          I hadn’t thought of that. You’re right – the A programs would work on the B model, but not necessarily the other way around. And I suppose you’re right about the Spectrums – quite a lot of time software would say on the box it ran on 48k/128k/etc.

          Thanks for your thoughts. Nice to have a programmer to correct some of my misunderstandings and opinions formed without first-hand experience.

          1. I suspect your relative will probably get on OK. In my experience, friends who had little or no prior programming experience, but good maths thinking tended to do quite well at languages like PROLOG, Miranda, Haskell, and sometimes SQL. A common career destination for those folks seems to be teaching or Computer Science research.

            Conversely, I, and friends, who had prior programming experience tended to find those paradigms to which those languages belong more challenging, and preferred C, C++, assembly, and sometimes Java.

Leave a Reply

Your email address will not be published. Required fields are marked *