During the fall semester of 2000, the students were required to write two opinion papers chosen from a short list of possible topics. One choice was to address the question, "Should pair programming be taught in the introductory programming courses in our department?" Twenty of the students chose to address this topic. Fourteen (70%) of the students favored teaching pair programming and six (30%) were opposed. Once again, the numbers and reasons that follow must be viewed in light of the characteristics of the students as they pertain to this topic. Starting with the first programming course, the students were allowed to work in pairs to develop programs, but the partnerships were casual and unstructured. The pairing was gradually discouraged as they progressed through the curriculum. Some of the students had participated in these informal pairings, while others had not. In addition, many of the students had had recent contact with beginning programmers by working as teaching assistants or laboratory assistants. Support for Pair ProgrammingThe students who advocated the use of pair programming tended to echo the supporting themes that appear in the literature, including increased learning and comprehension, enhanced communication and teamwork, improved time management, improved self-reliance, improved problem solving and strategic thinking, and more opportunities to experiment and consider alternative solutions. Some of the students drew from their personal experience to advocate pair programming as a way to increase retention. One student wrote:
Another student, who had failed his first attempt at a programming course, wrote:
Another raised an interesting point concerning pair programming.
Opposition to Pair ProgrammingMost of the students' arguments against using pair programming in the introductory courses were based on what could happen if pair programming practices were not strictly followed by all participants. Several of the arguments expressed the concern that pair programming would not be effective unless both members were competent. The following quotes capture the essence of these arguments.
Some students expressed reservations about whether or not pair programming would be practiced without direct supervision. The following quote expresses this thought very well.
A few of the concerns dealt with some of the realities of a beginning programming class. What happens when strangers form an incompatible pair? What happens when one member of a pair withdraws from the course or simply stops participating? Finally, one student expressed a concern about an apparent conflict between the goals of pair programming and the goals of an introductory programming class.
Suggestions from the StudentsA few students expanded on the assignment and suggested ways to incorporate pair programming into the beginning programming courses. Most of these suggestions were variations on the theme that pair programming can be used successfully only in a closed laboratory environment. A few suggested that the instructors would have to develop more challenging assignments and adjust their grading criteria. The most provocative comment came from the student who offered the following suggestion.
|