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.


By mraharrisoncs

Freelance consultant, teacher and author, professional development lead for the NCCE, CAS Master Teacher, Computer Science lecturer.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s