Agile is an alternative to the traditional waterfall approach discussed in other software engineering courses. Its key principals include: active user involvement in the design process, empowering the development team to make decisions, allowing requirements to evolve while keeping the timescale fixed, iterating with small/incremental releases, testing early and often, and high degree of collaboration between all stakeholders. Students will explore several popular agile processes and frameworks which may include some of the following, amongst others: Adaptive Software Development, Agile Unified Process, Crystal Clear Methods, Extreme programming, Lean, Scrum. Benefits and pitfalls of this approach as compared to more traditional models will be discussed. (3)