P Pair Programming and Gender
Total Page:16
File Type:pdf, Size:1020Kb
1 Pair Programming and Gender P Linda L. Werner University of California, USA Brian Hanks Fort Lewis College, USA Charlie McDowell University of California, USA INTRODUCTION methods by stating that cooperative learning in- volves students taking responsibility for subtasks, Studies of pair programming both in industry and whereas collaborative learning requires that the academic settings have found improvements in pro- group works together on all aspects of the task gram quality, test scores, confidence, enjoyment, (Underwood & Underwood, 1999). The consensus and retention in computer-related majors. In this from numerous field and laboratory investigations is article we define pair programming, summarize the that academic achievement such as performance on results of pair programming research, and show why a test is enhanced when an individual learns informa- we believe pair programming will help women and tion with others as opposed to individually (O’Donnell men succeed in IT majors. & Dansereu, 1992; Slavin, 1996; Totten, Sills, & Digby, & Russ, 1991). Cooperative activities have been taught and prac- BACKGROUND ticed for other software system development tasks such as design and software engineering but not for Traditional undergraduate introductory programming programming (Basili, Green, Laitenburger, Lanubile, courses generally require that students work indi- Shull, Sorumgard, et al., 1996; Fagan, 1986, Sauer, vidually on their programming assignments. In these Jeffrey, Land, & Yetton, 2000; Schlimmer, Fletcher, courses, working with another student on program- & Hermens, 1994). Often cooperative methods are ming homework constitutes cheating and is not used in upper division computer science (CS) courses tolerated. The only resources available to help stu- such as compiler design and software engineering in dents with problems are the course instructor, the which group projects are encouraged or required. In textbook, and the teaching assistant. They are not these courses, the group projects are split up by the allowed to work with their peers, who are struggling group members and tackled individually before being with the same material. This pedagogical approach recombined to form a single solution. Sometimes a teaches introductory programming students that soft- software engineering instructor offers assistance to ware development is an individual activity, poten- the student groups regarding techniques for coop- tially giving students the mistaken impression that eration but these topics are rarely discussed in other software engineering is an isolating and lonely ca- CS courses. reer. Gender studies suggest that such a view will The benefits of collaboration while programming disproportionately discourage women from pursuing in both industrial and academic settings have been IT careers (Margolis & Fisher, 2002). discussed by Flor and Hutchins (1991), Constantine Cooperative or collaborative learning models in- (1995), Coplien (1995), and Anderson, Beattie, Beck, volve two or more individuals taking turns helping Bryant, DeArment, Fowler, Fronczak, et al. (1998). one another learn information (Horn, Collier, Ox- However, the recent growth of extreme program- ford, Bond, & Dansereu, 1998). Some researchers ming (XP) (Beck, 2000) has brought considerable differentiate between cooperative and collaborative attention to the form of collaborative programming Copyright © 2006, Idea Group Inc., distributing in print or electronic forms without written permission of IGI is prohibited. Pair Programming and Gender known as pair programming (Williams & Kessler, Werner, Bullock, & Fernald, 2003a; Werner, Hanks, 2003). Extreme programming is a software develop- & McDowell, 2005) found that students who pair ment method that differs in a number of ways from programmed in their introductory programming generally accepted prior software development meth- course were more confident in their work. They ods. These differences include writing module tests were also more likely to complete and pass the before writing the modules, working closely with the course, to take additional computer science courses, customer to develop the specification as the pro- to declare computer-related majors, and to produce gram is developed, and an emphasis on teamwork as higher quality programs than students who pro- exemplified by pair programming, to name just a grammed alone. few. The emphasis on teamwork is an aspect of Naggapan, Williams, Ferzli, Yang, Wiebe, Miller, extreme programming that may be particularly ap- et al. (2003) report that pair programming results in pealing to women. programming laboratories that are more conducive With pair programming, two software develop- to advanced, active learning. Students in these labs ers work side-by-side at one computer, each taking ask more substantive questions, are more produc- full responsibility for the design, coding, and testing tive, and are less frustrated. of the program under development. One person is To ensure that paired students enjoy these ben- called the driver and controls the mouse and key- efits, it is important that they have compatible part- board; the other is called the navigator and provides ners. Researchers at the University of Wales (Tho- a constant review of the code as it is produced. The mas, Ratcliffe, & Robertson, 2003) investigated roles are reversed periodically so that each member issues regarding partner compatibility for pair pro- of the pair has experience as the driver and naviga- gramming students. They asked more than 60 stu- tor. Studies have shown that pair programming dents to indicate their self-perceived level of exper- produces code that has fewer defects and takes tise and confidence in their programming abilities, approximately the same total time as when code is and used these rankings to evaluate pairing success. produced by a solitary programmer (Nosek, 1998; It is important to note that self-reported ability and Williams, Kessler, Cunningham, & Jeffries, 2000). actual ability are different measures, as 5 of the 17 Any code that is produced by only one member of a students who felt that they were highly capable did pair is either discarded or reviewed by the pair very poorly in the course. together prior to inclusion into the program. Thomas et al. found some evidence that students do their best work when paired with students with similar confidence levels. Students with less self- PAIR PROGRAMMING IN THE confidence seem to enjoy pair programming more CLASSROOM than those students who reported the highest levels of confidence. As there were only seven women in Early experimental research with pair programming the class, no conclusions about how pairing affected using small numbers of students or professional them can be made. programmers found that pairs outperformed those Researchers at North Carolina State University who worked alone (Nosek, 1998; Williams et al., investigated factors that could affect student pair 2000). Pairs significantly outperformed individual compatibility. Out of 550 graduate and undergradu- programmers in terms of program functionality and ate students, more than 90% reported being compat- readability, reported greater satisfaction with the ible with their partner (Katira, Williams, Wiebe, problem-solving process, and had greater confi- Miller, Balik, & Gehringer, 2004). Factors such as dence in their solutions. Pairs took slightly longer to personality type, actual skill level, and self-esteem complete their programs, but these programs con- appear to have little, if any, effect on partner com- tained fewer defects. patibility. The authors do not discuss any relation A series of experiments conducted at the Univer- between gender and compatibility. Students reported sity of California at Santa Cruz (UCSC) (Hanks, they were more compatible with partners who they McDowell, Draper, & Krnjajic, 2004; McDowell, perceived to have similar levels of technical compe- tence as themselves; unfortunately, there is no pro- 2 Pair Programming and Gender active way that instructors can use this factor to more confident (87.0) than women (81.1), there assign partners. was a significant interaction between pairing and P The benefits of pair programming are enjoyed by gender with regard to reported confidence. Simple all students, but women students appear to benefit effects follow-up tests of the interaction indicated more. Research conducted at UCSC (McDowell, that pairing resulted in increased confidence for Werner, Bullock, & Fernald, 2003, Werner, Hanks, both women (86.8 vs. 63.0) and men (90.3 vs. 74.6). & McDowell, 2005a) indicates that although students Women’s confidence increased by 24 points when who pair are more confident in the work and are more they paired compared with a 15-point increase for likely to declare computer-related majors, these in- men. Pairing had a statistically significantly greater creases are greater for women than men. effect on confidence levels for women and, there- The UCSC study looked at four sections of an fore, may have a visible positive impact on the introductory programming course over three aca- gender gap. Unpaired men reported 1.18 times demic terms, one in the fall, two in the winter, and one greater confidence than unpaired women, while in the spring. The fall and winter sections required paired men reported 1.04 times greater confidence pair programming; the spring term required students than paired women. Pairing seems to close the to work alone. The fall and spring sections were