Using collaborative learning research to enhance pair programming pedagogy

Programming is a pillar of IT education; teaching programming is a major challenge of IT education. A significant amount of recent research has demonstrated the success of pair programming pedagogy in meeting this challenge. Pair programming is a key component of the Extreme Programming software development methodology. When used as pedagogy, pair programming is an instance of collaborative learning, a well-established technique for teaching complex, conceptual tasks. Research has documented the success of collaborative learning and has identified the critical attributes of successful collaborative learning approaches. This article uses a review of the research as a basis for recommended enhancements to ensure that pair programming pedagogy possesses the critical attributes of successful collaborative teaming approaches.

[1]  Lynda Thomas,et al.  Code warriors and code-a-phobes: a study in attitude and pair programming , 2003 .

[2]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[3]  David W. Johnson,et al.  AN OVERVIEW OF COOPERATIVE LEARNING , 2002 .

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

[5]  J. Hardy What the Best College Teachers Do , 2007 .

[6]  Daniel C. Cliburn Experiences with pair programming at a small college , 2003 .

[7]  Laurie A. Williams,et al.  All I really need to know about pair programming I learned in kindergarten , 2000, Commun. ACM.

[8]  David Nicol,et al.  Teaching Tips: Strategies, Research, and Theory for College and University Teachers , 1994 .

[9]  Laurie A. Williams,et al.  In support of student pair-programming , 2001, SIGCSE '01.

[10]  Charles E. McDowell,et al.  Pair-programming helps female computer science students , 2004, JERC.

[11]  Tammy VanDeGrift Coupling pair programming and writing: learning about students' perceptions and processes , 2004, SIGCSE.

[12]  Laurie A. Williams,et al.  On understanding compatibility of student pair programmers , 2004, SIGCSE '04.

[13]  Tim DeClue,et al.  Pair programming and pair trading: effects on learning and motivation in a CS2 course , 2003 .

[14]  David Preston,et al.  PAIR programming as a model of collaborative learning: a review of the research , 2005 .

[15]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[16]  Laurie A. Williams,et al.  Voices of women in a software engineering course: reflections on collaboration , 2004, JERC.

[17]  Charles E. McDowell,et al.  Program quality with pair programming in CS1 , 2004, ITiCSE '04.

[18]  K. Bruffee Collaborative Learning: Higher Education, Interdependence, and the Authority of Knowledge , 1995 .

[19]  Roger S. Pressman,et al.  Software engineering (3rd ed.): a practitioner's approach , 1992 .

[20]  Emilia Mendes,et al.  Investigating pair-programming in a 2nd-year software development and design computer science course , 2005, ITiCSE '05.

[21]  Laurie A. Williams,et al.  Improving the CS1 experience with pair programming , 2003, SIGCSE.

[22]  Charles E. McDowell,et al.  The impact of pair programming on student performance, perception and persistence , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[23]  Charles E. McDowell,et al.  Experimenting with pair programming in the classroom , 2003, ITiCSE '03.

[24]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..