Collaboration leads to success: A study of the effects of using pair-programming teaching technique on student performance in a Middle Eastern society

In pair-programming, two developers share a computer to work together on developing one piece of code. To test Pair-programming effects on student performance in a Middle Eastern society where some interaction restrictions are found, we devised an experiment that was carried out over an entire academic year consists of two semesters. The experiment targeted two sections per semester of an advanced computer programming course. The students of one of the sections worked in pairs during the lab sessions, applying pair-programming rules and techniques. The other section had students who worked individually, as it is the norm in most programming labs. Through this experiment we revealed that pair-programming has the potential to increase the students' confidence, their enjoyment of the course, and improved the course's completion rate. In addition, the students in the pair-programming section showed that they were able to individually produce code of better quality than the students in the traditional section.

[1]  Stuart Wray How Pair Programming Really Works , 2010, IEEE Software.

[2]  Alberto Sillitti,et al.  Pair Programming and Software Defects--A Large, Industrial Case Study , 2013, IEEE Transactions on Software Engineering.

[3]  Stuart Wray How does pair programming work , 2009 .

[4]  Raúl Antonio Aguilar Vera,et al.  Pair versus Solo Programming - An Experience Report from a Course on Design of Experiments in Software Engineering , 2013, ArXiv.

[5]  Madonna Margaret Teague,et al.  Pedagogy of introductory computer programming : a people-first approach , 2011 .

[6]  Bernd Bruegge,et al.  Object-Oriented Software Engineering Using UML, Patterns, and Java , 2009 .

[7]  Giancarlo Succi,et al.  Extreme Programming Examined , 2001 .

[8]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2007, SGCS.

[9]  Andrew Begel,et al.  Pair programming: what's in it for me? , 2008, ESEM '08.

[10]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[11]  Mark Guzdial,et al.  Success in introductory programming: what works? , 2013, CACM.

[12]  Patricia Haden,et al.  It's never too early: pair programming in CS1 , 2013, ACE '13.

[13]  Morgan Ericsson,et al.  Analyzing the Efficiency of Pair Programming in Education , 2014 .

[14]  Emilia Mendes,et al.  The effects of neuroticism on pair programming: an empirical study in the higher education context , 2010, ESEM '10.

[15]  Emilia Mendes,et al.  A replicated experiment of pair-programming in a 2nd-year software development and design computer science course , 2006, ITICSE '06.

[16]  Alberto Sillitti,et al.  Understanding the impact of Pair Programming on developers attention: A case study on a large industrial experimentation , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[17]  Jim Highsmith,et al.  Agile Software Development Ecosystems , 2002 .

[18]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[19]  Emilia Mendes,et al.  Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review , 2011, IEEE Transactions on Software Engineering.

[20]  Tomoo Inoue Investigating the Relation between Behavior and Result in Pair Programming: Talk and Work Leads to Success , 2013 .

[21]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[22]  Angkul Kongmunvattana,et al.  A Pair Programming Trial in the CS1 Lab , 2010 .

[23]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[24]  Emilia Mendes,et al.  Investigating the effects of personality traits on pair programming in a higher education setting through a family of experiments , 2012, Empirical Software Engineering.

[25]  Manisha Giri,et al.  Effectiveness of Software Development Process Using Programmer Ranker Algorithm in Pair Programming , 2013 .

[26]  Annu B. Prabhakar Applying pair programming for advanced Java course: a different approach , 2011, SIGITE '11.