Chapter 21. Bringing Extreme Programming to the Classroom
—Owen L. Astrachan, Robert C. Duvall, and Eugene Wallingford
Copyright 2003, Owen Astrachan, Robert C. Duvall, Eugene Wallingford. All rights reserved.
XP [Beck2000] and other light or agile methodologies [Agile2001; Fowler2000A] have
Significant interest in pair programming in an academic setting, and a resulting interest in XP, has been fostered by the work of Laurie Williams [Williams2000; Williams+2000]. However, the general tenets of XP are less known, and the engineering background of many academic computer science programs facilitates adoption of
What's Extreme about XP?
As explained in [Beck2000], XP takes good practices of professional software development to extreme levels. XP introduces a planned and
As we explain in this chapter, these values form the foundation of our approach. Thus, we think we're following the spirit of XP, although we're
Ten "less central principles" from [Beck2000] are given, of which we concentrate on the following four: teach learning; concrete experiments;
For example, as instructors, we often face a tension in developing good (often small) example programs for students. The tension arises because we want to develop simple, focused examples that teach a specific concept, yet we also want to show our students programs that are masterpieces of good design—programs that are fully generic and robust, and exemplify the best practices of object-oriented design and programming.
XP advocates that we design the simplest possible solution that works well for the current set of requirements, not those that we imagine will exist in the future. This helps relieve some of the tension of designing overly generic or optimized programs when creating example code.
Additionally, with this new
In this chapter, we report on three aspects of XP that we have employed very successfully. We have used XP in our introductory programming courses for majors, in advanced courses on object-oriented software design, and in programming courses for nonmajors. These three aspects are as