Misconceptions: the enemies of progress.

This is a draft article for Hello World, the Computing pedagogy magazine from the Raspberry Pi Foundation. The full article will appear in a future edition, but you can also read much more about this topic in my book, available at Amazon here.

Misconceptions can leave the student frustrated and unable to make progress.

What is a Misconception?

A misconception is a view held by the learner at odds with true domain knowledge. They arise in everyday experiences, are imported from other subjects or are gained during prior learning episodes that were not fully understood.

In everyday conversation “the internet” is used to mean the world wide web, and that device provided by your ISP is not actually a “router”, it’s usually a combined router, switch, modem and wireless access point. Outside of networking, we find the misconception “secondary storage is used when primary storage is full” which seems plausible enough but wrong, and my students once tried to prank each other by suggesting slow performance could be solved by “downloading more RAM”.

Some misconceptions occur through misapplying learning in other subjects to Computing, using imperfect analogies to illustrate new concepts or by the deliberate teaching of a simplified truth lower down the school. The latter “necessary evil” misconceptions include “the computer understands binary” and “all programs are a series of steps”. Of course, the computer “understands” nothing, electrical circuits simply respond to high and low voltages. And students who study Computer Science to A-level will encounter object-oriented and functional programs which are not “a series of steps”.

Why are misconceptions important?

A 2016 study by Sadler et al showed that science teachers who were misconception-aware helped their students make better progress than those who were not. According to the researchers, “It is better if a teacher … has a model of how students tend to learn a particular concept, especially if a common belief may make acceptance of the scientific view or model difficult” [1]

Juha Sorva’s excellent 2018 paper “Misconceptions and the beginner programmer” can be found in “Computer Science Education” (Sentence et al, 2018). [2] As Sorva explains, “A student with [programming] misconceptions will produce programs that do not work. When a misconception persists, it can leave the student frustrated and unable to make progress.” (Sorva, 2018). [3]

Many programming misconceptions arise from a faulty “notional machine”, defined by du Boulay (1986) as a “viable model of program execution”, without which the novice can’t reliably predict what the computer will do with their code. This leads to misconceptions and slow progress. Exposure to a wide variety of example programs, narrated live coding, and encouraging learners to comment their code will all help.

Some key misconceptions.

Below is a selection of misconceptions from “How to Teach Computer Science”, from Sorva’s paper, crowdsourced my personal learning network or pulled from the “Project Quantum” set of diagnostic questions

Data RepresentationBinary can only represent numbers up to 255.Binary is the base 2 number system and can represent any number.
ProgrammingWhile loops terminate the instant the condition turns falseA while loop condition is evaluated only on entry to the loop, and every time the code block inside the loop ends  
Assignment statement a = b makes a and b always equal throughout the program execution  Assignment statements are made of two parts, the right-hand side of the assignment operator (=) is an expression which is evaluated, and the result stored in the variable on the left.
ArchitectureVirtual Memory is Cloud StorageVirtual memory is a space on the hard drive used to extend the available RAM
LogicNOT is a binary operator, taking two inputs, for example in A NOT BNOT is a unary operator, it takes only one argument, so
A NOT B is invalid. NOT B is valid as is A AND NOT B.
NetworksPeer-to-peer networks have a mesh topologyNetwork service model (P2P or client-server) is independent of the topology.
System SecurityThe “padlock” declares a website is trustworthyThe padlock next to the address bar in a browser indicates that  that a secure connection has been established using HTTPS. This means only that traffic is secured against passive attack (eavesdropping) by third parties. It says little about the trustworthiness of the website.

[1] Sadler et al 2016, “Understanding misconceptions”,

[2] Sentence, S et al (editors, 2018), “Computer Science Education”

[3] Sorva, J. 2018, “Misconceptions and the beginner programmer”

For much more on this subject, and a look at other pedagogical content knowledge useful to Computer Science teachers, see my book “How to Teach Computer Science” available now from publisher John Catt Educational, from Amazon and many online bookstores.


Book Launch

It’s out! Buy it here on Amazon.

July 16th was the official launch date and many readers have tweeted photos of their copy already. Apparently there has been a slight glitch at the Amazon warehouse but I’m sure that will be ironed out soon, meanwhile other sellers have copies so check all sellers e.g. Blackwells.

Alan posing with a copy of HTTCS

Thank you so much to those people who have given me kind feedback already, it means a lot that teachers are getting so much from my words. I wrote the book because I believe our subject needs more discussion of pedagogy, but I hope this is just the beginning and you will add your voice to the conversation.

Please tweet me at @MrAHarrisonCS on Twitter or comment below. And if you enjoyed the book, please leave a review on Amazon. Many thanks.



Retrieval Practice – you can’t afford not to!

Two inputs this week prompted this blog. One was a conversation with a science teacher on Twitter, who will remain nameless but I will paraphrase their comments. Another was catching up with the YouTube feed of Computer Science gurus Craig’n’Dave, in particular this video on the Forgetting Curve.

Back to Twitter. That science teacher indicated that she finished the content by March in Year 11, and switched to revision. I and others suggested slowing down, focusing on quality first teaching (teaching it the first time more effectively so they retain more knowledge) and retrieval practice (regularly revisiting prior material, again to retain more). Her response was “you can’t break a unit to revise; you’re sacrificing one unit to revise unrelated material”.

My response was that you can start every lesson with some retrieval practice and then continue with the new content. It’s a very powerful tactic that might extend your teaching calendar so you have less time to “revise” but you’ve been revising as you go anyway, so this is not a sacrifice at all, it is a powerful teaching technique.

I have worked in a department where we galloped through the material. I was aware they were not getting it, and those that were getting it were obviously forgetting it. I was powerless to change the curriculum back then. Now I am my own boss I can set my own curriculum. I have built in retrieval practice to every lesson, first prompted by this blog, and the students are retaining the knowledge as we go, as evidenced by my synoptic testing (testing “everything we learned so far” not just topic tests). I use these resources below, because I rarely make things myself, just use the best tools out there.

Adding retrieval practice to your lessons is not a “sacrifice” – you really can’t afford not to.


No Hooks

“Has anyone got an exciting starter for CPU registers?”

No, random Computing teacher on Facebook. Nobody has. But it doesn’t matter because you don’t need it. You just need a decent “DO NOW” that settles them and gets them thinking about Computing while you do the register and deal with the usual issues (forgotten equipment, notes from parents and appointment slips, and most importantly greeting them and getting them settled).

A few years ago I read this blog by Ben Newmark and it changed everything. Nothing new, it’s a review – on why I killed my starters. | Ben Newmark (

When I trained to be a teacher lessons were supposed to come, like a meal in a fancy restaurant, in three parts – starter, main and plenary. The concept of a ‘starter’ became fetishised and developed into a systematic obsession. […] Huge, huge amounts of time and effort for a part of the lesson which, although it expanded as time went on, was initially only supposed to last five or so minutes. It was as if we had all come to believe that if our starter was whizbangy, engaging and differentiated everything else would just fall into place. And make no mistake, ‘starters’ were supposed to be whizzbangy. Laminated card sorts were good. Putting a laminated card sort in an envelope and labelling it “TOP SECRET” was even better. Using police tape to make a classroom look like a crime scene was best practice.

About the same time I started learning about Rosenshine’s Principles, and reading about Cognitive Science. To be fair to my then school, “DO NOWs” or “bell tasks” were already happening, it’s just that they were often “whizzbangy” activities “to get the children hooked into the subject” or pique their interest. However as Ben’s blog explains, starting the lesson, not with a “hook” but a review of prior learning can have a dramatic effect on progress.

Now all my starters are some kind of review. I mix them up a lot, being a Computing teacher I have access to the whole internet and my own material on Teams and Sharepoint. So one lesson will be questions made up by me, others might be a Quizlet study set or Quizlet Q&A. (I created the Computer Science “Verified Content” for Quizlet Inc last summer and you can use it for free here.) Sometimes it will be “Smartrevise” from Craig’n’Dave here. Other days they will go back to their notes (Cornell notes or sketchnotes they have made previously during flipped homework) and write a summary or answer the “cue” questions they set themselves. I may use the “Quick Fire Five” questions from William Lau here, and I have a free trial of Carousel Learning Gold membership to try out this term.

Whatever the choice of format, it’s a review of topics they have already studied, delivered in a DO NOW format, as described by Doug Lemov in Teach Like a Champion and on his blog here. As Lemov explains, DO NOW must follow a predictable format and “means of participation” must be clear (my instructions are always on the board and use tools they are familiar with, no new platforms or sources), need no input from the teacher, require an end product such as written or typed answers or quiz results, and should review prior learning, thus improving long-term retention. You should try not to engage in any discussions but just get students on task as soon as possible using the least invasive technique possible and praising the correct choices e.g. “15 people have started now, well done. Leesha has done three questions already, excellent work!” and so on. Lemov’s “Brightening Lines” technique can be used here to maximum effect. We can go back to Ben Newmark for a quick summary of how he starts his lessons.


Does it work? My Year 10 CS class (just the one this year but two classes totalling 40+ are coming up next year!), who I’ve been doing Rosenshine and TLAC techniques with all year keep telling me these things:

  • It is fun and very exiting! You can have fun and also work hard!
  • i love my teacher as i trust i will get good grades due to him knowing whart hes doing
  • lessons are hard but fun

I think I am on the right track.


Never mind the PowerPoint

Have you asked a question like this on teacher social media?

Has anyone got a PowerPoint for binary addition? They just aren’t getting it.

I need a decent lesson for client server versus peer to peer.

Any resources for boolean logic? I can’t seem to get them to understand it.

When I see these questions I do try to help, but I believe those asking would be better off working on their explanation of the concept. Once you have a strong grasp of the topic, you can explain it well, answer questions, and check for understanding meaningfully.

Teaching is simple, really, if we remember we are just trying to transfer knowledge from our heads to theirs. Looking for lesson resources that shortcut this process is a distracting, often futile enterprise. The time spent looking for that “magic lesson” could be better spent growing your own understanding so you can develop theirs.

Fortunately we now have the NCCE curriculum backed by the Oak Academy recorded lessons, so we can teach ourselves before teaching our students. I also recommend Craig’n’Dave videos and the Isaac Computer Science website, and the great textbooks by Heathcote & Heathcote. Better still, partake of the NCCE training offers.

Once you know it yourself, and feel confident you know it, you can explain the material in ways others understand.

Rather than asking for slides and worksheets, I recommend teaching yourself the content. Then study others explaining it well.

My forthcoming book might help with greater understanding of the GCSE Computer Science content. Comments welcome here on WordPress, on Twitter or on LinkedIn.


Peer to Peer IS NOT A MESH!

Misconceptions are my new obsession, and there are loads in the book.

The biggest misconception in the Networks topic is confusion between topology and “service model”. Here are some typical questions from Facebook that illustrate the confusion:

  • what is the difference is between a mesh network and peer to peer network?
  • Would you give marks for star topology advantages being central backup and security. Or is that not right because it is not referring to the actual cable layout?
  • It seems to be common to conflate Star with Client Server and Mesh with Peer to Peer, is this OCR stance?

Peer to Peer and Client-Server are two service models which are unrelated to the topology (star, mesh, ring, bus etc.). These service models are a logical description of the network, while topology is the physical description.

A network has a physical arrangement of devices and connections, and this is its topology. Independent of the topology is the way files and programs are shared, and this is the service model, or sharing model, which can be peer-to-peer or client-server.

The topology matters when we are discussing how packets travel around the network, which devices they pass through and how they get to their destination. But this is irrelevant when we are talking about how files are shared, because the user does not care about the journey the packets take when copying a file from another device or saving a file on the server. So a Star topology can support a peer-to-peer model of network, just as a mesh topology can support a client-server network (or vice versa).

The confusion arises partly because of unclear images in textbooks, which appear to show a mesh network described as a peer-to-peer model, and a star network as client-server, and we can see this on the Wikipedia page for P2P here. Confusing as these images may be, the authors are trying to illustrate the logical relations between devices rather than their physical connections, so the images are not wrong. However, learners (and indeed teachers) may be more used to seeing diagrams of the physical connections – the topology – of a network, and therefore unused to seeing the logical relationships described the same way. In short, the diagrams look exactly like topology diagrams, even though they are intended to convey the logical service model.

I discuss this misconception and many more in “How to Teach Computer Science”, out in June 2021 from John Catt Ed.


Googling is not Research.

This post was inspired by a Twitter discussion today.

When I was an NQT I was told “teacher talk is bad” and I had to ensure the students were “finding things out for themselves”. You can read about that tale of woe here… but at the time I believed it and included lots of what I believed was “discovery learning” in my pedagogy. This included hiding text around the room, giving half the students one half of the knowledge and the others the other half and playing “quiz-quiz-trade”. But mostly, because it was a computing lesson, they searched online for knowledge.

I started to suspect this was not highly effective when I asked them to find out about the family of cyberattacks called “social engineering”. I set the task “find the definition of social engineering”, expecting that after a few minutes they would write down something like “Social engineering is manipulating people into handing over confidential information such as a PIN or password. It includes blagging, phishing, pharming and shouldering.” But at least half of them wrote this:

Social engineering is a top-down effort to influence particular attitudes and social behaviours on a large scale—most often undertaken by governments but also carried out by media, academia or private groups—in order to produce desired characteristics in a target population.

Of course this is a valid definition, it’s just Wikipedia’s Social Engineering (political science) definition, not the information security definition. But even those that wrote the latter definition…

In the context of information security, social engineering is the psychological manipulation of people into performing actions or divulging confidential information.

…seemingly didn’t understand it when asked questions about it afterwards. The ten minutes they had spent searching and writing down a definition had been completely wasted.

This wasn’t an isolated incident, it was to be repeated many times until I decided never to allow unfettered googling and instead direct the students to particular websites.

Whenever I asked the students to google for some knowledge, what happened was they would spend time searching for a definition, sifting through the search results full of guff and ads, finding degree-level and industry-focused definitions that they don’t understand or definitions that fit an entirely different sense of the term being searched for, or that are relevant to a different context, then write them down, while all the time potentially being distracted by all the rest of the internet.

Each time I did this it would take around ten minutes just to “discover” one fact. Crucially, even if they stumbled on the right fact, or even later when I was directing their web “research”, they would not actually be digesting any information, they were just copying down what they found. Any cognitive load was all being expended on the technology, trying to find a relevant page and then when satisfied with that, just transferring words from screen to page.

No time was actually being spent thinking about the thing they were supposed to be finding out about. “Memory is the residue of thought” as Daniel Willingham explained, so our aim should always to get students thinking hard about the subject knowledge that matters. Googling is largely a waste of time from that point of view as it requires little-to-no thought about the topic. The task has lots of extraneous cognitive load (the searching and sifting of results) but little germane load (thinking about the topic, e.g. social engineering).

Nowadays I either provide the websites to access, or the textbooks to read. But more often I tell them what they need to know in a couple of minutes, check for understanding, then set a task with which they apply their newly-gained knowledge to a task.

Instead of ten minutes googling for “social engineering”, I will explain what it is, ask some questions to check they understood the basics, then set some work such as “are these scenarios social engineering?” or “research this cyberattack, which social engineering tasks can you spot?”. The same ten minutes they once spent googling, is now spent on highly-valuable activities with “desirable difficulty” that will help transfer the new learning into long-term memory.

Say after me: googling is not research.


It is Done.

Word tells me I have written 68,517 words, which is about the same as Treasure Island or Brave new World, about two Animal Farms or half a Catch-22. It’s about the length I was going for so I’m happy.

I spent this long holiday weekend proof-reading it myself, sorting out image credits (or making my own images where I could not find a licenseable image!) and fixing all the references and links.

I have also stashed all the links on the pages of this website, so if you want a sneak preview of what I discuss in the book you can follow all the links!

More to follow, but right now I have to get this off to the publisher.

Amazon link here, for pre-order


Achievement unlocked. Book listed.

Two milestones happily collided today. I finished the first draft of #HTTCS, 61,000 words of computery goodness. And I got an email from my publisher, John Catt Educational to say that the book is listed for pre-order.

I’m excited and a little bit nervous. Not least because I’m a few thousand words over my planned count, and some of it needs a tidy up. So I’ll be editing frantically and asking friends to proof read before sending the edited manuscript to the publisher.

Pre-order on Amazon here. Kindle format will be added soon. Thanks to everyone who has helped with this labour of love!

How to Teach Computer Science: Parable, practice and pedagogy: Alan J. Harrison: 9781913622572: Books


Escape the Room – updated

I’ve fixed an error in my Escape the Room activity. I ran this when school was fully open and hopefully will run it again one day. Meantime, you might consider using the clues only, without the locked box, and give a prize for the most solved.

Powerpoint here: Escape_the_Classroom_Resources – WHGS vx

More files here on my Onedrive including the Morse code wav file and an editable “bitmap” spreadsheet.

Original post follows from 2019.

Big thanks go to Claire Wicher (@GirlGeekUpNorth) for her resource which gave me a starting point, and I’ve kept in a lot of her content. Claire’s lesson was intended to fit into a standard 50-60 minute lesson, with preamble and review, hence it was too short for my purposes. This one should take 1-2 hours depending on ability and how much help you give them.

The slides are largely self-explanatory. If you open the Powerpoint you will find #escapeinstructions and an inventory of parts. The objective is to open a chest by solving puzzles which reveal combinations for the six locks. There’s a twist at the end though, just for laughs and that extra feeling of achievement.

I’ll post photos of the actual kit next week, and watch my school Twitter account for photos and videos of the students in action. Below is the download link for the Powerpoint file.