Differentiation and Programming

The most successful ICT lessons I’ve taught over the past 10 years have all shared a couple of attributes.  The first is the idea of ‘freedom within a framework’ – clear success criteria but pupils have a measure of control over the output (topic/theme is the first example that comes to mind) which helps to motivate them.

The second is the very tricky concept of ‘challenge and support’.  This is especially difficult in mixed ability groups where there are potentially no upper or lower ability cutoffs.  I’ve found that whilst I have become quite adept (I think) at supporting the lower end, it is sometimes more difficult for me to plan in the flexibility to allow those students who can to go deeper and further without limiting them or starving them of advice whilst I get others up to speed.  At one hour a week. Phew!

I make heavy use of video tutorials in lesson, (my favourite recording tool is Screencast-O-Matic) as they allow pupils to access my teaching at the relevant point in the lesson for them.  It also stops me from doing a demo at the start, then repeating the demo 30+ times during the lesson as pupils forget/didn’t listen.  They can also pause, rewind and even mute me if they want!

However, the problem with video is embedding the challenge. If you are showing them what to do, what are they thinking? Are they working problems out for themselves or just copying from the screen?  And yet the support has to be there if pupils need it.

So, to scaffold the challenge, here’s the method that I’m adopting when posing coding problems in Scratch:

Step 1 – Show them the pseudo-code

Firstly, learners get the pseudo-code and try to create their code blocks based on it.  If they can’t then they move to step 2.

Step 2 – Code blocks not joined together

Step 2 shows learners a screenshot of all the blocks needed for this piece of code.  However, they are not arranged, so the pupil has to work out how to combine them.

Step 3 – Blocks joined together.

Learners should be encouraged to move away from steps 3 & 4 as soon as they feel able (or a bit before) as it involves less thinking.  However, the support does need to be there, particularly for trickier bits of code.

Step 4 – The video

Usually used when learning how to use Scratch, this shows pupils where the blocks can be found in the program and gives them a voice over to explain the context of the problem.

Worked Example

In this example, we are trying to code a binary to denary converter.   The program needs to ask the user to input at binary number one digit at a time and record their answers to different variables.  This example covers the introduction to the program and the question covering the first digit of the binary number.


when the green flag is clicked

say “Hello! You are going to convert binary to denary.”

wait 2 seconds

say “Please type 1 or 0 for the next few questions.”

say “Is there a one in your binary number? Press 1 for yes or 0 for no” 

wait for answer

set variable ‘Ones‘ to answer

Deconstructed Blocks

Deconstructed Blocks

Constructed Blocks

Arranged Blocks

The video

Finally, the help video – made with Screencast-O-Matic

I’ve just started to adopt this approach with some classes, and I’m finding that they really enjoy the challenge and try to work with as little support as possible.  They are also preparing themselves for more text based coding by engaging with the pseudo-code.  It’s going to take a considerable effort to retro-fit this into my existing Scratch units, but I feel that it will be well worth the work.  How are you going about creating a learning scaffold for your pupils, please leave me a comment to let me know.

This post is directly inspired by the great work done by Phil Bagge (@baggiepr) and the Computing department at Bourne Grammar including Marc Scott (@Coding2Learn). Thanks for sharing gents!