Kahoot goes into the cupboard of shame!

Has Kahoot had its day? Read on…

Keeping on top of the research and best practice ideas in Computing can feel like a struggle. This is actually a good thing, because it shows there are a lot of great people cracking on with driving our subject forward. But how to stay up to date and not drown? I like podcasts. One in particular has become a must-listen and I am catching up with old episodes this holiday.

Learning Dust: CAS Master Teacher Andy Colley and his sidekick IT Manager Dave Leonard have had a stellar lineup of guests on their pod since starting just over a year ago including Miles Berry, Prof Damian Hughes and Tom Sherrington.

There was controversy in a recent episode, when creator of and Director of Computer Science at Outwood Grange Trust, Tristan Kirkpatrick dared place “Kahoot” into the “Cupboard of Shame”. Why? Because it encourages speed of answers over depth of thought. Students race to be first, rather than right.


For what it’s worth I totally agree, which is why I use Forms, Quizziz and Quizlet, and occasionally Quizlet Live, instead of Kahoot now. What say you? And what podcasts do you listen to? Comment below, or on Twitter.


Win “How to Teach Computer Science”

HTTCS book cover
HTTCS book cover

Competition time! I am giving away three signed copies of my book, one each week for three weeks. All you have to do is Follow me on Twitter, then Like and RT my competition tweet to be in with a chance.

I will enter all the names into a draw and pull one out each Friday. If you are the lucky winner I will DM you for your address.

If you don’t win, remember HTTCS is just £11.35 on Amazon at time of writing and has received some excellent reviews here.


First competition starts today, look out for my tweet entitled “COMPETITION” (not this tweet), make sure you are following me then RT and Like the tweet. That’s all you have to do. Good luck!


It’s Computing.

meme of Julius from Pulp Fiction pointing a gun and saying Say ICT again I dare you

For several years, I have been teaching Computing in a school where nobody was sure what to call the department, subject or awards. Most of all, too many staff were calling the department or the subject “ICT”.

I recently clarified this with some publicity including this email to key personnel: T&L Director, Data Administrator, Exams officer etc.

The department is “Computing”, part of the Science Faculty. The KS3 subject is Computing which is the KS1 to KS4 national curriculum subject name.

At KS4 we have two qualifications now:

  • Computer Science GCSE (not Computing)
  • Creative iMedia Cambridge National Certificate (this is specific to my school, your mileage may vary 🙂 )

At KS5 we have just

  • Computer Science A-level

It’s a bit of a strange subject, as the National Curriculum peters out at KS4 and we have a qualification which is NOT Computing but Computer Science (which is not the same thing).

I hope that extract from an email I sent explains how I sorted out the confusion in my school. To understand something of how this confusion came about, I recommend my book, but also this excellent article about the history of Computer Science and its relationship with Computing, Information Technology and other fields: The Great Principles of Computing.


Live Coding

I am a big fan of live coding as a pedagogical technique to teach programming. As I note in my book (HTTCS available here) the evidence for effectiveness of live coding is clear:

Live-coding is an approach to teaching programming by writing actual code during class as part of the lectures. In a live-coding session, the instructor thinks aloud while writing code and the students are able to understand the process of programming by observing the thought processes of the instructor. […] We found that live-coding (1) makes the process of programming easy to understand for novice programmers, (2) helps students learn the process of debugging, and (3) exposes students to good programming practices.

Raj, Patel et al, Role of Live-coding in Learning Introductory Programming: link

On my YouTube channel I have now uploaded a live coding lesson I recorded recently. I talk through my thought processes as I solve a programming problem I composed. The problem itself and many others are available in a booklet I created for teaching skills needed to tackle the Non-Examined Assessment (NEA) in the 2016 GCSE spec. Although the NEA is no longer required, practical programming experience is still vital, so I still use these exercises with my classes.

In the video you can see and hear me narrate my thought processes as I solve the problem. I also demonstrate “call before write” coding, where I write a call to a subroutine, before later writing the actual subroutine. This matches my thought processes, and fits with the idea of decomposition, and solving a problem from the top down, focusing on the highest level of abstraction first, and filling in details later.


“Unscripted” with Craig’n’Dave

I’ve just finished working with Craig’n’Dave to record a series of three videos for their YouTube “Unscripted” series. It was an excellent way to spend a few hours, as all three of us love nothing more than talking about Computer Science teaching!

The first video will be live on their channel on Monday, with two more to follow each Monday. Subscribe here and don’t miss a thing!


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.