Teaching Computer Science Courses Using Extreme Programming (XP) Methodology

Author(s): Jami, Syed Imran, Shaikh, Zubair
Venue: 9th International Multitopic Conference, IEEE. INMIC 2005
Date: 2005

Type of Experiement: Case Study


Teaching Computer Science Courses Using Extreme Programming (XP) Methodology describes the extreme programming methodology and its effectiveness in incorporating practices in a computer science curriculum. The paper itself is based on the author’s own experiences within the college computer science curriculum, and references other case studies to support its own claims.

Only three extreme programming practices were fully adopted by the courses under examination, which makes formulating accurate conclusions impossible. The authors stress, however, that the extreme programming practices that were implemented helped develop communication and mentoring skills among students. One semester is not long enough to incorporate both traditional methods of software engineering and agile methods. The authors suggest that extreme programming practices be taught over two semesters where, for example, paired programming, test-first design, and continuous integration would be introduced in the second of the two semesters.

The paper includes analysis of the introductory computer science classes, as well as one computer science class for every student class afterward, up until graduation. Overall, the paper supports the teaching of extreme programming practices in academia, but proposes a better method for conducting and structuring the courses. Mainly, more time need be spent teaching each type of software engineering process (traditional and agile processes), which requires that students take additional software engineering courses. The authors assert that the gap between industry (where students work) and the academic world (where students learn) makes it so the conclusions and recommendations of the paper cannot be extrapolated into industry settings. Specifically, the authors contribute the difficulty of adopting extreme programming in an academic environment with the fact that students’ schedules often conflict, diminishing group coordination efforts which are fundamental to extreme programming practices. Additionally, students attention, spread over several subjects all at once during an academic semester, cannot be focused 100% on a single course or project. In industry, these scenarios would not present themselves.