Skip to Main Content
Agile software methodologies are quickly becoming widely used in a variety of industry projects; their flexibility provides the means to address many common problems faced in the development of software systems. Companies commonly use selected agile techniques such as unit testing, pair programming, and iterative development even if a complete methodology is not yet embraced. As these techniques become more and more prevalent in industry, it is becoming essential that they are incorporated into traditional computer science curricula. Many aspects of agile methodologies can be regarded as standard practice but taken to an extreme. Consequently, although there are some agile practices that would have to be added to a traditional curriculum, there are many that are typically already covered to a limited extent. Webster University has developed an Agile Software Development graduate course in which the main ideas are discussed, and implemented via student projects. We describe some of the key agile techniques and how they are taught in the Agile course, how we resolve the numerous challenges faced by teaching these techniques, and report on how these ideas are woven into the graduate program.