Agile CS1 Labs: eXtreme Programming Practices in an Introductory Programming Course

Many students begin to form their software development habits in introductory programming courses. Although problem-solving strategies and other good practices are taught at the introductory level, early experiences in programming tend to involve small assignments and so students do not always see the benefits and value of good software engineering practices. Consequently, they develop habits which are hard to break later when faced with significant problems where good practices are essential for success. Furthermore, students report that typical CS1 lab experiences tend to be unsatisfactory and even irrelevant. In order to give the students early meaningful experiences in developing good habits using a software engineering methodology which fits the limited time-constraints of the academic environment, eXtreme Programming (XP) was employed for the lab portion of a second semester CS1 course. This paper describes how XP practices were incorporated into a semester-long project where classes met once a week in a closed lab. Specific affective objectives were also introduced which were measured quantitatively and qualitatively. This paper describes our methodology, assessment, results, and plans for improvement.

[1]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[2]  Leo F. Denton,et al.  Integrated Use of Bloom and Maslow for Instructional Success in Technical and Scientific Fields , 2002 .

[3]  Vincent Tinto,et al.  Leaving College: Rethinking the Causes and Cures of Student Attrition. , 1988 .

[4]  Michael Wainer Adaptations for Teaching Software Development with Extreme Programming: An Experience Report , 2003, XP/Agile Universe.

[5]  Ned Kock,et al.  Web-supported course partnerships: bringing industry and academia together , 2003, CACM.

[6]  Laurie A. Williams,et al.  Improving the CS1 experience with pair programming , 2003, SIGCSE.

[7]  Charles E. McDowell,et al.  The impact of pair programming on student performance, perception and persistence , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Giancarlo Succi,et al.  Extreme Programming Perspectives , 2002 .

[9]  William Mitchell,et al.  Information technology education one state's experience , 2002 .

[10]  Laurie A. Williams,et al.  In support of student pair-programming , 2001, SIGCSE '01.

[11]  Grigori Melnik,et al.  Introducing Agile Methods in Learning Environments: Lessons Learned , 2003, XP/Agile Universe.

[12]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[13]  E. Seymour,et al.  Talking About Leaving: Why Undergraduates Leave The Sciences , 1997 .

[14]  Leo F. Denton,et al.  Promoting Student Achievement With Integrated Affective Objectives , 2003 .

[15]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[16]  S. Schwartz,et al.  Leaving College: Rethinking the Causes and Cures of Student Attrition , 1987 .

[17]  Frank Maurer,et al.  Extreme Programming and Agile Methods - XP/Agile Universe 2003 , 2003, Lecture Notes in Computer Science.

[18]  Hisham M. Haddad Post-graduate assessment of CS students: experience and position paper , 2002 .

[19]  Walter F. Tichy,et al.  Case study: extreme programming in a university environment , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[20]  R. Light,et al.  Making the Most of College , 2001 .

[21]  S. Rathus,et al.  Making the Most of College , 1991 .

[22]  Daniel W. Palmer,et al.  Extreme Software Engineering A Hands-On Approach , 2003 .

[23]  Robert E. Noonan,et al.  Unit testing frameworks , 2002, SIGCSE '02.

[24]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[25]  Ron Jeffries,et al.  Extreme Programming Installed , 2000 .

[26]  James B. Fenwick Adapting XP to an Academic Environment by Phasing-In Practices , 2003, XP/Agile Universe.

[27]  Charles E. McDowell,et al.  Experimenting with pair programming in the classroom , 2003, ITiCSE.

[28]  Leo F. Denton,et al.  Houston, we have a problem: there's a leak in the CS1 affective oxygen tank , 2004, SIGCSE '04.

[29]  Lorraine Johnston,et al.  eXtreme programming at universities - an educational perspective , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[30]  Darren C. Atkinson,et al.  Comparing Extreme Programming to Traditional Development for Student Projects: A Case Study , 2003, XP.