There is a significant body of evidence that shows the benefits of paired programming. In industry it is known as Extreme Programming and sees two developers working together at one computer sharing out tasks and responsibilities. The outcome is code create in a faster time and of higher quality.
I had been reluctant to try this method with my students. Personal experience shows that students either take advantage of group work opportunities or end up in a situation where one does all the work whilst the other coasts or distracts others. For my 16-18 year-olds, I have found this to be a wholly positive experience.
What is it?
Split your students into pairs. It is really important that you split your students into pairs of similar coding ability. Sit low ability students together and high ability students together. Under no circumstances must you sit a HA with a LA student as the LA will lose all confidence and the HA will be bored.
What does it look like in the classroom
Once you have paired students, get them to swap small talk. Prompt students with questions e.g. What is your favourite ice cream? Do you have any pets? What is your name?!!! Which is your favourite subject? This is just good social etiquette.
Next, you need to explain the two roles. The driver and the explainer / checker.
The driver has control of the keyboard and is responsible to typing code. If they are actively thinking about the task and applying a solution, this is fine.
The explainer / checker services two purposes. Firstly, they are responsible for reading and understanding any code being typed, checking for any errors and prompting the driver to make changes. They can also be on hand with any reference material or cheat sheets so that if the driver gets stuck the information required can be dictated (not given) to the driver. Communication is essential here because for the explainer to dictate something meaningfully, they need to understand it.
As a teacher you should encourage students to talk. Responsibility for a student who is not making a contribution is with the other student and should be explicitly called out in class, "Thomas, why is Ismail not talking to you?"
Students should be encouraged to swap roles every 5 minutes or so. You can either delegate this responsibility or put a timer on the board.
What do the students think?
At the end of the first session, of three classes a heads-down-thumbs-up measure saw only two students out of 60 or so not enjoying the paired programming. Both were LA coders. Of the remainder it was around 2/3 who enjoyed it and 1/3 who were unsure. I have run a couple of sessions, picking different pairings each time and the response is becoming more positive as we go along.
What are the benefits?
Students indicate that talking to their peers has got rid of some of the assumptions and stereotypes around coding. They are seeing that students perceived to find coding easy, encounter difficulties and challenges just like everyone else. This is increasing confidence and tackling problems jointly is creating a deeper level of understanding in what they are doing because they have to be accountable and able to explain what they have done to a peer.
I thoroughly recommend you have a go!
Yorumlar