computing programming teaching and learning

Block Model

Learning programming has several challenges:

  • It is concept-rich, leading to cognitive overload
  • It balances comprehension with coding experience
  • It demands persistence and resilience
  • Learners need a secure mental model of computation


If you haven’t done so already, you should study the “PRIMM” model of programming instruction, which suggests five stages of interacting with new code: Predict, Run, Investigate, Modify, Make. You can read more about PRIMM in the Teach Computing quick read at and on the blog

The block model

During the “I” phase of PRIMM, while investigating the code, students should be encouraged to ask questions about it to deepen their understanding. You can prompt them with questions such as:

  • What would happen if you swap lines 2 and 3?
  • What would happen if you give it input of ___?
  • What if you change the symbol on line 5 from > to < ?
  • Line 5 shows a condition-controlled loop, why do we call it this?
  • What will make the loop end?

We can check we are encouraging valuable thought across the whole range of programming skills using an approach called the “block model”. Devised by Carsten Schulte in 2008, the block model has a grid with two axes, one showing the size of the programming element under consideration, and the other the distinction between the structure, execution and function of the program:

If we map our questions and activities onto the block model, we can then identify any gaps. Adding more tasks in those gaps will ensure that we cover the whole grid. In this way we ensure students are thinking hard about the full range of skills required to thoroughly understand a program.

Find out more

Visit to find out more about fostering program comprehension, or read the other principles at And subscribe to Hello World to read much more about computing pedagogy every two months:

The block model is also explained in “Computer Science Education” edited by Sue Sentance and the new version is available now for around £25 here I summarise this principle and many other programming pedagogies in my book “How to Teach Computer Science” available for under £15 here:

computing physical teaching and learning tech

Physical Computing Intro

Physical Computing provides engaging, relevant, and inclusive learning experiences and helps develop programming skills while being creative and collaborative. Code makes something happen in the real-world, not just on a screen. Learners (particularly girls) find physical computing engaging.

Two Year 9 girls are, sitting near a wooden rectangular arena containing a BitBot microbit buggy. They are in a classroom. One is smiling while wears a facemask but is making "jazz hands"!
The Bit:Bot buggy allows code to make something happen.

Physical computing devices take some time to set up, and can add complexity and behaviour challenges to a lesson, so take some time to think through these before using them in class.

Getting Started

  • Start small. Focus on a small cohort, maybe an after-school club, until you get up to speed.
  • Use the training and support available, there are physical computing courses on and help is available from your hub
  • Choose a device and activity based on context, setting and need.

There are five main categories of device, and the most common are listed below:

Close up of a Crumble - a small white circuit board - with crocodile clips connecting it to a Sparkle - a smaller board with a neopixel LED on it. The LED is lit up red.
Crumble is an “Embedded Board”
  1. Packaged Electronics such as “Snap Circuits” – these require a lot of electronics knowledge and are best suited to DT projects.
  2. Packaged programmable products: Sphero, Bee-Bot, Lego WeDo/Mindstorms and VEX are simple to set up and get you straight to the programming, good for Primary settings.
  3. Peripheral boards such as the MaKey MaKey connect to a computer to add interactivity, but cannot be unplugged and run standalone. Simple and fun!
  4. Embedded boards like the Micro:Bit, Crumble and Raspberry Pi Pico have a microprocessor onboard that you program via a computer, but they then run the program independently, so can be disconnected. Use these to control buggies, create musical instruments, name badges and weather stations…
  5. General purpose boards like the Raspberry Pi 3, 4, Zero W and W2 are actually whole computers that run a full Linux-based GUI operating system. You connect one to a monitor, mouse and keyboard and use it like a computer, but it has lots of interfaces for connecting electronic equipment. You can do almost anything with a Pi, but the learning curve is steeper than the above devices. They run Scratch, Sonic Pi and Minecraft with a Python interface, so you can write “mods”, or connect a camera to make a digital photobooth, the possibilities are limitless!
Screenshot of Raspberry Pi showing a Python window on the left and Minecraft on the right. The code says "mc.PostToChat("Hello World") and in the Minecraft world the chat message "Hello World" is visible.
Minecraft Pi comes with a Python interface where students can write their own Mods!

Next steps

  1. Book onto some Physical Computing CPD at
  2. Choose a device and an activity – see the or the Raspberry Pi projects website:
  3. Contact a nearby Computing Hub to request a loan of a physical computing kit
  4. Try it out in a small group like your own after-school club, a Code Club or Coder Dojo, then introduce to your classes!

This blog was based on material from the NCCE. Visit to find out more about physical computing, or read the other principles at And subscribe to Hello World to read much more about computing pedagogy every two months:

And if you like this post, remember to thank me with a coffee, and then go and buy one of my books, “How to Teach Computer Science” is packed with teaching ideas like this. Thanks!

If you are grateful for my blog, please buy my books here or buy me a coffee at, thanks!
tech Uncategorized

Mastodon: Into the Fediverse… a Tootorial.

As author of “How to Teach Computer Science” (see how early I got the plug in?) it’s probably right that I post about my foray into Mastodon, the “Twitter alternative” that everyone is talking about (again, more on that later). I will try to keep this post updated over the next few weeks so check back often. If you like this post, consider bunging me a coffee or buying my book. Also forgive the occasional ads on the page, this is not my day job. Thanks!

Screenshot of the Mastodon web interface showing the author's profile and a post below giving the look and feel of the website.

What is Mastodon?

It’s microblogging software, running on thousands of separate servers. You sign up and can share posts or “toots”, that others can see. You can follow people and use hashtags, much like Twitter (and also very much not like Twitter in all the right ways, which you will understand soon).

In short, it’s software. It’s not a service/website/platform/publisher like Twitter. It has no teams of content moderators. This vital distinction is of utmost importance, because it’s underlies many complaints made by new users, who have made the switch from the birdsite. Essentially, Mastodon is software that runs on a server and provides a microblogging platform to its users. A technical person called a “sysadmin” has installed the software on a server and made it available to you via the WWW. That sysadmin is wholly responsible for the server “instance” they have created. Users sign up on the web interface through a normal browser, or on a mobile device can download the Mastodon app, or alternative apps like Tusky.

Note: I will use the terms “server”, “instance” and “domain” interchangeably in this post because if you’re new to the service the distinctions are really not important.

Each instance exists independently of the others and should be considered a separate community, with its own rules and etiquette, although they do talk to each other (see later). Take the time to learn those rules because the premise of a Mastodon instance is that it is a collaborative, supportive community of like-minded people, with no agenda, no ads and no algorithms pushing content. Just like the early internet servers were, on Fidonet, Usenet, IRC and everything else that used this model long ago! (Aside: I was sending emails and using Usenet in 1986 at Sheffield Uni. I’ve seen these services come and go a few times. More on that later).


Which server do I choose?

You’re probably here because someone you know has suggested you join mastodon. So maybe join the server they are on. If they have shared their full mastodon username, the server is the bit after the username, i.e. my full username is so my server is available on the web at If that server is closed to new signups (the number of people signed up across the “fediverse” has doubled in the last week) then go with a similar one, and you can start looking here.

I am on whose server rules can be found at the “about” page here and you can see the rules listed as follows:

  1. Sexually explicit or violent media must be marked as sensitive when posting.
  2. No spam or advertising.
  3. No racism, sexism, homophobia, transphobia, xenophobia, or casteism.
  4. No incitement of violence or promotion of violent ideologies.
  5. No harassment, dogpiling or doxxing of other users.
  6. No illegal content.

That all sounds great, but even more information is below the rules. I can see over 100 other instances that are banned from connecting to this instance, and read the reasons for doing so. “Racism”, “illegal content”, “harassing trans people” and “conspiracy theories” are some of the reasons listed by @stux, my sysadmin for preventing other servers from connecting to this one. Stux is a good guy who runs this site for a living, so I have PayPalled him some money. Your server admin can be found on your server’s “about” page, and you should consider helping because they usually run the site purely on voluntary donations.

Browsing the about page will make the culture of this instance clear to you, and reveal the outlook of the sysadmin(s) which is kind of important, so you can decide whether you want to join the community.


What’s “federation”?

So each instance behaves like a community, but that’s no good if your friends are all on other instances, right? OK that’s where federation comes in. Each instance will “federate” with all other instances: you can follow others and your posts will be seen by others on other instances and vice versa, within certain parameters. We saw above that a sysadmin will judiciously block other servers based on their federation policies, and that’s great to keep this instance reasonably safe. But generally speaking, your instance will seamlessly talk to all other instances where your friends are. Here is a handy flowchart to show how federation works, courtesy of user :

Diagram showing "public toot by @Foo" at the top and a flowchart below explaining which timeline a toot will appear.

How do I find people to follow?

Start with someone you know, and browse to their profile. I am here: . If you click “following” and “followers” you can see who I follow, and quickly follow them using the little “add person” icon to the right of their names:

Icon of person and plus sign overlaid

You can also search hashtags, and if you’re reading this because you are in my UK teaching network, you probably want to click here and follow some people posting with the #EduTooter hashtag. Just type #EduTooter into the search box on the site or app, and then follow some of the tooters that come up! (Sorry about the word “toot”, I thought “tweet” was silly, but here we are…)

Trying hashtags like #medicine, #grungemusic #crossstitch usually comes up with some people to follow, but this process may be slow and take a few weeks before your timeline is as busy as the birdsite was. Bear with it, this is because there is no algorithm pushing content to you, which is why you came here, right? To be free of the corporate firehose of questionable information? Right?

Note: Mastodon has a “Lists” feature just like the birdsite, so check that out, when I have any useful lists of EduTooters to share I’ll share them here, come back often!

Can I use an app?

Yes. I recommend signing up through the web browser interface, it’s just much easier to get started that way. Some features are not available on the app and the screen real-estate needed to get set up easily is substantial. But once signed up, there is an “official” (i.e. provided by the not-for-profit German company that looks after the Mastodon open-source software) app called Mastodon but also some “unofficial” ones. I’m trying Tusky now and running both apps to check them out. Others may be available.

How do I stay safe?

You have checked the moderation policies of your server instance, right? So you know what content is allowed and what isn’t. Firstly, be a good member of the community and follow those rules yourself. Be careful, many server rules require Content Warnings for certain things, e.g. requires a CW before mentioning violence. Just add a CW in the app or on the web by clicking “CW” below the text box. Follow all the other rules as well, to be a good community member. (This is how the early internet was, let’s recreate the good times of community!)

If you get harassed, attacked or any trouble, you need to know how to block a user, block a domain or report to the admin. Click the 3-dots on the right of the action icons below the toot. In the pop-up menu, choose an action from Mute, Block user, or Block domain. Obviously “block domain” will be greyed out on your own domain.

Screenshot of Mastodon timeline after clicking on the 3 dots, showing the pop-up menu with Mute and BLock options highlighted.

(I’m grateful to Alex for the image – follow him here).

How do I support my sysadmin?

Remember, Mastodon is run by volunteers. I’ve written about my host above and explained that I have sent a donation by PayPal to @Stux, many of you may be on which is run by the lead developer of the Mastodon software, Eugen aka @Gargron. Whichever server you are on, you should definitely support your admin with a small payment: whatever you can afford, as this ensures the platform remains usable, and stays out of the hands of the big corporations. Click the “About” page on your server home page to find out how to help.

Where can I find out more?

In writing this blog I am grateful to Max Eddy for his article in PCMag How to Leave Twitter for Mastodon which is great further reading.

Wired has some tips in this article: “How to find your friends on Mastodon”

Mashable has an article here also “How to Switch Mastodon for Twitter”.

If you enjoyed this blog or found it useful, remember I too rely on donations! I wrote two books called “How to Teach Computer Science” and “How to Learn Computer Science” available here, if you have a child aged 14-21 learning computer science, why not get them a copy of the latter? Or you can buy me a coffee below. See you on Mastodon!

If you are grateful for my blog, please buy my books here or buy me a coffee at, thanks!
#LEARN computing HTTCS teaching and learning Uncategorized

Two chances to win #htLEARNCS!

My new book “How to LEARN Computer Science” is out now, at Amazon and JohnCattEd, and you have a two chances to get hold of a free copy…

  1. Like and Retweet my tweet here or Like my Facebook post here or here, or my LinkedIn post here. This will enter you into the prize draw and SIX winners will receive a free copy.
  2. BOGOF! Send proof of purchase of my first book “How to Teach Computer Science” dated today or later, and I will send you a free copy of #htLEARNcs (limited to the first SIX applications).
Screenshot of Amazon web page showing book for sale "How to Learn Computer Science"
Book now available in Amazon and at the publisher John Catt Ed

I’m very excited about this book, and hope your students are too. It will be available soon on the Hachette store too, thanks to JC’s deal with them, and bulk discounts for your class will be possible. So why not get a copy for yourself now? The foreword is written by my good friends Craig Sargent and Dave Hillyard of Craig’n’Dave and I am very humbled to have had their support during the creation of the book, and their wringing endorsement on page 1.


Thanks for your support!

#LEARN computing HTTCS

Stories, skills and superpowers

The launch of “How to LEARN Computer Science.”

The student book is being printed as we speak, and is available for pre-order on the John Catt website and on Amazon. The story of the book is told on my earlier blog post here.


I am delighted to share that the book’s Foreword has been written by my good friends Craig’n’Dave, who have been very supportive throughout this project, and inside the book I very much recommend their products especially the course companion SmartRevise, not because they paid me (they haven’t!) but because I use it myself with great results.

The book is not a textbook nor a curriculum primer, but hopefully a riveting read for ambitious students, illuminating the topic and suggesting some stretching activities.  I have taken all the good stuff from the first book (How to Teach Computer Science, available here) that is relevant to an audience of GCSE students themselves, and added lots of new content.

Here are some highlights, I’m proud of how it turned out, see for yourself from these extracts, and pre-order at the links above.

Screenshot from PDF of the book, including the heading "Question It" and the question "Why are there so many programming languages" and 5 other questions.
Extract from Chapter 4 of “How to Learn Computer Science” available for pre-order now.
Screenshot from LEARN book, showing some activities for students including "research real-life attacks mentioned above" and six other tasks.
Extract from Chapter 10 of htLEARNCs
Screenshot from book showing a "hinterland" story entitled "Inside the black box" about AI in hospitals, and subsequent "fertile question" prompt: "Is AI a force for good?"
Extract from Chapter 11 “Issues and Impacts” showing a “hinterland” story and subsequent “fertile question” prompt.

Currently the book is scheduled for availability on 9th Sep and costs just £12. I asked the publisher to keep the book affordable for students, and I’m glad that’s been possible. There may be bulk discounts available in time, I’ll update you on this blog if that happens.

Don’t forget, this book is the student companion to my original “How to Teach Computer Science” also available from John Catt, Amazon and all good online sellers, links available from the main page of this blog, so why not order both ready for the new school year?

If you are grateful for my work on this blog and the books I have written (remember my royalty is less than a quid of the cover price!) then feel free to show your gratitude here. Thanks!

If you are grateful for my blog, please buy my books here or buy me a coffee at, thanks!

Prize Draw winners

The winners of a free copy of “How to Teach Computer Science” are:


Please direct message/private message me on Twitter or Facebook or email with your address to claim your book!

If you were unsuccessful this time, make sure you follow me on Twitter for future promotions, or buy a copy now for under £15! If you won, consider helping me out with a coffee. Thanks!

If you are grateful for my blog, please buy my books here or buy me a coffee at, thanks!

Slide into summer with a free book…

It’s coming… that time we all catch up with family and friends, have a well-earned break, and put our feet up with a brew and a book. That book could be on me, if you enter my prize draw for a copy of “How to Teach Computer Science” Simply reblog this blog, RT my tweet here, or Like this post on Facebook to enter the prize draw. Three winners will get a copy in the post after the competition closes at Noon on Sunday 24th July. Thank you for spreading the word!

BREAKING NEWS: How to LEARN computer science, the ambitious student’s guide to studying computer science, will be out this September!

Book covers, How to Teach Computer Science and How to Learn Computer Science

Stop expiring your passwords.

The title says it all, please for the love of children, turn off password expiry on your students’ accounts. Here’s why…


I was an Information Security (Infosec) consultant before I was a teacher. The prevailing wisdom up in the 20th century was that passwords should expire regularly, so that any compromised password quickly became useless. The password-thief would lose access once the rightful owner changed their password. This made sense at the time, most users had only one or at most a handful of passwords. They could cope with changing them once a quarter or so. That was then.

Forward to 2022 and we all have dozens, even hundreds of passwords. If they all expired quarterly, not a day would go by without one changing. But they don’t. We have access to password keepers, and most browsers offer to save passwords in an encrypted database. Our sensitive data is kept behind two-factor authentication (2FA) or multi-factor authentication (MFA) processes. We don’t have to remember a password that changes every 90 days or less. So why do it to the pupils?

I teach Year 7 upward, that’s aged 11 plus. Some of the pupils I teach arrive in with a reading age of 8 or less. My colleagues in upper primary who begin teaching pupils to use Office or Google Docs are teaching pupils with a reading age of 5 or 6. This is before we consider SEND needs such as visual impairment, motor control issues and ADHD to name but a few that are relevant here. So you can imagine the challenges they face. When password expiry came around, the conversations often went like this:

  • Ah, your password has expired. Right let me help…<sigh>
  • In those two boxes you have to type a new password.
  • No it can’t be the old one again. Oh, you already tried that? Right well now you have to type in your old password again.
  • No, I know I said you needed to type a new password but that comes next, first you need to type your old one in again, or it won’t let you type the new one.
  • Now, the new password needs to be at least 8 characters long, include a capital and a number, and be different to all your old ones.
  • If didn’t work again? Did you follow the rules? Ah, I see you didn’t use a capital, you need to press Shift for that, remember?
  • Right, maybe you didn’t type it exactly the same in both boxes.
  • No you’ll have to type your old password correctly again to have another attempt at choosing a new one.
  • OK so we’re ready to choose a new password again, can you remember the rules?
  • No those two passwords are not the same length, I can see from the length of the asterisk strings. Can you go back and do it again?
  • Oops, you hit Enter and it’s asking for old password again. Just do that first then try to get the new password the same twice this time.
  • Right two passwords the same length, are you sure they are the same?
  • Oh dear it’s still rejecting the new password. Did I mention it cannot include your name? You included your name? We can’t do that.
  • Yes, you need to type your old password again to try again.
  • One capital, at least eight characters, and a number.
  • Yes, they look the same length, are we ready to go?
  • Great job! you changed your password. Now write a hint in your planner, something to remind you what the password was, but not the whole thing, OK?
  • <writes hint>
  • <1 week later>
  • You can’t remember your password? Does the hint not help? OK then I’ll reset it. You’ll need to choose a new one, it will need to be at least 8 characters long, include a capital and a number, and be different to all your old ones….

repeat for at least half of every Year 7 class for half of the year and more than a handful of students every week, back when passwords expired in my school. But that was then…


I successfully used my prior experience as an Infosec (Cybersecurity) consultant to persuade my IT team to turn off password expiry. Because it’s not necessary on student accounts, and strongly discouraged on staff accounts too. Who says? The National Cyber Security Centre (NCSC). In an advisory article entitled “Password policy: updating your approach”, the UK government’s dedicated Cybersecurity unit wrote this:

Snip from the NCSC website (full text posted below this image in the blog).
NCSC Article “Password policy: updating your approach”

“Forcing password expiry carries no real benefits because:

  • the user is likely to choose new passwords that are only minor variations of the old
  • stolen passwords are generally exploited immediately
  • resetting the password gives you no information about whether a compromise has occurred
  • an attacker with access to the account will probably also receive the request to reset the password
  • if compromised via insecure storage, the attacker will be able to find the new password in the same place”

I could add other reasons to the above, regular password expiry causes users to write down their passwords, or just forget them. Now they no longer expire I don’t have the torturous “password expired” lessons and pupils no longer use “I forgot my password” as an excuse for missed homework. I gave them some skills to choose a strong, memorable password and introduced detentions for forgotten passwords after a while, as explained on this blog post. And nothing terrible has happened.

Please. Stop expiring your passwords.

My book “How to Teach Computer Science” is available for just £15 or less, see for details. Tweet me @mraharrisoncs with comments.

computing teaching and learning


Cover Reveal…

How to LEARN Computer Science is coming soon. Publication date is set for September 1st. htLEARNcs contains all the good stuff from the first book (How to Teach Computer Science, available here) that is relevant to an audience of GCSE students themselves, and I’ve added lots of new content. You can read all about the content on my previous blog here.


As I said earlier, I have kept the new book as faithful to the old book as possible, so teachers can use HTTCS for their own benefit, while recommending (dare I say buying 🙂 ) htLEARNcs for their students.

Teachers can set a chapter of htLEARNcs for homework, or just one of the activities each week. A few copies in the classroom could be used as “stretch” activity resources, and aspirational parents can buy it for their children.

If you are grateful for my blog, please buy my books here or buy me a coffee at, thanks!

I’ll keep you posted on the progress towards publication. But it’s great to see this second book coming together! If you haven’t got hold of the first book yet, it’s still just £11.55 on Amazon at time of writing.


“It’s a duck!, obviously”.

I work at this youth club where the children turn phones off and put them away at the start of the club session, and don’t turn them back on again until they leave. I love how this means they are present, engaging with others: their peers and the club leaders, for the duration of the session.

“It’s a duck, obviously!” I’m looking over the shoulder of a 14 year old girl. There are a group of them sitting around a picnic table. They are playing Pictionary, without the board game. Just choosing things to draw for others to guess, on an A4 sketch pad.


There is a group of mostly boys playing basketball and another group playing football. I go in goal for a minute. I make a show of diving but I’m rubbish. I shoot a basket. It drops short of the hoop. I’m rubbish at that too but the boys don’t mind: “good job you’re good at computers, Sir!” one of them jokes.

In a moment we will go inside and I’ll teach two dozen of them to write computer programs. They will find it easier to concentrate on my instruction because they don’t have the distraction of pinging mobiles: the collected might of YouTube and TikTok, with their designed-in, completely a feature-not-a-bug, industrial strength addictive charms.

By the time they get their phones out again they will have spent six hours off them. They’ve had a long break from their social media, free of the need to check “Likes” and get dopamine hits from repeated sub-15-second trending videos. UK’s Mind charity recommends finding a balance between online and offline life for the benefit of mental health. The kids that come to this youth club get 30 hours per week offline, giving them time for really positive, face-to-face interactions with their peers and teachers.

Oops, the cat is out of the bag. Of course I’m not a youth club worker, I am a teacher. The youth club is my school. But the rest is true, the game of Pictionary and the basketball and football all happened, and is typical fare at break and lunch.

So. Does your school give your kids a solid 6-hour phone break every day? If not, why not?

Buy me a coffee at or buy my book at