[Published originally in the March 2005 edition of Computing Research News, Vol. 17/No. 2]
Expanding the Pipeline
Want to Increase Retention of Your Female Students?
by Linda L. Werner, Brian Hanks, Charlie McDowell, Heather Bullock, and Julian Fernald
A nerdy-looking guy sits alone working at a computer late at night. Is this a portrait of your typical computer science student? Or instead, does your typical student look like one of a pair of students working together at one computer—laughing, talking, pointing to the monitor, looking at each other, and having fun?
This latter picture is possible if you use pair programming. Pair programming has been found to be very beneficial in educational settings. Students who pair in their introductory programming course are more confident, have greater course completion and pass rates in that course, and are more likely to persist in computer-related majors. Although pairing helps all students, we believe that it is particularly beneficial for women because it addresses several significant factors that limit women's participation in computer science—their fears for safety while working in computer laboratories on weekends and late at night, their reported lack of confidence, and the perceived competitive and anti-social view that most people have of computer programming and computer science.
A 2000 UCLA survey of more than 400,000 entering freshmen at 717 colleges and universities across the United States reported the largest gender gap in computer skills confidence in the 35-year history of the survey. The gender gap in computer use was almost nonexistent (79.5% of men and 77.8% of women report frequent computer use); however, only 23.2 percent of the women vs. 46.4 percent of the men rated their computer skills as “above average” or within the “top 10 percent.” Also, 9.3 percent of the men vs. 1.8 percent of the women indicated they intended to pursue computer programming careers [Sax 2000]. This gender gap has been written about extensively and, unfortunately, the pipeline has been shrinking. Even among the most mathematically talented, women favor medicine and law as professions over careers in information technology because they perceive these professions as more socially meaningful and more interactive [Lightbody et al. 1997]. This is consistent with the AAUW [AAUW 2000] report that girls are not avoiding high-tech careers because they are failing.
The use of pair programming in your CS1 introductory programming course has the potential to increase the retention of women in your CS-related majors. In the working world, essentially all non-trivial software projects are created collaboratively. This informal process involving two collaborating individuals using a single computer has been formalized as pair programming and is one of the key practices of the extreme programming (XP) development methodology [Beck 2000]. In XP, all software is designed, developed, and tested using pair programming. While pairing, one of the programmers, referred to as the 'driver,' controls the keyboard and mouse and is responsible for entering program code. The second programmer, known as the 'navigator,' sits next to the driver and watches for errors, discusses alternative design approaches, and offers suggestions. The programmers regularly trade roles while pairing.
Traditional introductory programming courses for undergraduates generally require that students work individually on their programming assignments. In these courses, working with another student on a homework programming assignment constitutes cheating and is not tolerated. The only resources available to help students overcome any problems that they are having are the course instructor, the textbook, and the teaching assistant. They are not allowed to work with their peers, who are struggling with the same material. This pedagogical approach teaches students that software development is an individual activity, potentially conveying the mistaken impression that software engineering is an isolating and lonely career.
We have experimented with pair programming in CS1 with more than 500 students. We have found that students who participated had more confidence in their programming solutions and enjoyed completing the assignments more than students who programmed alone. Paired students were more likely to complete the course and, consequently, to pass it [McDowell et al. 2003].
On individually taken final exams, paired students performed as well as solo students, were just as likely to pass the subsequent programming course where pair programming was not used, and were more likely to be registered as CS-related majors one year later. With respect to the CS gender gap, pair programming holds promise for closing it. Three academic quarters after our experiment, we looked at the declared majors for those students who participated in our study. We wanted to know if the paired women students were more likely to declare a CS-related major one year after completing the introductory programming course. Significantly more paired women programmers than solo women programmers went on to declare a CS-related major. Among the group of women who indicated on the first day of the introductory course that they planned to major in a CS-related field, those who paired were more likely to have declared a CS-related major one year later than those who worked individually. Out of 42 women who indicated they planned a CS-related major and worked in a pair for CS1, 25 (59.5%) of them had declared a CS-related major one year later, compared with only 2 out of 9 (22.2%) of the women who worked alone. This result is both practically and statistically significant (2(1) =4.14, p <.05).
The results are great for the men, too. Among the group of men who indicated on the first day of the introductory course that they planned to major in a CS-related field, those who paired were also more likely to have declared a CS-related major one year later than those who worked individually. Out of 150 men who indicated they planned a CS-related major and paired in CS1, 111 (74%) of them had declared a CS-related major one year later, compared with only 17 of the 36 (47.2%) who worked alone. This result is also both practically and statistically significant (2(1) =9.70, p <.005).
For more detailed information regarding our pair programming experiments, our results, or for guidelines and teaching materials for its use in your programming courses, see http://www.soe.ucsc.edu/~charlie/projects/pairprogramming.
Linda Werner is a lecturer in Computer Science at the University of California, Santa Cruz (UCSC); Brian Hanks is an assistant professor of Computer Science Information Systems at Fort Lewis College, Durango, CO; Charlie McDowell is a professor of Computer Science, UCSC; Heather Bullock is an associate professor in Psychology, UCSC; and Julian Fernald is assistant director of Institutional Research at UCSC.
This work was funded by National Science Foundation grants EIA-0089989. Any opinions, findings, and conclusions or recommendations expressed in this paper are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Copyright © 2007 Computing Research Association. All Rights Reserved. Questions? E-mail: firstname.lastname@example.org.