|Study location||United Kingdom, Egham, Surrey|
|Type||Bachelor courses, full-time|
|Nominal duration||5 years|
|Tuition fee||To be confirmed|
High school / secondary education (or higher)
Required subject: Computer Science or Mathematics or Physics.
At least five GCSEs at grade A*-C or 9-4 including English and Mathematics. Please note that for students taking the BTEC Extended Diploma, GCSE Mathematics is also required at minimum grade B or 6.
The entry qualification documents are accepted in the following languages: English.
Often you can get a suitable transcript from your school. If this is not the case, you will need official translations along with verified copies of the original.
IELTS: 6.5 overall (with a minimum of 5.5 in all other subscores)
At least 1 reference(s) must be provided.
A motivation letter must be added to your application.
Our five-year integrated masters programme offers a thorough grounding in the latest trends and technologies in the rapidly evolving world of computer science, with the benefits of a sought-after year in industry. You will have the chance to showcase your abilities in an extended final year project and this programme is recommended if you want to go on to postgraduate research or pursue a high-level technical career, or just wish to delve deeper into the subject.
We cover all the essentials of application development and explore the fundamentals of computing, and we also introduce you to a host of advanced theories and technologies, from computer games, machine learning and digital sound and music, to intelligent agents and multi-agents, computational optimisation, advanced data communications, digital forensics and more. 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. The programme’s modular structure gives you the flexibility to tailor your degree to your interests. Your supervised work placement can be completed at the end of year 2 or 3. At the end of year 1 you will have the option of transferring onto one of our specialist pathways (Artificial Intelligence, Information Security or Distributed & Networked Computing). Transferring onto our Software Engineering pathway requires previous programming experience and early permission to take the Software Development course in year 1, rather than Object-oriented Programming.
We are a highly respected, research-focused department, with a friendly approach and award-winning teaching. You will have a personal adviser to guide you through your studies. You will also be welcome to join our thriving Computing Society. We are one of only seven departments in the UK to hold the Athena SWAN bronze award for our commitment to increasing female participation in computer science. Our campus is located in the famous M4 corridor and we enjoy close links with many of its leading technology companies. If you are unable to complete a year in industry you can transfer onto our four-year MSci programme.
Computing Laboratory (Games)
In this module you will develop an understanding of the basic concepts of 2D game design and apply them to the development of simple games using an objected-oriented approach. You will look at the nature of graphics, animation, and motion, considering the usage of vectors in these techniques. You will also examine the fundamentals of game physics, such as collisions, gravity and ballistics.
Computing Laboratory (Robotics)
In this module you will develop an understanding of the building of computer systems. You will learn about the elementary concepts of robotics, gaining practical experience in programming mobile robots to execute pre-defined movements using Java and Lego NXT. You will also consider the basics of sensors, proportional-integral-derivative (PID) feedback systems, and the principles of localisation.
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 resoning 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.
Object Oriented Programming 1
In this module you will develop an understanding of programming and object-orientation concepts. You will learn about program basics, control flow, data structures, objects, exceptions, and file input and output. You will consider how to solve basic programming tasks and the need for program documentation, testing, readability and modifiability.
Object Oriented Programming 2
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 sotware looking at the user experience as a measure of its fitness for purpose.
Algorithms and Complexity
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 inerstion 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 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).
Introduction to Information Security
In this module you will develop an understanding of how information security may be influenced by real world design and implementation decisions. You will 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 steams, 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 develop an understanding of the role of the computer professional, gaining practical experience in developing medium scale software as part of a team using Scrum-based Agile development. You will apply managerial discipline and learn about the software lifecycle, team development, standard industrial software engineering, project management, use of version control, and integrated development enironments (IDEs). You will see why project cost and effort is hard to estimate, and consider why project quality is hard to prescribe.
All modules are optional
You will spend this year on a work placement. You will be supported by the Department of Computer Science and the Royal Holloway Careers and Employability Service to find a suitable placement. This year forms an integral part of the degree programme and you will be asked to complete assessed work. The mark for this work will count towards your final degree classification.
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.
In addition to these mandatory course units there are a number of optional course units available during your degree studies. The following is a selection of optional course units that are likely to be available. Please note that although the College will keep changes to a minimum, new units may be offered or existing units may be withdrawn, for example, in response to a change in staff. Applicants will be informed if any significant changes need to be made.
Our MSci graduates are highly employable, with a depth of knowledge and practical skills that set them apart. Year in industry degrees are also highly valued by employers because they give you the chance to gain first-hand experience of the world of work and to apply your learning to real world scenarios. Our students have enjoyed placements in software companies such as Apple, Microsoft or Symantec, as well as in a range of other sectors, including finance and consulting. Many have been offered permanent jobs in the same company at the end of their placements, to take up after their graduation.
Computer scientists work in a vast array of fields, including the arts, the media, finance, aerospace health and, of course, the IT sector. You will graduate with the ability to develop large and complex systems, solve technical problems, and analyse complex information. Your coursework will have honed your team work, communications, time management and self-motivation skills and helped you to showcase your grasp of cutting-edge technologies. You will have the flexibility to adapt to change, to innovate, and to critically evaluate the implications of exploiting new technologies.
We work closely with our partners in industry who help us keep abreast of all the latest market needs and trends. This means our graduates are up-to-speed with the latest developments and ready to contribute to the next generation of computing systems. In recent years, they have launched careers in everything from network systems design and web development, to business management and finance. They work in a diversity of organisations such as: Amazon, American Express, Apple, Bupa, Capita, CGI-Logica, Goldman Sachs, Microsoft, Symantec, among many others.
We are currently NOT ACCEPTING applications from NON-EU countries, except Georgia and Serbia.