More pages will be added in future for the following hardware and software, with teaching ideas and resources for students with SEND:

Bee-Bot / Blue-Bot / ProBot
Other simple physical computing devices
BBC micro:bit / CodeBug
Scratch Jnr
Sonic Pi

For students with profound and multiple or severe learning difficulties that can’t access programming activities, you might want to look at the Developmental Computing pages for resources around cause and effect, and control and exploration with technology which is a precursor to computational thinking and programming.

Programming Approaches

Here are some ways of making programming more accessible and engaging with SEND learners. As with all the resources and advice on this website, it is not one-size fits all, you will need to adapt as necessary with your students.

  1. Unplugged Activities – these are activities undertaken away from the computer in order to teach key concepts such as repetition and selection, or to introduce basic functionality in a piece of software. The advantage of doing this unplugged is to avoid the distraction of technology, and to introduce a concept or skill through a familiar context or specific interest of a student.
  2. Planning Programs – again this can be done away from the computer, using laminated command cards, 3D printed code blocks, commands recorded on recordable buttons,  through student actions, or using pen and paper. For example, a Bee-Bot program to reach a certain grid square can be planned by sequencing arrow cards before being inputted into the robot. This then provides a record of the algorithm in case of errors and the need to debug the program. Examples of Scratch programs or individual commands can be given to the class to act out, to aid understanding (live action programming!)
  3. PRIMM – this stands for Predict – Run – Investigate – Modify – Make and you can read more about the approach here. This approach provides a number of ways for students to engage with the process of programming, for example making predictions about a piece of completed code, running code to see what it does, talking about or annotating a program to explain what each part does, modifying existing code to create something new, and making a program from first principles. This allows the teacher to scaffold learning appropriately, and students within the same classroom to work at different levels on the same project.

Other approaches to try include using Parson’s Problems (where students have to rearrange code snippets into the correct order); Paired Programming (allowing students of different abilities to work together and learn from each other); Code Sabotage (students have to introduce errors to working code, but their peers to debug).