Software Engineering MSci (with Foundation Year)
UCAS Code: SE21|Duration: 5|Full Time|Hope Park
UCAS Campus Code: L46
Work placement opportunities|International students can apply|Study Abroad opportunities
About the course
Modern society could not function without large software systems. National utilities and infrastructure, energy, communications, health, business and transport all rely on complex and large applications. With the increasing complexity of these software systems comes an increasing difficulty in building and delivering a correct, and robust, solution to customers on time and on budget. Such software cannot be produced successfully, safely and efficiently without following some constraining, and managing, process. This is the domain of the software engineer.
Teaching on this degree is structured into lectures, where all students are taught together, seminars of smaller groups of around 15-20 students, and tutorials which typically have no more than 10 students. During your first year of study, there are approximately 12 teaching hours each week, which reduces to approximately 10 teaching hours in your second and third years. On top of teaching hours, you are also expected to spend a number of hours studying independently each week, as well as studying in groups to prepare for any group assessments that you may have.
Assessment and feedback
During your degree, there are a variety of assessment types to ensure you are given a range of opportunities to demonstrate your knowledge, skills and understanding of the academic and professional components of the degree. These include written exams, portfolios of tasks and activities, and practical coursework. In your final year, there is also a dissertation or extended research project to complete. You will be given written feedback on your assessments, and you will have the opportunity to discuss this with your tutor in more detail.
Basic Software Design
- OOD/OOP Principles
- Reusable Design Patterns (Patterns and anti-Patterns)
- Common Implementations (MVC etc)
- Container Architectures, Orchestration Enterprise Design Patterns
- Design Principles (aspect-oriented programming, inversion of dependencies, SOLID, design by contract)
- Microservice Architectures
- Messaging Middleware (message brokers vs stream platforms)
- RESTful Interfaces, Web-Sockets
- Principles of Cloud Computing and Web Applications
- Platforms, AWS vs Microsoft Azure vs Google Cloud
- Practical Deployment – Firewalls, Security Groups, Virtual Subnets etc.
- Software Process Models
- Process Activities
- Coping with Change
- Improving Processes
Agile Software Development
- Agile Methods
- Agile Development Techniques
- Project Management in an Agile Environment
- Scaling Agile Methodologies
Functional and Non-Functional Requirements
Requirements Engineering Processes
- Change and Change Management
- Text-driven Development
- Testing during Development
- Testing Environments
- Release Testing
- User Testing
- Managing Risk
- Managing People, Teamwork
- Plan-driven Development and Scheduling
- Planning for Agile
- Estimation and Contingency
- Cocomo – Cost Modelling
- Software Quality
- Quality Standards
- Reviews and Inspection
- QM in Agile Development Teams
- Measuring Software Performance
- Version Management
- Release Management – CI/CD Models
- Building Systems
The Foundation Year is a great opportunity if you have the ability and enthusiasm to study for a degree, but do not yet have the qualifications required to enter directly onto our degree programmes. A significant part of the Foundation Year focuses upon core skills such as academic writing at HE level, becoming an independent learner, structuring academic work, critical thinking, time management and note taking.
Successful completion of the Foundation Year will enable you to progress into the first year (Level C) of your chosen honours degree. Further details can be found here.
Year one provides a broad introduction to computing in general with a particular focus on practical programming. Topics you will study include:
- Principles of problem solving using Python
- Introduction to web development
- Study skills
- Principles of software development
- Introduction to data structures and formal algorithms using Java
- Introduction to software source control management systems
- Mathematics for computing
In year two you will build significantly on skills and knowledge acquired in year one. You will start to study the principles of software design and management. Your year will follow 4 main threads:
- Object Oriented Software Development using C++
- Introduction to the theory of Software Engineering
- Website development using PHP
- Practical Software Engineering:
- Comparative database technologies
- Java design patterns
- Introduction to software testing and monitoring
- Introduction to enterprise systems
Your third year will explore many practical aspects of software engineering in depth. You will be learning in-demand skills that should prove immediately useful in your first jobs after university:
- Advanced web development technologies
- Introduction to solution architecture
- Project, quality and configuration management and planning
- Introduction to cybersecurity
- Realtime software engineering
- Enterprise middleware
You will undertake a project the deliverables of which will be a detailed specifications analysis, a design document and a professional quality software artifact.
In year four you will look at modern paradigms for enterprise level software development, deployment, monitoring and maintenance. You will study:
- Computing in the cloud
- Solutions architectures focussing on microservice architectures
- Enterprise integration patterns
- Software containerization and orchestration
- DevOps and monitoring in the cloud
- Hybrid cloud architectures
- Continuous integration and continuous delivery
You will undertake a significant project and produce an associated dissertation.
There may be some flexibility for mature students offering non-tariff qualifications and students meeting particular widening participation criteria.
There is a major skills gap in the software engineering sector, with the Tech Partnership reporting that 85% of hard-to-fill positions are difficult to recruit to because of a lack of specialist skills (Employer Insights: skills survey 2015). Our Software Engineering degree will develop employable graduates, who have experience in practical skills that are highly sought after by industry, including programming in C, C++, Java, Lua, Python, C# and low-level languages, such as x86 and ARM
The Service and Leadership Award (SALA) is offered as an extra-curricular programme involving service-based experiences, development of leadership potential and equipping you for a career in a rapidly changing world. It enhances your degree, it is something which is complimentary but different and which has a distinct ‘value-added’ component. Find out more on our Service and Leadership Award page.
As part of your degree, you can choose to spend either a semester or a full year of study at one of our partner universities as part of our Study Abroad programme. Find out more on our Study Abroad page.
The tuition fees for the 2023/24 academic year are £9,250 for full-time undergraduate courses.
If you are a student from the Isle of Man or the Channel Islands, your tuition fees will also be £9,250.
The University reserves the right to increase Home and EU Undergraduate and PGCE tuition fees in line with any inflationary or other increase authorised by the Secretary of State for future years of study.
We have a range of scholarships to help with the cost of your studies. Visit our scholarships page to find out more.
International tuition fees
The International Tuition fees for 2023/24 are £12,500.
Visit our International fees page for more information.
With Foundation year, this degree is only available to study as a Single Honours course.