Book Update – Publisher Acquired!

The Book Formerly Known As CS Hinterland (TBFKACH) has a publisher. Big thanks to John Catt Educational for taking a chance on me. I have agreed a deadline of end of April for the copy, so it can be out by June.

The new working title is “How to Teach Computer Science”. This is because the conversations I have had with experts in academia and education have convinced me there is a place for a book that not only explores the Hinterland of our subject (helping teachers increase the “Science Capital” of their students – more on that later) but exposes some of the highly-effective teaching practices coming out of the latest research in our subject.

From the book introduction

Computer Science is a young subject, taught in schools only since the early 80s and – after a hiatus in which “ICT” took over in UK schools – re-established as a core subject only in 2014, as part of the National Curriculum subject of “Computing”. Computer Science graduate teachers are scarce and many schools employ non-specialists to teach our hugely important subject. Pedagogy specific to Computing is therefore under-developed and – by many teachers – largely overlooked. Computing teacher forums and social media groups are awash with requests for “lessons on <x>” and “schemes of work for <y>”, much rarer are the conversations such as “Should we do <x> before <y>?”, “Is this a good analogy for teaching <x>?”, “What misconceptions to students develop when learning <y>?”.

So right now, as well as writing illuminating tales from the hinterland, I am magpie-ing pedagogical techniques. A rough and ready list of concepts that I am considering for inclusion are these:

Underlying Cog Sci concepts

  • Cognitive load theory
  • Memory as residue of thought
  • Metacognition
  • Cognitive dissonance (avoiding)
  • Ebbinghaus Forgetting curve

Underlying Teaching and learning concepts

  • Science Capital
  • Blooms / SOLO
  • Constructivism
  • Culture of Error
  • Motivation
  • Rosenshine’s principles
  • Explicit teaching
  • Deliberate practice
  • Whole class feedback
  • Retrieval practice

Curriculum concepts

  • Concept maps
  • Fertile questions
  • Threshold concepts
  • Mastery learning
  • Inclusion and belonging

Teaching techniques – general

  • Dual coding
  • Semantic waves
  • Subgoal labelling (chunking)
  • Worked example
  • Retrieval practice
  • Hinge questions
  • Peer instruction
  • Misconception awareness
  • Unplugged activities
  • Collaboration
  • Physical Computing

Teaching techniques – programming

  • PRIMM (use-modify-make etc)
  • Parson’s problems
  • Pair programming
  • Teacher live coding
  • Notional machine
  • Schulte’s block model
  • Code tracing (TRACS)
  • Scaffolding (e.g. skeleton code)
  • Sabotaged code
  • Low floor, wide walls, high ceiling activities

This list may grow or shrink over time as I continue to research and discuss the issues. Your input is welcome, have I missed something?

Feedback welcome here or on Twitter, as always


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