- UCAS course code
- GG14
- UCAS institution code
- M20
Bachelor of Science (BSc)
BSc Computer Science and Mathematics
- Typical A-level offer: A*A*A including specific subjects
- Typical contextual A-level offer: AAA including specific subjects
- Refugee/care-experienced offer: AAB including specific subjects
- Typical International Baccalaureate offer: 38 points overall with 7,7,6 at HL, including specific requirements
Course unit details:
Software Engineering 2
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 |
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.