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
6 DISCUSSION
Over the semester, we noted several observed benefits from the instructor and TA perspective. First, pair programming promotes social intelligence and teamwork capability, two important skills for programmers today. Pair programming more closely models work in industry, where most students will work in teams. While there were a few groups with issues (mainly related to a failure to
properly plan ahead for meetings), pair programming afforded the opportunity for students to communicate and resolve differences. Many students mentioned in the survey enjoying this aspect of pair programming. Particularly as our institution shifted to offering in person courses in the wake of Covid-19, students were eager for interaction and social benefits provided by peer review [6].
Pair programming may reduce instances of plagiarism and promote academic integrity because a student must 1) decide to cheat and 2) convince the pair programming partner to become complicit. The social stigma against suggesting cheating is a useful barrier. In addition, if a pair programming group is comprised of at least one student who plans and works ahead, then it can reduce procrastination which can lead to cheating out of desperation because of an impending deadline.
We also observed that pair programming reduces the number of questions asked on assignments, suggesting that students successfully use one another as a resource. Each Data Structures course had a separate Piazza page (crowd-sourced communication tool for professors, TAs, and even other students to provide clarification or help to students’ questions). Students were encouraged to post there first for a faster response (both sections had a 9-minute average response time at the end of the semester). In the Data Structures 1 (with pair programming) students posted an average of 1.05 questions per student, while students in Data Structures 2 (without pair programming) posted an average of 1.72 questions per student. This suggests another intangible benefit to pair programming: that students can, and will, use their partner as a primary resource for clarifying questions.
Finally, several other active learning techniques were utilized in addition to pair programming on assignments in both sections of Data Structures: in-class small group discussion questions modeled after peer instruction [13], peer leaders [4], and live coding [15]. Figure 8 shows how helpful the students found each active learning technique in the post-course survey. The men appeared to prefer peer leaders and live coding, while the women preferred the assignments and live coding examples. In-class group discussion questions appears to be the least helpful to all students. Note that this does not mean the practice is not beneficial to students, as perceived helpfulness is not always correlated to actual helpfulness.
7 CONCLUSION AND FUTURE WORK
Pair programming provides an advantage over individual coding in overall performance in the classroom, even when pairs collaborate remotely. This was demonstrated by the pair programming groups’ better performance on exams and on their final course score. The exam score differences between the two groups appeared to increase over time. Pair programming also demonstrated an advantage on programming assignments. Women in the pair programming group had an almost 12 percentage point advantage over their individually programming counterparts. They also experienced an increase in comfort asking questions in class over the course of the semester to more closely match that of the men. Thus we have found on several fronts that pair programming is one technique that can be utilized to support the goal of increasing the participation of women in STEM professions.
For future work, we intend to 1) delve more deeply into students who do well on paired assignments, but poorly on individual exams. Such students may simply do better on programming projects rather than conceptual questions, or it may be a result of team breakdown. Thus, we further plan to 2) study the optimal makeup of teams, based on gender, prior ability, and working styles (e.g., supporter versus leader or early submitter versus late submitter). We will also study what makes an ideal pair programming partner and analyze the results with a natural language processing algorithm to identify common trends (aspects with correlated sentiment) [3]. In doing so, we will better understand the team dynamics and optimal pairing techniques to allow computer science students to realize the full benefits of pair programming.
ACKNOWLEDGMENTS
The authors are grateful to Dr. Jing Wang for her support. This material is based upon work supported by USF STEER, USF CITL, and the National Center for Women & Information Technology. We would also like to thank the reviewers for their helpful comments and suggestions.
REFERENCES
[1] Adeola Adeliyi, Michel Wermelinger, Karen Kear, and Jon Rosewell. 2021. Investigating Remote Pair Programming In Part-Time Distance Education. In United Kingdom and Ireland Computing Education Research conference. 1–7.
[2] Prashant Baheti, Edward Gehringer, and David Stotts. 2002. Exploring the efficacy of distributed pair programming. In Conference on Extreme Programming and Agile Methods. Springer, 208–220.
[3] Zachariah Beasley, Les A Piegl, and Paul Rosen. 2021. Polarity in the Classroom: A Case Study Leveraging Peer Sentiment Toward Scalable Assessment. IEEE Transactions on Learning Technologies (2021).
[4] Bethany Bowling. 2015. Professionalizing the role of peer leaders in STEM. Journal of STEM Education 16, 2 (2015).
[5] Nicholas A Bowman, Lindsay Jarratt, KC Culver, and Alberto Maria Segre. 2019. How Prior Programming Experience Affects Students’ Pair Programming Experiences and Outcomes. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education. 170–175.
[6] Mehmet Celepkolu and Kristy Elizabeth Boyer. 2018. Thematic analysis of students’ reflections on pair programming in cs1. In Proceedings of the 49th ACM technical symposium on computer science education. 771–776.
[7] Aaron Clark and Jeffrey R Raker. 2020. Peer-Leaders’ Perceived Roles: An Exploratory Study in a Postsecondary Organic Chemistry Course. International Journal of Teaching and Learning in Higher Education 32, 2 (2020), 180–189.
[8] Alistair Cockburn and Laurie Williams. 2000. The costs and benefits of pair programming. Extreme programming examined 8 (2000), 223–247.
[9] Bernardo José da Silva Estácio and Rafael Prikladnicki. 2015. Distributed pair programming: A systematic literature review. Information and Software Technology 63 (2015), 1–10.
[10] Janet Hughes, Ann Walshe, Bobby Law, and Brendan Murphy. 2020. Remote pair programming. In 12th International Conference on Computer Supported Education. SciTePress, 476–483.
[11] Sandeep Kaur Kuttal, Kevin Gerstner, and Alexandra Bejarano. 2019. Remote pair programming in online cs education: Investigating through a gender lens. In 2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). IEEE, 75–85.
[12] Charlie McDowell, Linda Werner, Heather Bullock, and Julian Fernald. 2002. The effects of pair-programming on performance in an introductory programming course. In Proceedings of the 33rd SIGCSE technical symposium on Computer science education. 38–42.
[13] Leo Porter, Cynthia Bailey Lee, and Beth Simon. 2013. Halving fail rates using peer instruction: a study of four computer science courses. In Proceeding of the 44th ACM technical symposium on Computer science education. 177–182.
[14] PETER ROBE and SANDEEP KAUR KUTTAL. 2021. Designing PairBuddy–A Conversational Agent for Pair Programming. (2021).
[15] Marc J Rubin. 2013. The effectiveness of live-coding to teach introductory programming. In Proceeding of the 44th ACM technical symposium on Computer science education. 651–656.
[16] Karthikeyan Umapathy and Albert D Ritzhaupt. 2017. A meta-analysis of pairprogramming in computer programming courses: Implications for educational practice. ACM Transactions on Computing Education (TOCE) 17, 4 (2017), 1–13.
[17] Laurie Williams and Richard L Upchurch. 2001. In support of student pairprogramming. ACM SIGCSE Bulletin 33, 1 (2001), 327–331.
[18] Laurie A Williams and Robert R Kessler. 2000. All I really need to know about pair programming I learned in kindergarten. Commun. ACM 43, 5 (2000), 108–114.
[19] Kimberly Michelle Ying, Lydia G Pezzullo, Mohona Ahmed, Kassandra Crompton, Jeremiah Blanchard, and Kristy Elizabeth Boyer. 2019. In their own words: Gender differences in student perceptions of pair programming. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education. 1053–1059.
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]).