It's 1991. I'm 14 and I'm with my friend James in his living room using an old BBC Micro. We're excited that we've just written a computer program to solve the 8-queens problem (place 8 queens on a chessboard, such that no queen can take any other).
Flash forward to 2010. I'm 33 and a lecturer at one of the top computer science schools in the UK. James now runs a bioinformatics research lab, analysing genome data with clever computer algorithms.
How did we get here?
I wrote my first computer program over Christmas 1986 on an Amstrad CPC464, complete with a "green-screen" monitor (colour was too pricey). I believe the program printed out my name 50 times. Computer programming languages are like human languages: with grammars and syntax, there exist different accents and flavours, different expressiveness depending on the task - this one was called Locomotive Basic. I continued experimenting, writing silly but fun programs: storing telephone numbers, bouncing a ball around the screen and so on. James had a similar education from his trusty BBC Micro. The "Beeb" was a godsend for intellectually oriented teens, and its impact on UK education cannot be underestimated. Every school had one. James was lucky enough to have one at home. Yes, we qualified as "nerds" - but we were getting an education for our future. Thousands of other children followed similar paths, leading to successful careers in computing.
Then came the dominance of the PC. These lightning-fast machines were all running Microsoft Windows. In 1993, I found an icon on my Windows 3.1 desktop for a programming language called QuickBasic. I double-clicked and started gleefully to experiment. When Windows 95 came along, I explored the new interface, searching for the QuickBasic icon. It was gone. I found I had to manually install it - you had to know it was there. In Windows 2000, it was removed completely, never to reappear. No QuickBasic for today's teens.
I'm not preaching QuickBasic in particular - there are many fantastic introductory programming languages. It's not the language that matters, but how early the kids are exposed to the concept of computer programming. I got the bug early, because my computer had a built-in programming language ready to capture the curiosity of a smart kid.
So what is available for today's smart kids? A nationwide effort is under way, united as the "Computing at School" group. This group aims to change the perception of computing from "spreadsheets and word processors" (as the GCSE curriculum once dictated) to that of a genuine intellectual activity. At the University of Manchester, the UK Schools Animation Competition introduces children to computational thinking by the sneakiest of routes - they learn while they're having fun. They love it. In the past three years, we have set the challenge for more than 1,500 children from 300 schools across the UK. However, this is not enough. The "Beeb", which sold 1.5 million units, and its contemporaries all had a built-in programming language, making it easy for the curious child to see the challenge. That curious child now uses a PC, with the latest incarnation of Windows as their first impression of computing, and first impressions tend to stick.
Computer science departments are striving to sell computing as an intellectually challenging and fun discipline, far from the geeky stereotype. Alas, we can do only so much. There are few entities able to have truly a global impact on how children perceive computing. Microsoft is one, Google is another. So I make this plea to Microsoft: please reintroduce some flavour of programming language to your standard Windows installation. And Google: I'm sure with the collective IQ in your research labs, you can think of something to capture young minds.
I meet biologists, financial wizards and social scientists in the corridors every day, all needing the science of computation to solve their problems. I dearly hope that the children in primary school today get a chance to see this discipline for the myriad challenges that it is. But they're in danger of missing out - and all because Microsoft removed QuickBasic. Not that I'm ranting, of course.