ABSTRACT
Pair programming, as part of the Agile Development process, has noted benefits in professional software development scenarios. These successes have led to a rise in use of pair programming in educational settings, particularly in CS1. Specifically [6] has shown that students using pair programming in CS1 do better in a CS2 class (with solo programming) than students who don't pair in CS1. This paper seeks to address a similar question, but from a qualitative, student-focused approach. How do students define, experience and value the pair programming experience? How do they experience and value it compared to solo programming? Does pairing in CS1 impact their confidence in their abilities.
We report on semi-structured interviews with eleven subjects from two institutions where pair programming was used in CS1 and solo programming was used in the next course. Many of the responses met our expectations: students get stuck less and explore more ideas while pairing, and believe that pair programming helped them in CS1. Other responses were more surprising. Students reported that when solo programming that they were more confident and understood their programs better. Many students also said that they started work on their assignments earlier when soloing. Students also continue to use other students as resources even when working "solo".
- B. Hanks. Empirical Studies of Distributed Pair Programming. PhD thesis, University of California, Santa Cruz, 2005. Google ScholarDigital Library
- B. Hanks, C. McDowell, D. Draper, and M. Krnjajic. Program quality with pair programming in CS1. Proceedings ITiCSE 2004, pages 176--180. Google ScholarDigital Library
- N. Katira, L. Williams, E. Wiebe, C. Miller, S. Balik, and E. Gehringer. On understanding compatibility of student pair programmers. Proceedings SIGCSE 2004, pages 7--11. Google ScholarDigital Library
- J. Margolis and A. Fisher. Unlocking the Clubhouse: Women in Computing. MIT Press, Cambridge, MA, 2002.Google Scholar
- C. McDowell, L. Werner, H. Bullock, and J. Fernald. The impact of pair programming on student performance, perception and persistence. In Proceedings of the International Conference on Software Engineering (ICSE 2003), pages 602--607, May 3-10, 2003. Google ScholarDigital Library
- C. McDowell, L. Werner, H. E. Bullock, and J. Fernald. Pair programming improves student retention, confidence, and program quality. Commun. ACM, 49(8):90--95, 2006. Google ScholarDigital Library
- G. Melnik and F. Maurer. Perceptions of agile practices: A student survey. In Extreme Programming and Agile Methods - XP/Agile Universe 2002, number 2418 in LNCS, pages 241--250. Springer, 2002. Google ScholarDigital Library
- L. Thomas, M. Ratcliffe, and A. Robertson. Code warriors and code-a-phobes: A study in attitude and pair programming. Proceedings SIGCSE 2003, pages 363--367. Google ScholarDigital Library
- T. VanDeGrift. Coupling pair programming and writing: Learning about students' perceptions and processes. Proceedings SIGCSE 2004, pages 2--6. Google ScholarDigital Library
- L. Werner, B. Hanks, and C. McDowell. Pair programming helps female computer science students persist. ACM Journal of Educational Resources in Computing, 4(1), Mar. 2004. Published April 2005. Google ScholarDigital Library
Index Terms
- First year students' impressions of pair programming in CS1
Recommendations
First-year students' impressions of pair programming in CS1
Pair programming, as part of the Agile Development process, has noted benefits in professional software development scenarios. These successes have led to a rise in use of pair programming in educational settings, particularly in Computer Science 1 (CS1)...
Pair programming in CS1: overcoming objections to its adoption
In academic year 2005-06, the Bren School considered incorporating pair programming into CS1, primarily because of reports it increased students' satisfaction with the course and improved their performance in it. Though not denying its benefits, ...
Improving the CS1 experience with pair programming
Pair programming is a practice in which two programmers work collaboratively at one computer, on the same design, algorithm, or code. Prior research indicates that pair programmers produce higher quality code in essentially half the time taken by solo ...
Comments