In this, course students apply in-depth techniques and experience various roles incorporated into the agile software engineering methodology. Ann overview of each of the major software engineering phases is provided and then applied towards the development of faster and more adaptable software. Proficiency in programming is expected of the students entering this course. Students are required to complete in-depth assignments, read, summarize, and present recent journal papers from the agile software engineering literature, and prepare term papers with regard to an agile software engineering research topic.