What you'll study
The MSc Computer Science (Software Engineering) programme is designed to support students with various levels of computing and programming practice experience. There is suitable content on professional skills and the importance of ethics for practising computer scientists. Material on software engineering, referencing and unfair means supports the transition into the postgraduate environment.
Our degrees are accredited by the British Computer Society, The Chartered Institute for IT. The BSc and MSc programmes fully meet the academic requirements for Chartered IT Professional and partial Chartered Engineer status, while our MEng programmes fully meet the academic requirements for both Chartered IT Professional and Chartered Engineer status. Some employers recruit preferentially from accredited degrees, and an accredited degree is likely to be recognised by other countries that are signatories to international accords.
As a route into research, the programme supports the development of postgraduate technical skills, alongside critical research, analysis and planning activities.
In lectures you’ll benefit from a range of techniques, from interpreting complex ideas through interactive discussions, to live programming or other problem-solving demonstrations.
Teaching and learning
We place a strong emphasis on practical laboratory sessions. These will significantly develop your core computer science skills, and enhance your employability through exposure to commercial projects.
As teamwork plays a key role in commercial software development and has great value as an employable skill, group work is used in a number of modules.
Practical coursework is the main form of assessment, and you will design, build and test software solutions to a variety of problems. This is complemented by written coursework. The largest assessment is the dissertation.
Object Oriented Design and Development Using C#
Develop a deeper understanding and critical analysis of contemporary component-based, managed programming environments, including how they play a key role in creating secure software systems.
Maintaining Large Software Systems
This module provides in-depth coverage of the technologies and programming techniques used in maintaining large scale software. The practical portion of the module will be an extensive exercise carried out on a real world production quality code-base.
Study the theory and practice needed to develop software, based on realistic contexts and clients’ requirements. You'll learn through an authentic task-based approach to software development, with experience of leadership, cooperation and teamwork.
The module provides a critical overview of the major architectural models and programming paradigms used in distributed computing. You'll be taught to design and deploy secure, reliable, enterprise-scale distributed applications.
You will be introduced to a wide variety of concepts relating to the security of software systems at both the language and application levels. You'll give detailed consideration to common security algorithms and their implementations and how the runtime environment can support and implement security at various levels.
Computer Science Dissertation