Using Paired Programming to support SEN students
As Computer Science teachers, it is imperative that our classrooms are inclusive. Not only do we have a duty to take into account the needs of all students in our classrooms, but in doing so we can make positive steps towards improving the diversity of the tech industry. This article discusses how we can use paired programming to support SEN students in our Computing classrooms.
In 2016 just over one half (51%) of the population (aged 16 and above) were women, 23% were disabled, 45% were aged 50 and above and 12% were of non-white ethnicity. By comparison, just 17% of IT specialists were female, 8% were disabled, 21% were from older age groups and 17% were from ethnic minorities.
So what if there were teaching techniques, that were reflective of Industry and provided support for low-ability or SEN students? Not only could we improve the inclusivity of our classrooms, but we may also be able to positively contribute to a more diverse workforce.
There is a lot of research on how using cooperative learning strategies can support SEN students in the classroom, so based on this, I decided to look at using cooperative programming techniques, specifically, paired programming.
Preparing for Paired Programming
Paired programming is much more than just shoving two students together at a computer, but before we even touch on the specifics, we also need to prepare properly.
- Potentially the most important bit of prep work is deciding how to pair your students. Groupings must be carefully considered. Pairs need to be able to get along, and SEN or weaker students should be matched with students who are only slightly higher ability than them. This provides support, without risking the SEN student feeling lost or out of their depth. Remember, we want to boost the confidence of our students without risking them becoming passive bystanders to a much more dominant partner. You might not get this right first time, so be prepared to make adjustments where necessary, just as you would with a regular classroom seating plan.
- Tasks must be presented with clear expectations. There’s no point just giving students a tutorial to follow and leaving them to it. Students need to understand why they are doing a particular task, and what the expected outcome is.
- Scaffolding should still be provided (modelling/demonstrating) where required. A partner is not a substitution for differentiation.
The final two points relate to your wider planning and approach to teaching programming skills.
Simply following a step-by-step tutorial doesn’t work for everyone, and risks programming lessons become tick box activities rather than learning through investigation. To combat this, check out using PRIMM for programming lessons (Predict, Run, Investigate, Modify, Make) to allow students to understand code before taking ownership.
Research also indicates that female students respond more positively to project work, especially if it links to helping people. Once your students have the basic programming skills down, you may wish to set students a brief to create something of their own, but with a positive social impact. You can provide more specific briefs for low-ability students to avoid confusion, and even bring back the PRIMM model, providing sample code snippets that could be modified as inspiration.
How to Pair Program
Next, we need to train the students on how to pair program effectively. This technique does not work by simply placing students in pairs and expecting them to work together, they need to be shown how to take on specific roles within their pairing, and this takes time, and practice.
When Paired Programming, one person acts as the driver, physically entering the code into the computer while communicating to their partner what they are doing. The other person becomes the navigator, checking the code for errors and sharing ideas on how to address the problem at hand. Not only does this technique offer support in the classroom, but it is reflective of engineering in industry.
In practice, students showed increased confidence and produced higher quality code after just a few lessons. The technique also promotes independence, allowing students to discuss issues with their partner and solve them without teacher intervention.
To improve this further, you can introduce the ‘rubber ducking’ technique, where students who are stuck are required to explain the problem to an inanimate object before asking the teacher for help. Often, by just communicating the problem out loud students can find their own solutions.
Once the weaker students in the pairs start to build confidence, you can manipulate the times each person spends as driver and navigator. Instead of splitting times by 5 minutes each, you can secretly allow the weaker of the pair 6 minutes driving time, versus the stronger student’s 4 minutes. The students are unlikely to notice, but the increased coding time will help your weaker/SEN students feel as though they are providing more valuable contributions to the shared project.
The downside? There is a risk that students become dependent on their partner, and confidence does not carry over to solo programming tasks. In addition, this technique does not support any formal assessment, which must be completed alone. While this is a risk, one might consider just how well these students might do had this technique not been used at all, and in the end, it’s not all about the exams is it?
Have you used this technique in the classroom? Let us know what you think in the comments below!
If you’re looking for other ways to spice up your Computer Science Curriculum, check out these enrichment ideas…Thanks for reading!
Like me on Facebook - Follow me on Instagram - Follow me on Twitter