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 1

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

Overview

This course covers many aspects of software engineering and contains much essential information about working with a large codebase authored by many programmers, most of whom are not around.

Pre/co-requisites

Unit title Unit code Requirement type Description
Introduction to Programming 1 COMP16321 Pre-Requisite Compulsory
Introduction to Programming 2 COMP16412 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

This unit aims to help students appreciate the reality of team-based software development in an industrial environment, with customer needs, budget constraints and delivery schedules to be met.  Through hands-on experience with an industry-strength development toolkit applied to a large open source software system, students will gain an appreciation of the challenges of green and brownfield software development, along with an understanding of the core software engineering concepts that underpin current best practice.  Students will have the core skill set needed by a practicing software engineer, and will be ready to become productive and valuable members of any modern software team.

Assessment is based on:

  1. Two team-based exercises, making changes to the open source system used in the course unit.  Together these contribute towards 60% of the total course unit mark.
  2. Two individual coursework exercises together contributing towards 10% of the mark for the course unit.
  3. A multiple choice examination, at the end of the semester.  This contributes towards 30% of the total course unit mark.

Learning outcomes

  • Describe fundamental concepts in software engineering (including complex systems, stages of development lifecycle, quality assurance, testing). 
     
  • Perform basic development management tasks (e.g., planning, estimation, problem description, issue tracking)
     
  • Perform basic software construction tasks (e.g., design, debugging, refactoring, artifact management) in the context of a development project. 
     
  • Interpret, evaluate, and create a variety of technical analyses and assessments (e.g., of libraries or technologies) and present results at various levels of detail (e.g., to colleagues vs. to managers vs. to customers). 
     
  • Describe relations between technical details and business, social, and ethical values.
     
  • Assess the effects of social and technical trends on projects and the profession (e.g., how generative AI affects product development and, as a product, society). 
     
  • Complete a small scale, “from scratch” software engineering project from start to finish comparable to what would be needed for a 3rd year project. 

Syllabus

 

The following is an outline of the topics covered in COMP23111.

  • Team software development
  • Software project planning and issue tracking
  • Greenfield vs brownfield software development
  • Git best practices and common Git workflows
  • Automated build tools and release management
  • Automated unit, integration and acceptance testing
  • Test code quality and test coverage tools
  • Continuous integration and testing tools
  • Best practices and tool support for code review, including source code quality tools
  • Design patterns and common architectural patterns
  • Design for testability
  • Refactoring for code quality
  • Safely migrating software functionality
  • Basic risk management techniques
  • Working with open source software systems

 

Teaching and learning methods

Lectures
1 introductory lecture in semester 1, week 1.

Workshops
One 2 hour workshop each week.  In these sessions, you will gain practical, hands-on experience of the techniques being taught.

Team Study Sessions
Two 1 hour sessions per week.  In these sessions you will:

  • Work with your team on the team coursework
  • Meet your industrial mentor (2 sessions per team)
  • Get your team coursework marked in a face-to-face interview (3 sessions per team).

Offline Study
A number of off-line study activities and readings are provided, that build on and consolidate the topics covered in workshops.  These are compulsory and are assessed in the coursework and exam.

Employability skills

Analytical skills
Group/team working
Innovation/creativity
Leadership
Project management
Oral communication
Problem solving
Written communication

Assessment methods

Method Weight
Written exam 70%
Practical skills assessment 30%

Feedback methods

Staff and TAs will be on hand to provide face-to-face informal feedback during workshops and team study sessions.

The RoboTA system will provide continuous feedback on aspects of the team marking system, using the Jenkins continuous integration system.

TAs will also provide written and verbal feedback on coursework, once marking is complete.

Recommended reading

COMP23311 reading list can be found on the Department of Computer Science website for current students.

Study hours

Scheduled activity hours
Lectures 1
Practical classes & workshops 64
Independent study hours
Independent study 35

Teaching staff

Staff member Role
Suzanne Embury 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.

course textbook https://software-eng.netlify.app/

 

 

Return to course details