Current students

COMP204P - Systems Engineering Project 1

This database contains 2016-17 versions of the syllabuses. For current versions please see here.

Code COMP204P
Year 2
Prerequisites Successful completion of year 1
Term 1
Taught By Graham Roberts, Dean Mohamedally, Lorna Wall, TBA

This module forms the first half of an extended group project that runs from October through to April. The second half, starting in January, is delivered as the companion module COMP205P, Systems Engineering Project 2. Both modules must be taken.


The overall project encompasses the whole process of developing a proof-of-concept design for a cutting-edge software-based system, which may include significant hardware-based elements. COMP204P starts this process by covering a range of core material assessed by coursework, organising students into groups, and requiring each group to investigate and research into the specific area of their project. The investigation involves exploring the relevant ideas and concepts, conducting a literature review, and identifying and experimenting with software, tools, code libraries and hardware. The goal is to create prototypes or mock-ups of potential solutions, and evaluate them.

This is a highly practical module, requiring extensive lab work and good group working skills.Each group works on a specific project in conjunction with an external client or organisation, from where requirements are specified and feedback obtained on the suitability of the proposed designs. A project can include both hardware and software components, and all projects require a suitable user interface or control system. A strong emphasis is placed on the quality and usability of the user interface, requiring HCI principles to be followed. The needs of the client must be addressed as fully as possible, while the engineering comprises needed for a viable solution need to be taken into account and managed.

This module and COMP205P are distinguished by the degree of interaction needed with the external client, and the very strong emphasis on solving real-world problems. Students are encouraged to push at the boundaries and take part in external events such as competitions and hackathons.


Learning Outcomes After completing the module attendees will be able to:
  • have an understanding of how to configure, use and maintain virtual machines, operating systems and software packages.
  • configure a development environment and install a working tool-chain.
  • competently use core tools such as IDEs and version control.
  • work effectively with an external client to obtain requirements and feedback.
  • identify and design an effective and usable user interface or control system for an application, following sound HCI principles.
  • work effectively as a team member in a group.
  • understand how to identify, evaluate and then choose appropriate tools and technology needed to achieve the specified project goals.
  • deliver, document and communicate the results of the investigation into alternative potential solutions to the project goals.
  • evaluate and assess the project work done and the group members. 


Tools and Configuration
Setting-up and configuring various kinds of virtual machine.
Configuring a development environment with a working tool-chain.
Using IDE's, plugins and build tool.
Version contro.
Continuous integration.

User Interfaces
Using HCI principles to design an effective user interface.
Building user-interface mock-ups using a range of approaches.
User interface evaluation.

Solution Investigation
Research and the discovery of ideas, concepts, designs, tools, libraries.
Effective comparison of choice.
Proposing modules, packages and component.
Critical evaluation of a proposed design.

Team Working and Transferrable Skills
Working as a team.
Using a shared repository as part of the development process.
Writing documentation and reports.
Developing a presentation.
Critical assessment and reflection of the work done, results produced, processes and team member evaluation.

The module includes a Scenario Week where students will work on configuring a Linux environment on a virtual machine, implementing a tool chain for continuous integration and deployment, and making use of cloud services.


Project work
The project work begins at the start of term in October, and continues through to late April when the final submission is made. A project website is used to store all documentation, deliverables and other artefacts.

Group formation: Students are split into project groups with around 3-5 members, each group being allocated a client who provides the requirements for the system to be developed. Project groups are selected by the module organisers, who also provide the clients. Project groups are responsible for organising themselves, submitting regular progress reports and working with the client. Lecturers and teaching assistants monitor progress and provide feedback.

Group deliverables: Regularly bi-weekly progress reports, and a milestone submission at the end of term including a video. The milestone submission is made in the form of website content. Review meetings are also conducted with groups by lecturers or TAs, to assess progress.

Individual deliverable: Each student is required to submit an individual report giving an evaluation of the project and an assessment of each group member including themselves.

Method of Instruction:

Online material. Lab classes. Group project reviews and group working. 



The module has the following assessment components:

  • Coursework (100%)

To pass this course, students must:

  • Obtain an overall pass mark of 40% for all components combined.

The coursework component is assessed as follows;


  • Scenario Week (15%);

  • Individual assessment of group work:

    • Individual report (15%);
    • Individual contribution (20%);

  • Group assessment of group work:

    • Milestone deliverable website content (35%);
    • Video (15%).





See the Moodle site