Balancing hands-on and research activities: a graduate level agile software development course

Agile software methodologies promote developing better software faster and have been gaining popularity in industry. However, agile methods are still unfamiliar in the academic world. While it is important to introduce agile methods to undergraduate students, we believe that having a graduate level course in agile development is as crucial. We offer a graduate level topic course that is dedicated to teaching agile software development while emphasizing both hands-on experience and research activities. In this course, students first work on a series of projects with real customers and then propose and conduct research on topics in agile development. The result of this approach has been well received by students and has stimulated student research interests in the area. This paper describes our experiences in offering the course.

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

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

[3]  Christopher Avery,et al.  Teamwork Is an Individual Skill: Getting Your Work Done When Sharing Responsibility , 2001 .

[4]  Laurie Williams,et al.  Extreme programming for software engineering education? , 2001, 31st Annual Frontiers in Education Conference. Impact on Engineering and Science Education. Conference Proceedings (Cat. No.01CH37193).

[5]  Charles E. McDowell,et al.  Program quality with pair programming in CS1 , 2004, ITiCSE '04.

[6]  Laurie A. Williams,et al.  In Support of Pair Programming in the Introductory Computer Science Course , 2002, Comput. Sci. Educ..

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

[8]  Ameet S. Talwadker Survey of performance issues in parallel database systems , 2003 .

[9]  Leo F. Denton,et al.  Agile CS1 Labs: eXtreme Programming Practices in an Introductory Programming Course , 2004, XP/Agile Universe.

[10]  Tim DeClue,et al.  Pair programming and pair trading: effects on learning and motivation in a CS2 course , 2003 .

[11]  Proceedings of the Agile Development Conference. ADC 2003 , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

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

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

[14]  Matthias M. Müller,et al.  Analyzing the cost and benefit of pair programming , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

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

[16]  David H. Johnson,et al.  Using Extreme Programming in the Software Design Course , 2002, Comput. Sci. Educ..

[17]  Stewart Marshall,et al.  Student Perceptions of the Suitability of Extreme and Pair Programming , 2001 .

[18]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[19]  Charles E. McDowell,et al.  Guidelines for the use of pair programming in a freshman programming class , 2002, Proceedings 15th Conference on Software Engineering Education and Training (CSEE&T 2002).

[20]  Owen Astrachan,et al.  Bringing Extreme Programming to the Classroom , 2001 .