CS217 – Agile Software Engineering in Practice

TIMETABLE TEACHING MATERIAL
Credits 10
Level 2
Semester 2
Prerequisites Students taking this class should have obtained a good mark for CS105 Programming Foundations (60% or more) and ideally have performed well in semester 1 of CS207 Advanced Programming.
Availability Possible elective available only to Computer & Information Sciences students. There are up to 50 places available.
Contact Lectures: 14 | Tutorials/Labs: 20
Assignments/Self study: 56
Assessment 30% classwork, 70% written 2-hour examination
Resit Resit is by a 2-hour examination.
Lecturer Kostas Liaskos (class contact – the class will be taught by J P Morgan)

General Aims

The class will enable students to gain practical experience of agile software delivery and developing for the cloud. Students will learn how great teams work together and how robust dynamic software is created in practice.  It will provide them with valuable insights into these important areas, knowledge of cutting-edge development processes, and the opportunity to enhance their software development skills.

Learning Outcomes

On completion of the class, a student should:

  • Gain knowledge and understanding of agile software development.
  • Gain an understanding of developing software for the cloud.
  • Be able to design, implement and test a software application.
  • Be able to reflect on the suitability of agile development practices for modern software development environments.
  • Be able to critically assess the suitability of software engineering practices for  complex, large scale problem domains.

Syllabus

Topics covered will include the following.

  • Introduction to agile development techniques and planning.
  • Test-Driven Development and group dynamics.
  • Developer tools and the software development lifecycle.
  • Continuous integration and continuous deployment: concepts, benefits, tools.
  • Cloud introduction
  • Financial trading: what it means for software developers.
  • Cloud Security: cloud for enterprise.

Transferable Skills and Cognitive Ability Learning Outcomes

On completion of the course, a student should be able to:

  • Demonstrate an enhanced and broadened programming knowledge and ability.
  • Demonstrate the ability to engage in development practices used within industry.
  • Present and communicate effectively on work carried out to team members and others.
  • Work effectively as a member of a team to build a software-based solution to a problem.

Recommended Text/Reading*

* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

The Agile manifesto – http://agilemanifesto.org/