|
|
Pair Programming
Pair programming refers to the practice whereby two programmers work together at one computer, collaborating on the same design, algorithm, code, or test. The pair is made up of a driver, who actively types at the computer or records a design; and a navigator, who watches the work of the driver and attentively identifies problems, asks clarifying questions, and makes suggestions. Both are also continuous brainstorming partners. Throughout the world, many universities are using pair programming in their computer science classes – and a number of high schools have begun using the practice as well. Generally, current-day students much prefer to collaborate than to work alone and find computer science more attractive if they are not forced to work alone the majority of the time. Between the two students, they can generally figure out most problems and can avoid pesky syntax and semantic errors that can cost many hours to debug. Perhaps during those multi-hour debugging sessions (that are greatly reduced with pair programming) some students vow to never take another computer science course! Though some educators may be concerned that only half the students learn with pair programming, pair programming has been shown to help students learn fundamental skills on in individual level. At North Carolina State University (NCSU) and the University of California – Santa Cruz (UCSC), extensive pair programming studies were conducted with approximately 1200 beginning computer science students (CS1) and with almost 300 third/fourth year software engineering students over a three year periods.
- Students in classes in which pair programming was required generally had higher project scores and higher exam scores – a sign that the students are learning the material on an individual basis as well.
- More students passed CS1 with a grade of C or better.
- At NCSU, when these students went on to the second programming class (CS2) in which they were forced to work alone (and, thereby, demonstrate their individual competence), the students who had pair programmed in CS1 were more likely to have maintain or improve their grades than the students who had worked alone in CS1. At UCSC, more students who had paired in CS1 attempted CS2 (77% vs. 62%) and slightly more of these students passed CS2 compared with the students who had worked solo in CS1.
- Most importantly, a higher percentage of the students who took a paired CS1 class chose to pursue a computer science-related major one year later (NCSU: 57% vs. 34%, p < 0.001; UCSC 25% vs 11%, p < 0.008) compared with their solo counterparts.
Papers on the use of pair programming in education:
-
Williams, L., Debunking the Nerd Stereotype with Pair Programming (Broadening Participation in Computing Series), IEEE Computer, to appear May 2006.
-
Ho, C., Raha, S., Gehringer, E,, Williams, L., Sangam: A Distributed Pair Programming Plug-in for Eclipse , Eclipse Technology Exchange (Workshop) at the Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2004.
-
-
Katira, Neha, Williams, Laurie, Wiebe, Eric, Miller, Carol, Balik, Suzanne, Gehringer, Ed, On Understanding Compatibility of Student Pair Programmers, ACM Technical Symposium on Computer Science Education, SIGCSE 2004, pp. 7-11.
-
Srikanth, H., Williams, L., Wiebe, E., Miller, C., Balik, S., On Pair Rotation in the Computer Science Course , Conference on Software Engineering Education and Training 2004, pp. 144-149.
-
-
Wiebe, E., Williams, L., Petlick, J., Nagappan, N., Balik, S., Miller, C., Ferzli, M. Pair Programming in Introductory Programming Labs , American Society for Engineering Education (ASEE) 2003.
-
Williams, L., McDowell, C., Fernald, J., Werner, L., Nagappan, N. Building Pair Programming Knowledge Through a Family of Experiments , IEEE International Symposium on Empirical Software Engineering (ISESE) 2003, pp. 143-152.
-
Stotts, D., Williams, L., Nagappan, N., Baheti, P., Jen, D., Jackson, A., Virtual Teaming: Experiments and Experiences with Distributed Pair Programming, Extreme Programming/Agile Universe 2003.
-
Nagappan, N., Williams, L., Wiebe, E., Miller, C., Balik, S., Ferzli, M., Petlick, M., Pair Learning: With an Eye Toward Future Success, Extreme Programming/Agile Universe 2003.
-
Nagappan, N., Williams, L., Ferzli, M., Weibe, E., Yang, K., Miller, C., Balik, S., Improving the CS1 Experience with Pair Programming, ACM Technical Symposium on Computer Science Education, SIGCSE 2003, pp. 359-362.
-
Williams, L., Wiebe, E., Yang, K., Ferzli, M., Miller, C., In Support of Pair Programming in the Introductory Computer Science CourseComputer Science Education, September 2002.
-
Williams, L., Yang, K., Wiebe, E., Ferzli, M., Miller, C., Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations, OOPSLA Educator's Symposium 2002, November 2002.
-
Baheti, P., Williams, L., Gehringer, E., Stotts, D., Exploring Pair Programming in Distributed Object-Oriented Team Projects, OOPSLA Educator's Symposium 2002, November 2002.
-
Ferzli, M., Wiebe, E., Williams, L., Paired Programming Project: Focus Groups with Teaching Assistants and Students, NCSU Technical Report, TR-2002-16, November 25, 2002.
-
Baheti, P., Williams, L., Gehringer, E., Stotts, D., and Smith, J., Distributed Pair Programming: Empirical Studies and Supporting Environments, UNC-CH Technical Report TR02-010, March 15, 2002.
-
-
-
-
-
-
.
| |