Flylib.com

Books Software

 
 
 

A Pilot Study


A Pilot Study

The reported classroom experiences with pair programming tend to involve upper-division students [Wells2001; Williams+2000A]. Is pair programming a reasonable practice for students in lower-division courses? This author conducted a pilot study to assess the feasibility of using pair programming in a data structures course.

During the summer term of 2001, the data structures course had a small enrollment that was very representative of the diversity of students who normally take the course—representative in terms of age, gender, ethnicity , family obligations, job schedules, majors and minors, and grade point averages. The first day of the semester, the students were asked to read two articles on pair programming [Williams+2000A; Williams+2000C] and were told that pair programming was to be used for all programming assignments during the semester. The students were then required to write a few sentences that described their initial impressions of pair programming. As was the case with the students in software engineering, the students were generally enthusiastic but expressed a few concerns about scheduling, personality clashes , and work habits.

Because this course lacked a separate laboratory component, some regular class periods were converted to closed laboratory sessions. The initial stages of each programming assignment were completed in the laboratory sessions. The instructor (this author) monitored the students' application of pair programming and made suggestions for improvement. After a few laboratory sessions, the teams were allowed to complete the assignments on their own time, but they were still expected to practice pair programming.

The students completed two questionnaires about their experience with pair programming—one after the first assignment and one at the end of the semester. As one would expect, their perceptions changed.

Initially, communication difficulties and schedule conflicts were seen as the major difficulties. By the end of the semester, most of the communications difficulties had been resolved, but finding time to meet and work outside of class was still a problem. As the semester progressed, a new difficulty arose in pairs of significantly differing abilities . The stronger student in each of these pairs grew frustrated with having to explain everything to the weaker student.

When asked to describe the positive benefits of pair programming, the results were consistent with those reported in the literature [Williams+2000C]. Most students reported improved relations with their partner, more efficient defect avoidance , and apparently shortened development times as the primary benefits.

Finally, the students were asked whether pair programming was feasible for use in the data structures course during the regular semester. Early in the summer, the unanimous answer was "yes," but the early enthusiasm waned. The majority believed that pair programming was a valuable practice but that it should be delayed until a later course. They strongly recommended that the pairs be of roughly equal ability and that all pair programming activities occur in laboratory sessions.


Conclusion

Any process is difficult to implement if the participants lack faith in the process. A thoughtful group of senior computer science majors have expressed their opinions concerning the use of Extreme Programming in a software engineering class and the use of pair programming in an introductory programming class. Most of those students feel that Extreme Programming should be taught as a lecture topic, but using it for a project should be delayed until the students become more proficient in the traditional phases of software development. Most also believe that pair programming should be used in the introductory programming courses, but many feel it might be better to defer pair programming to a later course. Indications from a pilot study support the opinion that pair programming is a valuable practice, but it should not be introduced early in the curriculum.

Although student opinions should not dictate changes to the curriculum, they provide valuable insight that should be considered . Their opinions are particularly valuable as we consider changing the way that they are expected to work and interact with one another.