Curious about studying Computer Science (Software Engineering) - MSci (Hons)at Royal Holloway, University of London? We've gathered all the key details—entry requirements, modules, fees, and more. Hear from real students by checking out reviews, or take the next step by booking an open day to explore it for yourself.
Master of Science (with Honours) - Msci (Hon)
Main Site
Full Time
Sep 2026
4 Year
Our technological world has created a global demand for skilled professionals who can design, build and maintain computer courses, databases and applications. This advanced four-year course offers a thorough foundation in computing and application development, as well as a thorough exploration of software engineering. You will have the chance to showcase your abilities through practical work and extended projects, and the course is particularly recommended if you have already experienced and enjoyed programming and you want to go on to postgraduate study or a specialist career in software.Launched in 2015/16, this specialist course will give you all the knowledge, skills and professionalism that you need for a successful career. Our software engineering teaching has been used as an example of ‘best practice’ in computer science education by BCS, The Chartered Institute for IT. You will learn from software professionals and leading academics in the field to apply engineering principles to the design, development, implementation and maintenance of all kinds of software. Our progressive curriculum has been developed in consultation with industry, with a modular structure that gives you the flexibility to tailor your degree to your interests. From the outset you will be experimenting with programming games, robots, Gadgeteer kits, Subversion, JUnit testing, Scrum-based Agile software and more, in our well-equipped laboratories. There is also the option of transferring onto our five-year, year in industry course, subject to good academic progress.Duration: 4 years full time
This module will describe the key principles of academic integrity, focusing on university assignments. Plagiarism, collusion and commissioning will be described as activities that undermine academic integrity, and the possible consequences of engaging in such activities will be described. Activities, with feedback, will provide you with opportunities to reflect and develop your understanding of academic integrity principles.
In this module you will develop an understanding of how the internet works and its key protocols. You will look at the technologies used for web development, including scripting languages and their potential for adding dynamic content to web sites and applications. You will consider the role of web services and related technologies, and will examine the fundamental principles of network security.
In this module you will develop an understanding of the handling of large and infinite objects within a programming environment. You will learn how to use formal logic to design, reason about and minimise switching circuits, and write basic programs in assembly language. You will consider the binary representations of signed and unsigned integers and how to write regular expressions to describe sets and build deterministic automata to recognise these. You will also examine the use of automata machines in the design and reasoning of sequential flow systems.
In this module you will develop an understanding of the formal reasoning for sets, relations, functions and cardinality. You will look at the structures for program data and representation and learn to write and reason recursive definitions and prove results by induction and contradiction. You will consider the representation and reasoning of problems using graphs and the use of vectors and transformations for defining and manipulating graphical objects. You will also examine the usage of probability and statistics in analysing data.
In this module you will develop an understanding of the building of computer systems whilst also gaining a knowledge of the basic concepts of 2D game design, applying them to the development of simple games. This module brings together the lab components of robotics, games design and object-oriented programming, and will allow you to progress to a group project to apply the concepts you learn together.
In this module you will develop an understanding of software design and engineering processes, including the Waterfall and Agile methodologies. You will learn how to identify common software requirements and see how these have been considered in existing systems. You will look the techniques of software design and how software engineers communicate their design ideas. You will consider the importance of documentation and the usage of current industry-standard notations such as user stories and the unified modeling language (UML). You will also analyse and critique the design of existing software looking at the user experience as a measure of its fitness for purpose.
In this module you will develop an understanding of the design of algorithms, with a focus on time and space complexity. You will examine basic algorithms, looking at the implementation and analysis of linear search, binary search, and basic sorting, including insertion sort, selection sort, merger sort, quick sort, and heap sort. You will consider alternative data structure representations, such as binary search trees, hash tables, and binary heaps, and will gain an insight into the basics of graph algorithms.
In this module you will develop an understanding of computer and network security. You will look at software vulnerabilities, hands-on hacking-oriented attacks, memory errors, and web and network security. You will learn how to identify such vulnerabilities and consider the countermeasures that can mitigate their exploitation. You will also examine malicious software (malware) as a typical consequence of a successful software exploitation.
In this module you will develop an understanding of the basic concepts of database technology, including the need for database integrity and robustness, and the use of a modern database system in a web-based environment. You will look at database design and the theory of the relational view of data, learn to describe the crucial issues concerning database integrity and recovery from failure, and write search query language (SQL) queries. You will also consider the process of designing and implementing a database, from the user specifications to the final design, and implement an interface to an SQL database using an application programming interface (API).
In this module you will develop an understanding of how information security may be influenced by real-world design and implementation decisions. You will look at the different cryptographic algorithms, considering their use, advantages and disadvantages. You will use these cryptographic primitives to review and evaluate cryptographic protocols, and examine the rational decisions in the design of tokens and secure elements.
In this module you will develop an understanding of the function and architecture of network operating systems. You will look at the role of an operating system, considering processes, memory and file systems. You will learn to write basic shell scripts, see how services are used at the operating system-level, and evaluate the theory and practice of existing operating systems. You will also examine the UNIX shell, including starting programs, input and output streams, pipes, filters, and utilities.
In this module you will develop an understanding of software engineering techniques and the managerial discipline required to work as part of a team. You will look at basic object-oriented concepts and consider the need for effective program documentation, testing, readability, and modifiability. You will consider the tools used to support software development, such as version controllers, debuggers, and code style checkers, and see how these are integrated into an industry-standard development environment (IDE). You will deliver a small-scale project using test-driven development.
In this module you will have the opportunity to plan and organise a large project, analysing complex ideas, identifying problems, and coming up with solutions. You will apply scientific principles and use a range of software and hardware techniques. You will analyse the effectiveness of your solutions and evaluate the results. You will also consider legal, social, ethical and professional issues. You can design your own project or choose a topic from a suggested list.
Royal Holloway, University of London was founded over 170 years ago. Since then, it has been at the forefront of social ...