Authors:
(1) Zachariah Beasley, University of South Florida, Tampa, Florida, USA ([email protected]);
(2) Ayesha Johnson, University of South Florida, Tampa, Florida, USA ([email protected]).
Table of Links
Abstract and 1 Introduction
2 Previous Research
3 Course Description
4 Methods
5 Results
6 Discussion
7 Conclusion and Future Work, Acknowledgments, and References
ABSTRACT
Pair programming has been highlighted as an active learning technique with several benefits to students, including increasing participation and improving outcomes, particularly for female computer science students. However, most of the literature highlights the effects of pair programming in introductory courses, where students have varied levels of prior programming experience and thus may experience related group issues. This work analyzes the effect of pair programming in an upper-level computer science course, where students have a more consistent background education, particularly in languages learned and best practices in coding. Secondly, the effect of remote pair programming on student outcomes is still an open question and one of increasing importance with the advent of Covid-19. This work utilized split sections with a control and treatment group in a large, public university. In addition to comparing pair programming to individual programming, results were analyzed by modality (remote vs. in person) and by gender, focusing on how pair programming benefits female computer science students in confidence, persistence in the major, and outcomes. We found that pair programming groups scored higher on assignments and exams, that remote pair programming groups performed as well as in person groups, and that female students increased their confidence in asking questions in class and scored 12% higher in the course when utilizing pair programming.
1 INTRODUCTION
Pair programming, where two students share one screen while working on a programming assignment, has often been heralded as an effective active learning technique to increase participation and improve outcomes in the classroom, particularly for women in computer science. One student, the driver, writes the program, while the other, the navigator, provides direction, encouragement, and debugs in real-time. Student benefits from this collaborative learning approach include 1) the opportunity for “continuous review” where defects are corrected as they arise, 2) greater satisfaction in the course and learning from peers, 3) team building, communication, and improvement of other soft skills, and 4) greater industry and productivity [8, 17]. Researchers have discovered a 95% increase in confidence in the final product and found that “pair programming is 40-50% faster than programming alone” [12]. Others have noted that “programming assignment grades, exam scores, and persistence in computer programming courses” improve if pair programming is done properly [16]. For instructors, pair programming can provide a barrier to academic dishonesty, promote healthy social interaction in a post-pandemic environment of relative isolation, and allow students to coach and learn from one another [17].
For all its benefits, there are still several open questions in pair programming. One is the effect of remote pair programming on student outcomes, i.e., whether students must be physically together to experience the full benefits. This question is of particular importance post-pandemic as students are more comfortable with online work. As our university transitioned back to the in person modality, we found that most students (95%) preferred to work on assignments remotely. A second consideration is the optimal pairing of programming partners. For example, Bowman et al. found a negative effect when pairing students with significantly different programming ability [5]. Since most of the literature highlights the effect of pair programming in introductory courses, partners can have a wide divergence in ability and thus experience problems with one partner leaving the other behind. Relatively little work has studied pair programming in upper-level computer science courses where students have a more consistent background education. Thus, the goals of this work are to examine the effect of pair programming 1) where students could work remotely on assignments and 2) on an upper-level, CS-3 course where students should exhibit greater consistency in education, style, and languages learned. This work utilized split sections with a control and treatment group at a large, public university. Results were analyzed with a particular focus on how pair programming benefits female computer science students in confidence, persistence in the major, and outcomes.