Hybrid Pair Programming - A Promising Alternative to Standard Pair Programming

Pair programming has been widely adopted as an effective pedagogical tool in CS1/2. The successful execution of pair programming depends on each partner contributing similar amounts of work. However, anecdotes from past research observed that some student pairs can contribute a drastically unequal amount towards their assignments. We address this through a pilot of a hybrid pair programming model. Here, students complete two halves of the assignment as independent programmers and then in partnerships. We conducted a randomized experiment on this model in a CS1 class and found that while pairs generally performed better than solo students in the checkpoint, pairs in the second stage who had worked independently during the checkpoint portion tend to be more resistant to sudden increases in difficulty. We found no significant difference on selected exam problems between the control and experiment groups. We identified lower contributors within pairs and these students showed improved scores on most exam questions directly related to their independent checkpoint work. Survey feedback on hybrid pair programming is positive. The hybrid model is easily adopted in CS classes and positions students to better face the obstacles presented by the assignment while allowing them to benefit from pair programming.

[1]  Kristy Elizabeth Boyer,et al.  The Importance of Producing Shared Code Through Pair Programming , 2018, SIGCSE.

[2]  Yingjun Cao,et al.  Two-Stage Programming Projects: Individual Work Followed by Peer Collaboration , 2018, SIGCSE.

[3]  Kristy Elizabeth Boyer,et al.  Thematic Analysis of Students' Reflections on Pair Programming in CS1 , 2018, SIGCSE.

[4]  Beth Simon,et al.  Peer instruction: do students really learn from peer discussion in computing? , 2011, ICER.

[5]  Nicole Herbert Quantitative peer assessment: can students be objective? , 2007 .

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

[7]  Tim Wahls,et al.  The benefits of pairing by ability , 2010, SIGCSE.

[8]  Jill Denner,et al.  Observations of Pair Programming: Variations in Collaboration Across Demographic Groups , 2016, SIGCSE.

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

[10]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[11]  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.

[12]  Xiaosong Li,et al.  Using Peer Review to Assess Coding Standards - A Case Study , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[13]  Yingjun Cao,et al.  Impact of Performance Level and Group Composition on Student Learning during Collaborative Exams , 2017, ITiCSE.

[14]  Loren G. Terveen,et al.  Two peers are better than one: aggregating peer reviews for computing assignments is surprisingly accurate , 2009, GROUP.

[15]  Anya Tafliovich,et al.  A student perspective on prior experience in CS1 , 2013, SIGCSE '13.

[16]  Brenda Cantwell Wilson,et al.  Contributing to success in an introductory computer science course: a study of twelve factors , 2001, SIGCSE '01.

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

[18]  Jeffrey C. Carver,et al.  Increased Retention of Early Computer Science and Software Engineering Students Using Pair Programming , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[19]  Philip J. Guo,et al.  CodePilot: Scaffolding End-to-End Collaborative Software Development for Novice Programmers , 2017, CHI.

[20]  Beth Simon,et al.  Halving fail rates using peer instruction: a study of four computer science courses , 2013, SIGCSE '13.

[21]  Yingjun Cao,et al.  Evaluating Student Learning from Collaborative Group Tests in Introductory Computing , 2017, SIGCSE.

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

[23]  Charles E. McDowell,et al.  Pair programming improves student retention, confidence, and program quality , 2006, CACM.

[24]  J. K. L. Poon Students' perceptions of peer evaluation in project work , 2011, ACE 2011.

[25]  Mark Sherriff,et al.  Compatibility of partnered students in computer science education , 2010, SIGCSE.

[26]  Davide Fossati,et al.  Interactions of Individual and Pair Programmers with an Intelligent Tutoring System for Computer Science , 2017, SIGCSE.

[27]  Clifton Kussmaul,et al.  Results from a Survey of Faculty Adoption of Process Oriented Guided Inquiry Learning (POGIL) in Computer Science , 2016, ITiCSE.

[28]  J. Aultman Hidden Curriculum , 2007 .

[29]  Michelle K. Smith,et al.  Active learning increases student performance in science, engineering, and mathematics , 2014, Proceedings of the National Academy of Sciences.

[30]  Benjamin Yu,et al.  Turning exams into a learning experience , 2010, SIGCSE.