Unit information: AI Software Engineering Project in 2027/28

Please note: Programme and unit information may change as the relevant academic field develops. We may also make changes to the structure of programmes and assessments to improve the student experience.

Unit name AI Software Engineering Project
Unit code COMS20019
Credit points 20
Level of study I/5
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Professor. Seth Bullock
Open unit status Not open
Units you must take before you take this one (pre-requisite units)

COMS10016 Imperative and Functional Programming and COMS10018 Object-Oriented Programming and
Algorithms or equivalent.


COMS10014 Mathematics for Computer Science A and COMS10013 Mathematics for Computer Science B or
equivalent.


Reasonable proficiency in an imperative programming language.


Working knowledge of Java programming language.

Units you must take alongside this one (co-requisite units)

None.

Units you may not take alongside this one

None.

School/department School of Computer Science
Faculty Faculty of Engineering

Unit Information

Why is this unit important?
The primary aim of this unit is to foster good software engineering practice and to introduce the software development lifecycle and principles of project management. The purpose of this is to instil in the students a professional attitude towards AI software development and encourage them to adopt a mature and repeatable software process. The exact nature of the project will be informed by industrial input and, wherever possible, students will have some choice in the project upon which they work.

How does this unit fit into your programme of study?

This is a compulsory unit in year two building on previous learning in programming with an opportunity to apply skills in a practical project setting.

Your learning on this unit

An overview of content

This is a practical and experiential unit in which the learning outcomes will be achieved through a team project. The aim of this project will be to specify, design, implement and evaluate a large-scale software system with an AI component.

How will students, personally, be different as a result of the unit

Students will have had experience of working in a team to create a software solution for a real-world client, giving them a taste of what working as a software engineer might be like.

Learning Outcomes

On completion of this unit, students will be able to:

  1. Development of AI software systems of significant scale within a mature and repeatable Software Development process and apply Agile Principles & Practices.
  2. Select and employ development support tools (as appropriate to the project being undertaken).
  3. Work effectively within real-world development contexts and with clients.
  4. Collaborate effectively within small teams.
  5. Apply basic principles of project management and identify the presence of (and employ techniques to mitigate the impact of) project uncertainty and risk.

How you will learn

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures,
group work, practical activities supported by drop-in sessions, and self-directed exercises.

How you will be assessed

Tasks which help you learn and prepare you for summative tasks (formative):

Teams will have regular meetings with a Teaching Assistant mentor, and will receive regular feedback on their GitHub repositories, to enable them to improve their software development skills and their Github repo.

Optional workbooks with examples will be provided to work through designed to reinforce learning.

Teams are expected to make at least 3 releases of their project to their client, and ask for client feedback on: 1) the Minimum Viable Product in the second half of Teaching Block 1; 2) the Beta Release around the middle of Teaching Block 2, and 3) the Final Release at the end of Teaching Block 2. After the release of the Minimum Viable Product, teams will have at least one formative team project presentation and demonstration that will give the students experience of the final summative presentation.

Tasks which count towards your unit mark (summative):

100% coursework, completed in groups to assess Learning Outcomes 1 through 5.


The final project mark is determined by a panel and is informed by a variety of presentational formats, including a product presentation and demo at the end of the project. The marks will be individualised using metrics from the team’s GitHub repository, peer evaluation and mentor reports.

Teams receive formative feedback throughout the unit via feedback at multiple scheduled release reviews, meetings with clients and mentors and regular feedback on their GitHub repositories.

When assessment does not go to plan:

Individual students who fail this unit will retake the assessment in a like-for-like fashion. This will be in the format of a team project undertaken during the summer coursework reassessment period, in new teams with other students who have failed or are taking a First Attempt resit, and will involve an intensive piece of work under the guidance of unit staff.

In the case where a team of students cannot be formed for the resit cohort, the resitting student will be integrated into a suitable, selected software development environment outside of the unit cohort to fulfil the learning outcomes, in parity under staff guidance.

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS20019).

How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours of study to complete. Your total learning time is made up of contact time, directed learning tasks, independent learning and assessment activity.

See the University Workload statement relating to this unit for more information.

Assessment
The assessment methods listed in this unit specification are designed to enable students to demonstrate the named learning outcomes (LOs). Where a disability prevents a student from undertaking a specific method of assessment, schools will make reasonable adjustments to support a student to demonstrate the LO by an alternative method or with additional resources.

The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit. The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates within the Regulations and Code of Practice for Taught Programmes.