Collaborative programming approaches
In programming lessons, the most effective approach for supporting learners with special educational needs is to scaffold the process using one of the models outlined in the last step. This helps to reduce cognitive load, and lessens the anxiety of being faced with a blank page.
There are some other approaches that researchers have found are effective for teaching programming in a general context. Unfortunately, there is limited research concerning the efficacy of using these to support learners with special educational needs and disabilities. However, the collaborative approaches outlined below will help to include all learners in class discussion and programming activities.
In pair programming, learners work in pairs to write a program. One person acts as ‘driver’, with control of the mouse and keyboard, and writes the code. The other person is the ‘navigator’, providing advice and checking for errors. During the lesson, they will swap roles at intervals directed by the teacher.
Although most commonly used in Key Stage 2 and above, this would also work with Bee-Bots or similar physical computing devices without a screen: one pupil inputs the commands, the second provides advice and looks out for errors. You could also introduce a third person who designs the algorithm using command cards.
The pair programming approach is used successfully in industry, and research by He and Chen demonstrates the following benefits for computer science students:
- Improved quality of code
- Higher confidence levels
- Greater enjoyment
- Increased independence
The success of this approach depends a great deal on the careful pairing of learners. It is most effective when learners have similar skill levels, and the evidence indicates that the learner with less advanced skills experiences the greatest benefit (as long as the difference in skill levels isn’t too large). Some learners with SEND find it very difficult to work effectively with others, and therefore, this approach may be counterproductive for some. As ever, knowing your individual learners is important to making this a success.
You can read about one teacher’s experience here: Using Paired Programming to Support SEN Students.
Peer instruction is a teaching strategy where learners can discuss their answers to a problem and their thinking with their peers, before a whole-class analysis of the answer.
This is the process of peer instruction:
- The teacher provides a question on the board with multiple-choice answers.
- Individual learners give their answers to the question. This can be done on paper (learners can hand in their answers anonymously) or via technology. For example, you could use ‘clickers’ (voting devices), or if these aren’t available, you could use Plickers, which only requires one device.
- Learners work in pairs or groups to discuss their answers, explain their thinking, and decide on a group answer.
- Each group submits their answer.
- The teacher displays the collated results from the groups and provides the correct answer.
- The class has a discussion about the results, and how the learners reached their answers. The teacher can also show the initial results of the individual votes and ask questions about why certain answers might have been considered correct.
Using peer instruction ensures that all learners are included in answering the question and given the opportunity to discuss their thinking around the problem. The teacher gains a better understanding of the misconceptions of the class, and can provide targeted support to address these.
Note: Learners may be reticent to take part in the group discussion, due to lack of confidence or knowledge. Pairings/groupings need to be considered carefully to mitigate this. The teacher needs to provide sufficient time for learners to consider the initial problem and submit their vote — remember that some learners may need longer to process information. Consider providing audio and visual support for the question and answers.
There is more information about this approach at Peer Instruction for CS.
In the comments section, please answer one of the following questions, depending on whether or not you have used peer programming or peer instruction before:
- What were the benefits and challenges of the approach, particularly in relation to teaching learners with SEND?
- Consider the learners you teach who have SEND. Which of the approaches above do you think would suit them best?