Computer Science Lessons Need to Change

GeekMom Technology
Inside my computer the day it arrived © Sophie Brown
Inside my computer the day it arrived © Sophie Brown

There is a sense of complete wonder at the insides of a computer, and it’s something I find both worrying and surprising. I am of the first generation for whom computers have been standard items in our homes for most, if not all, of our lives. From the day I was born back in 1986, I can’t recall not having a computer in my house. From my dad’s early Apple through an Amiga 1200 to countless PCs and laptops (not to mention many, many video game consoles), I have always had a computer. I can recall the first computer at my primary school: a single computer with a tiny green and black screen that served over 100 kids well. I recall equally well the high tech computer labs of my high school. However, despite the increase in facilities at all schools over the past decades, I fear that computer education is fundamentally failing our children.

When I was at school, we did learn a lot about how to use computers. We were taught how to type, draw pictures in Paint, and use basic software. Later came lessons on spreadsheets, databases, and advanced word processing. These were all useful things to learn that I have carried with me ever since, but they’re not enough. At no point did we ever once look inside a computer. We were never shown what a motherboard looked like or told what it did. We were never taught how to install a piece of hardware – even something as fundamentally simple as installing a PCI card into an open slot.

A few months ago I bought a new desktop computer (our current one had been gradually dying and upgrading the whole system would have cost more than buying new). This left us with that annoying quandary of what to do with the old machine, which although old and with a dodgy hard drive, had many perfectly functional parts left. I harvested the bits that I could use in our new machine, mostly additional USB ports and a WIFI adapter, then dumped the tower under the bed until I could figure out what to do with it.

Last week a message went up on my village’s private Facebook page from a local whose computer had fried: he was seeking new parts. After a few messages, he bought the old one machine from me minus the hard drive and a few other bits and bobs. Whilst I was taking the tower apart to remove the hard drive, my mum called and asked what I was doing. “Oh, just removing the hard drive from our old computer,” I told her matter-of-factly. I may as well have said I was performing brain surgery.

Picture Drawn By My Sister on an Amiga 1200 in 1994 © Sandie Sharpe
Picture Drawn By My Sister on our Amiga 1200 in 1994 © Sandie Sharpe

My mother is probably not the best example to use here as her own computer generally has to be excavated from piles of dumped “stuff” on the semiannual occasions where she decides to check her emails. However her reaction is identical to that which I experience from most people of any age when I mention that I’m happy to mess about inside my computer–utter amazement.

My entire knowledge of the inside of my computer came from my Uncle Jim–whom I watched reinstall a modem back in 1999–that and Google, of course. At this point, nearly every home has a computer in  it, often more than one, yet millions of people couldn’t begin to tell you what goes on inside one. When I took driving lessons a few years ago, one of the subjects on the “syllabus” was the car’s engine–it’s part of the UK driving test. I was expected to be able to identify the radiator, oil tank, and screen wash reservoir, and be able to show how to check my oil  and brake fluid levels, top up my screen wash, and check my tire pressures. These are considered basic skills I should know to be able to maintain my car. Why are such similar “basic skills” not being included in computer science lessons? We weren’t even shown what the Control Panel did!

My Two Year Old Can Already Use My DS to Draw © Sophie Brown
My Two Year Old Can Already Use My DS and iPhone© Sophie Brown

It’s not just the internal mechanics of computers that are being ignored, either. At high school I was taught some basic HTML. When I say basic, I really mean that we were taught: how to add in a picture, link to another page, change fonts and colours…and that was about the limit. At no point did we have lessons about servers and hosting websites.

I went along and asked my IT teacher about those things after school one night and she happily went into details for me but it was never discussed in the classroom. No other programming languages or systems were mentioned–no BASIC, no C, no Python–not even the words were mentioned. We weren’t taught about Flash or JavaScript and I’d never even heard of MySQL until years after I left school. Let’s not get into platforms, either, because at every school I’ve ever attended or visited, it’s been Windows or nothing. Kids these days are well versed in basic IT from a very young age–most toddlers can operate an iPhone or other touchscreen device by their 3rd birthday–so, in my opinion, older kids should be pushed further in terms of the skills being taught at school.

IT is one of the most important industries around the world. The design and maintenance of websites, databases and servers, not to mention security, is fundamental to business, banking, government, and all other sectors–yet we’re not giving our children any insight into this world at school.

It’s difficult to get figures on the IT industry. As Kate Craigs-Wood, a female entrepreneur and co-founder of Memset, put it to me when I emailed her about the subject:

It is hard to get stats on the IT industry because a) government still doesn’t have a good category to put us in and b) we are something of a vertical–supporting other industries more than being one in our own right.

However the figures she hears generally suggest that IT contributes around 10% of the UK’s GDP–and that is not a figure to be sniffed at.

I had two hours of computer science a week at high school for four years. That works out to over 300 hours in the classroom. How is there not time to include this material on the syllabus? The IT sector is dangerously unstable right now. The “dot com” millionaire boom saw people assume that working in the industry was a route to easy money and they flooded in as with any gold rush. I am certainly not saying that learning how to write Python or install a new Wi-Fi adapter is the path to financial success; it simply astounds me that in such an important industry that is so present in all our lives, our children are only being taught how to write a letter on Word.

Liked it? Take a second to support GeekMom and GeekDad on Patreon!
Become a patron at Patreon!

22 thoughts on “Computer Science Lessons Need to Change

    1. Linked from

      I had the same complaint of my high school “computer” class in the late 90’s.

      I grew up(80’s and 90’s) taking things apart and that most definitely included my families computer.
      More recently I have always found apt descriptions on “”

      Electrostatic discharge(ESD) is one very important topic to understand before digging through any piece of electrical equipment. You know the shock you get on a cold dry day after walking across the carpet and touching something metal? That shock has a voltage potential in the 1000+ Volt range and will immediately destroy sensitive circuits. However, all you have to do is touch any large piece of metal, like the case itself before digging through the computer.

      For students interested in information beyond just “the engine components” Computer Engineering is the field of study that investigates how the computer hardware(physical) interacts with software(programs).

      My favorite class in college started by teaching binary(0’s and 1’s) then assembly programming then C code and how to decompile C code back down to binary by the end of class.
      The book for that class was:
      “Introduction to Computing Systems: From bits & gates to C & beyond” by Yale N. Patt

      A simple slide show on the topic:

  1. You talk a lot about what’s not taught, but give little on what should be taught. This is important because as you begin to list the skills you expect all students to learn you might find out why they aren’t. To begin with:

    What prior knowledge does your list demand, and when is it age appropriate to learn that? The answer leads to mapping out a K-12 curriculum, which is important to be aware of.

    What supports are necessary to carry out this curriculum, including all prior teaching? Besides knowledgeable teachers, what equipment are we talking about? Cost? Now you can see the system necessary teach these skills.

    Assuming the hours in the school day and budgets are fixed, what comes off the table? Since I was in school woodworking, home economics, music and art have been scaled back or cut. Heck, we had drafting and a formal typing class instead of a cobbled together Type To Learn time. Every new thing comes at a cost, and legislators add new things every day (bicycle safety and opening a bank account is our school’s latest charge).

    Too often we talk about what schools don’t teach, but with that comes choices that no one wants to think about–less art, reading, world language, etc. Like any organization, schools need to change with the times, but stopping at criticism only leads to all sides feeling unsatisfied. And even when they do it, people complain that its sterile or uninspiring because they learned to read through comic books or chemistry through stink bombs. How does a school address all types of learners?

    Not only that, but when parents and community members stop there, without making the tough choices, it leaves kids at the will of their circumstances; those with an uncle or an old PC get inspired, while those without go without. This is true for nearly any subject. Dumb luck is no way to educate children.

    I hope a future piece contains a blueprint of a computer science program, detailed down to the last diode. I’d be eager to see (or design!) such a program.

    1. Tom- you are right. There needs to be a more detailed curricular map created. I am going to check out my state’s standards in tech ed once I get to school today. I am curious to see what is included. I imagine it’s not very deep.

  2. I’m sorry, I genuinely don’t get the point of your post. Unless you’re studying to get a degree in computer science, what’s the point of all that?
    Expecting schools to teach C++, Python or MySQL is just as pointless as expecting to be taught how to design and build a car when learning to drive. You’re not even shown how to dismantle a car to fix it.
    Just as it takes years to learn how to design a car or a bridge, it takes years to learn computer science. And even then, most of the time, you only know a small subset.

  3. As a high school computer teacher for Graphic Design, Animation, and multimedia, I spent the first 2-3 weeks of all of my classes teaching on hardware. It astounded me how little kids knew about it. I keep around spare parts that date back to the late 90’s, and some from the last year or two. I had students identify a number of different components from motherboards to power supplies, and found hardly any of them came in with this as prior knowledge. Very few really cared, but some were rather amazed at an open box and knowing how exactly things such as video RAM and system RAM differed, and what exactly they did. Many walked away with the working knowledge of items such as the answer to ‘my computer is slow’ isn’t always ‘buy some more RAM.’ We looked at what multi-core processors were, different stats for different hardware components (wattage and efficiency of power supplies, size and RPM’s of hard drives, etc), how to tell that a Geforce 9400 isn’t better than a Geforce 7900 in terms of performance but is in features, etc. – if funding were a little better and i weren’t so swamped in creating lessons this early in my teaching career (year 2), we would be running some kind of hardware/system building club. I have the intent of working alongside at least 2 or 3 of my students to build new computers for their family as they choose to invest in such a thing, so that they may really grasp what is taking place. I seriously don’t understand the lack of hardware coverage either (save for a quick powerpoint at the first of the year), but I fully intend to do something about it.

  4. The article started out (and it titled) about Computer Science, took a left turn at computer use (and basic computer skills), and ended up at Information Technology – three very, very different things.

    Computer engineering is an electrical engineering specialization – having to do with processors, video, etc. The hardware platforms that all of us depend on to do everything else. It includes a lot of physical architecture stuff.

    Computer science is about the software side of the world. Data structures, information representation, algorithms, computer languages, constructing computer languages and operating systems. This is the software platform that all of us depend on to do everything else. Most scientific and technical computing falls into this bucket as well.

    Information Technology is about using the products developed by the Computer Engineers and the Computer Scientists to solve problems supporting primarily the business community and business functions.

    In my opinion, primary schools should be teaching people how to use the basic classes of applications that everyone is going to have to use throughout their life – word processing, communications (email, etc.), information discovery (how to web search effectively, etc.), and perhaps a few other things that aren’t coming to mind at the moment.

    Secondary schools should continue this, teach people how to properly own and maintain computer systems (like the basic car maintenance skills discussed), and, optionally, begin to take those that are interested into computer-based problem solving, which will lead them into IT-ish skills. This would include how to identify and clean hardware (how many dust bunnies does your systems have?), and perform basic software maintenance (anti-virus, malware detection, operating system maintenance, etc.) – and how to be safe out there in the WWW, to not bring home nasty diseases. This could include some basic skills in detecting and evading social engineering approaches.

    Tertiary education gets people into CE, CS, and more advanced IT.

    Again, just my opinions – there are a lot of work out there about what a CS curriculum should look like, and I’m sure similar work for CE. IT may be a bit more wild-and-wooly, and may take on a certification perspective, which is limiting – the difference between learning how to learn, and being trained in a skill.


    1. I agree with Ted. You seem to confuse CS, and IT which are very different fields. That being said, i agree with the overall message of your post that there should be more in-depth computer related education.

  5. You couldn’t be more right.

    I was getting even more radical while having a conversation on the subject: I suggested people should pass a test to get a Computer License before being allowed to buy a Computer, that way, they wouldn’t annoy us geeks on an almost-daily basis.

    I’m, of course, a classic tired relative/friend when it comes to fixing computers, so I demand radical measures.

  6. I did computer repair in the US Air Force for just under 3 years. All of my knowledge is self taught, and the job I did repair for was an OJT cross train (a program that was ended about 2 months after I was OJT’d.) My squadron got in 2 fresh airmen that went through the entire tech school (a school specifically designed to teach you your career field, of which computer repair was a part.) Neither airmen could tell me how to hook a computer up and one, didn’t know how to turn it off or on.

    In the day and age we live in, computer skills are a must. Even in the most basic of jobs, you still need to know how to get around a computer. I think our children should be taught at least basic computer skills. The ability to hook one up, turn it off and on and, how to do basic operations in the OS. You’re really hurting your children to not give them at least those basic skills. Going to college without those skills would be educational suicide.

  7. I do agree with the point of this article. Learning Computer Science needs to be more than painting on a screen or learning to type a letter. Like all other technical fields, further knowledge, such as at least a basic understanding of what makes a machine tick, is essential to going beyond being an operator of the machine. These days with kids growing with closed systems such as ipads, etc, there is a need to reward them with an appreciation of the science that goes into making it all work. Merely opening up a desktop computer and having them peek inside to tell them, hey it’s not magic, it’s all these components which do the work behind scenes and help you draw that picture or type that letter, and that you too are capable of understanding and maybe one day creating something like this.

    Sure, expecting schools to teach MySQL, C++ or Python maybe too much to ask, give the state and limited resources of public education, but come one. How about some exposure to programming. How are these topics not considered essential in this information technology era. And then we complain how there kids don’t go into science and engineering. Go figure.

  8. This is why it bothers me that people consider me to be a “genius”. I’m not. I learned everything on my own. I learned how a computer works because I was curious. Now I build and repair computers, and do a better job than any of the computer repair businesses in the area. I wish everyone could know what I’ve learned, then they’d realize that computers are these expensive mysterious disposable luxuries. You can build a decent computer from parts for less than $100 these days. Everything is getting so cheap when it comes to computers, it’s a shame that people spend so much for a brand name.

    I’d like to say I’m well-versed in DOS (4, 5, and 6) Windows 3.1 through 7, Mac OS 7 through X, several GUI Linux distros including DSL, Kubuntu (KDE), Ubuntu (Gnome), Xubuntu (I think also Gnome) and simply executing everything through Bash.

    Going back to general knowledge in Windows, I know what every item in Control Panel does, and know how to activate, disable, and delay Services as well as edit the system registry. I’m fairly sure I could get Windows 7 running decently on a 10 year old computer by disabling services that aren’t absolutely necessary and optimizing startup and registry, but that’s all stuff I’ve learned on my own. Almost 100% of my computer knowledge did not come from my schooling.

    1. Agreed that much of what people like you do is self-taught, but I think we need to to go beyond typing, creating documents, and powerpoints. I am pleased that my school also includes stop-motion and lego mindstorms as part of the elementary curriculum. At the HS level, students can still take classes on computer languages and compete in competitions. However, I think learning basic skills like knowing your control panel, installing a new program, or installing and using external hardware could be included in eduction at some point.

  9. Several responders miss the point. It’s not that most will end up doing software development or computer repair. It’s that they will be using and depending on computers, and therefore they would benefit from having a basic idea of what’s going on and how they work. Otherwise, to them, it’ just magic, making it impossible to judge what the computer is telling them.

    Also, I agree with what Cory Doctorow writes in his novel “Lilttle Brother”:

    “If you’ve never programmed a computer, you should. There’s nothing like it in the whole world. When you program a computer, it does exactly what you tell it to do. It’s like designing a machine — any machine, like a car, like a faucet, like a gas-hinge for a door — using math and instructions. It’s awesome in the truest sense: it can fill you with awe…

    Most of us will never build a car. Pretty much none of us will ever create an aviation system. Design a building. Lay out a city. Those are complicated machines, those things, and they’re off-limits to the likes of you and me. But a computer is like, ten times more complicated, and it will dance to any tune you play. You can learn to write simple code in an afternoon. Start with a language like Python, which was written to give non-programmers an easier way to make the machine dance to their tune. Even if you only write code for one day, one afternoon, you have to do it. Computers can control you or they can lighten your work — if you want to be in charge of your machines, you have to learn to write code.”

  10. I experienced this first-hand about 8 years ago, working on a college co-op in a high school, and decided to do something about it.

    I worked with the teachers that ran the Grade 9 “Business & Technology” class, to update (and sometimes correct) their material about the basic functions of a PC, and ran a demonstration to each of the classes in which I opened up a (dead) PC and showed them that it wasn’t anything mysterious or dangerous.

    From my conversations with the teachers, I realized that the problem is that those sorts of classes get assigned to whomever has some inkling of how to use a computer, not to people who have a real computing education. I don’t blame the teachers – most of them really do try their best to deliver the content and keep up-to-date on the technology. At least in Canada, the problem is that the school boards seem reluctant to encourage some teachers to focus on computing in their own education.

  11. I lucked out. Here in the U.S. in the middle of nowhere Oklahoma, my high school offered an elective class in programming. I was one of only five students to sign up for the class. My family didn’t own a PC at the time so it was my first real exposure to a PC. I loved it so much that I’d write out my programming assignments on paper in my Chemisty class (pretending to take notes) then key them in the next day. I majored in CS in college and now have a career as a computer programmer.
    I took the class my Junior year in 1996. There were only 5 students in the class. The next year only 4 students signed up. I heard it was dropped after that. I wonder if they’ve got a programming class today.

  12. Having used computers all their lives, I am often stunned when I figure out that they know little about how they work. They don’t realize things like the little Word document icons are files on a hard drive. I stumped a class with what goes through the network patch cable. Some didn’t know what it was. The rest thought the Internet went through it. One said it was Ethernet. When I told them it was electricity, I had to explain it for 20 minutes before they believed me.

  13. I think that back then (I’m the same age as you), the internet was nowhere near as important for schools, and in my school the focus was very much on Microsoft Office (especially Word & Excel) skills.

    What worries me is that today there are very few practical web-related courses even at degree level. My boyfriend graduated in Computer Science a year ago and his course only taught him bits and pieces of a wide variety of things – almost useless in the real commercial world. There needs to be a huge overhaul of how computer and web-related subjects are taught from primary school through to postgrad.

Comments are closed.