MSc AI Software Engineering Group Project

Module aims

This module is about the development of AI software products. You will learn state-of-the-art techniques used in industrial software development to ensure that teams produce software co-operatively, reliably and on schedule. You will look at technical practices as well as project management techniques. The aim is to provide you with practical experience in developing AI applications and in using software engineering techniques in the design and implementation of large programs.                

Learning outcomes

Upon successful completion of this module you will be able to:
• Select and adapt popular software development methods - particularly agile methods - as practised in the software engineering industry.
• Apply modern software development tools and techniques that aim to ensure quality in software development projects.
• Interact with stakeholders to identify and prioritse requirements.
• Collaborate with others to engineer complex software systems.
• Demonstrate and critically evaluate solutions for technical and non-technical audiences.

Module syllabus

The module content is divided into three themes:
• Agile Development - you will look at the development practices common to agile development, the current industry best practice for developing software products.
• Quality Assurance - you will cover various techniques for assuring the quality of the software produced, in terms of reliability, user satisfaction and performance.
• User Focus - you will study techniques for focussing on the user’s needs and iterating through versions of the product to deliver maximum value to users and customers.

The module will also cover a number of topics:
• Introduction to Agile Methods
• Common Agile Practices
• Extreme Programming
• Scrum
• Kanban
• Estimation and Planning
• Development Process and Quality Assurance
• Continuous Integration
• Deployment pipelines
• Working with customers
• Qualitative and quantitative evaluation

Teaching methods

The software engineering content will be delivered as a combination of video lectures and practical lab exercises.

Once this material has been covered, the bulk of the module involves student teams working together
with their supervisor, applying appropriate software engineering techniques to deliver their project.

Assessments

Module assessment centres around the project.

Teams will be asked to deliver two short documents describing their agreed ways of working for the project, and their analysis and plan for how to solve the problem they are presented with. They will also be asked to demonstrate a working build pipeline around which they centre their development work. These deliverables will be marked in a coarse-grained fashion, and will contribute a small proportion of the module mark.

The majority of the marks will be allocated based on the results of the project, as decided by the supervisor.

The default position is that each member of the group will receive the same mark, but differential marking will be applied where there is evidence that different members of the group contributed more or less to the project

* Initial deliverables (20%):
- project specification, development strategy, team agreement (3–5 pages)—start of term 2;
- DevOps CW (half-way through term 2);
- four fortnightly checkpoints, through term 2.

* Final project solution / report / presentation (80%)         

Teams will work with their project supervisors and receive feedback on the work they have done at regular intervals.               

Module leaders

Dr Robert Craven