Agile methodologies were developed for software development during the 90's. They were formed as a reaction against the heavy documentation and badly working software that couldn't be maintained and developed in time. As we take agile development practices into education, the first domain for use was for teaching computer science, particularly programming.
More than a strict set of process descriptions, agile methodologies can be seen as an alternative way of thinking when it comes to dealing with change and quality. Agile methodologies can be described as being: adaptive rather than predictive; people-oriented rather than process-oriented.
One particular implementation of agile methodologies within the context of programming is Extreme Apprenticeship (XA). XA is not a tool; instead, it is a comprehensive approach to organize education in formal context. Key points of XA are that it emphasizes doing over everything else, questions the utility of lecturing, and focuses on active teacher-student collaboration. To be more specific, there are two core values that are stressed in all course activities:
The results of applying XA have been impressive in the context of our university, as the drop-out rate, pass rate, and grade distribution have improved beyond our initial hopes. Personal XA-based advising sees to it that every individual student practices with tens of simple exercises already during the first week of the course, enforces active participation, and seeks to disable students' ability to procrastinate until the eve of the exam. Learning achievements become visible to the student and internal motivation goes up.