Bachelor of Science (BSc)

BSc Computer Science and Mathematics

One of the most sought-after subject combinations in industry, this course is designed to provide the perfect balance of creativity and logic.
  • Duration: 3 years
  • Year of entry: 2025
  • UCAS course code: GG14 / Institution code: M20
  • Key features:
  • Scholarships available

Full entry requirementsHow to apply

Course unit details:
Software Engineering 2

Course unit fact file
Unit code COMP23412
Credit rating 10
Unit level Level 2
Teaching period(s) Semester 2
Available as a free choice unit? No

Overview

This course prepares you to build interactive, real-world web applications using modern development frameworks and team-based agile practices. You will work in a simulated software company, with weekly requirements from ‘customers’ (your lecturers) that range from precise to deliberately ambiguous – just like the real world.

Working in teams, you will learn to break down requirements, clarify ambiguity through customer engagement, and deliver high-quality software through continuous integration and testing. Along the way, you will develop fluency in an industry-standard framework, navigating documentation and architectural patterns to solve evolving challenges.


What you will gain:

  • Real-world experience in team-based software engineering.
  • Confidence working with a modern web development framework.
  • Skills in requirements analysis, rapid learning, and iterative development.
  • The ability to build and test usable, robust web applications.
  • Hands-on experience working with APIs – both consuming and creating them.

You will leave the course ready to hit the ground running in a professional development team.

Pre/co-requisites

Unit title Unit code Requirement type Description
Software Engineering 1 COMP23311 Pre-Requisite Compulsory
Students who are not from the School of Computer Science must have permission from both Computer Science and their home School to enrol.

Aims

Software Engineering II aims to familiarise students with industrial software engineering scenarios, dynamics, tools of the trade and practices. The course unit simulates the engineering of an enterprise web application using a widespread development framework that maps into the MVC design pattern.

Learning outcomes

  • Apply user interface guidelines when designing web applications.
  • Design a data model to efficiently represent entities and relationships within a software system.
  • Map from acceptance tests to unit and integration tests to ensure a system meets specifications and is robust against regression.
  • Use and develop REST APIs to provide common functionality to multiple software projects.
  • Use third party libraries to incorporate functionalities to the web application.

Syllabus

1. Introduction I: using an IDE

2. Introduction II: Web frameworks

3. Data modeling

4. Designing the user interface

5. Specification by example

6. Testing functionality in isolation

7. Providing a REST API

8. Using external APIs

9. Integrating external services

10. Catching up with requirements

11. Exam practice

12. Showcase

Teaching and learning methods

The asynchronous online lectures are delivered weekly and are the first theoretical contact with the week's topic. There is a dedicated forum to discuss any questions from the lecture materials. Some weeks include examinable readings, including scientific articles and blog posts on the weekly topics. The labs are structured in three stages and take place every week:

Stage 1

In week 1 and 2, students work individually. In week 1, they get the first contact with an industrial IDE and learn how to navigate, build, run and test an existing codebase. In week 2, students learn the MVC design paradigm and the implementation that Spring makes of it. To become familiarised with the framework, students are guided by a heavily scripted lab manual that follows the test-driven development paradigm. There is academic and GTA support to troubleshoot and to provide pedagogical explanations of the choices to be made and the solutions.

Stage 2

Students get in teams of 6-8 members and receive new requirements every week to work on the team coursework. These requirements are typically related to the week’s theoretical topic. Students must derive issues from the requirements, populate the distributed version control system with issues, distribute them, and integrate them after completion. This typically happens between weeks 3 and 10. We closely monitor team performance and workload distribution with GitLab analytics.

We run two checkpoints to ensure students are working according to plan and the distribution of work is fair according to hard data retrieved from GitLab analytics. Students not contributing receive a penalty. There is academic and GTA support to provide continuous feedback, troubleshoot and provide pedagogical explanations for the choices to be made and the debugging strategies to follow.

The team study sessions run along Stage 2 and consist of an extra hour to carry on working on the week’s requirements. There is academic and GTA support during these sessions.

Stage 3

After submitting their coursework, we run a project showcase in week 12. GTAs and academics run acceptance tests against their project and provide face-to-face feedback on the marks achieved and lost. Teams anonymously nominate the best team members in a poll to award their contributions through extra marks.

Employability skills

Analytical skills
Group/team working
Innovation/creativity
Leadership
Project management
Problem solving
Research

Assessment methods

Method Weight
Written exam 50%
Project output (not diss/n) 50%

Feedback methods

  • Individual labs: Formative feedback during the week lab in weeks 1 and 2.
  • Team coursework: team-level formative face to face feedback between weeks 2-10. Team-level summative face to face feedback at the showcase taking place on week 12.
  • Exam: Cohort-level feedback after marking

Recommended reading

The examinable articles are introduced during the course.

Study hours

Scheduled activity hours
Assessment written exam 1
Demonstration 1
Lectures 10
Practical classes & workshops 22
Supervised time in studio/wksp 8
Independent study hours
Independent study 58

Teaching staff

Staff member Role
Markel Vigo Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Return to course details