Saehanseul Yi, Department of Computer Science
Pair-Programming in Classrooms
Pair-programming is a programming paradigm where two or more programmers share a single computer. Lindvall et al. show that pair-programming is effective in professional fields because programmers are able to share knowledge with each other . Therefore, pair-programming  is being widely adopted in classrooms. By programming in pairs, students can reinforce their individual learning by helping their peers solve programming problems. Because students doing pair-programming are actively communicating with their peers to solve programming problems, they are more engaged in their learning and have better retention of learned material than they would otherwise. Pair-programming seems to fit perfectly in the active learning paradigm. But is it as effective for the classroom setting as it is in professional fields?
Partner Dynamics in Pair-Programming
My TA experience says “no” to the question. In my class, students find a partner by themselves (which is not encouraged in theory because it decreases diversity). Therefore, I could observe many forms of teams. In theory, a student having difficulty should learn from their good-skilled partner. However, that did not happen. Worse, a team that consisted of low-performing students did not make them learn better. They remained low in performance. Why did this happen? Because programming sense and problem-solving skills, which is important in programming, are not easily transferable. Rather, in most cases, they are obtained by students themselves tinkering with their code and doing some experiments. Once the students reach a certain level of problem-solving skills and acquire a sense of programming, they can communicate themselves well and enhance their skills by doing so . On the other hand, a team consisting of both high-performing and low-performing students find it hard to communicate between members. That can lead a low-performing student to become a social loafer, who exerts less effort toward the goal. A study  shows inequitable skills in pair-programming can be harmful for low-ability students.
Learning Programming is Different
Learning programming takes a long time. There is even a book titled “Teach Yourself Programming in Ten Years” . This is because programming, or coding, is nothing like what we go through in our daily lives or learn from schools. It takes time to adapt to a new world. I don’t want to be pessimistic, but it is hard to expect students to reach a degree that they can share knowledge and cooperate in their first programming course. In addition, computer science is very active and fast evolving field which means it is high in volume and students can be easily lost in the sea of new concepts and tools. Technically, a student can code without that knowledge, but it would be a world of black boxes that overwhelms the student. Pair-programming is helpful when all the members in the group are actively engaged in discussion. In order to achieve that, teachers should provide enough hints and guides to lower the bars for low-performing students.
Matthew Mahavongtrakul edited this post on June 7th, 2019.