Computer Science is a very exciting subject to study
The sheer variety of technologies that computing is enabling, and the transformations they are having on all sectors of activity and society as a whole, create huge opportunities for our graduates.
All degree programmes have been developed and organised to prepare you for a career in which things never stay the same. Whichever course you choose, you will:
- Develop problem-solving skills based on a thorough understanding of computing as a science.
- Acquire technical competence in modern methodologies and state-of-the-art tooling.
- Be able to work in teams and collaborate with other professionals.
- Develop research skills so that you can remain at the cutting-edge of technology.
These are skills that you will acquire for life: you will be flexible to adapt to changes in technology, to innovate by using the power of computing to solve real-world problems, and to explore the ramifications and benefits of computing in a variety of application domains.
You will be taught by world leaders in topical areas of research – Algorithms, Artificial Intelligence, Bioinformatics, Distributed Systems, Information Security, Machine Learning, and Software Engineering – and by IT professionals with many years of industrial experience. This means that you will receive a balanced education and be exposed to the cutting-edge methods and techniques that companies are looking for to become leaders in their sectors.
Download a copy of our latest departmental brochure here (PDF)
For any question, please contact admissions.
Please sign up for more information here
If you are joining us in September, check out some suggestions for summer reading and coding here!
Our degree programmes
Our Computer Science degrees offer you a lot of flexibility in relation to the choice of electives. You can mix and match electives from all specialisations and do your final project in any area that excites you.
Artificial Intelligence is changing the world we live in and there is a huge demand for skills in these new technologies.
At Royal Holloway, we have a long history of research in this area and have contributed to the development of many of those techniques, which is why we can offer a wide variety of modules in Machine Learning, Deep Learning, Multi-agent Systems, and the large-scale data storage and processing technologies that support prediction and other forms of "intelligence".
Royal Holloway is one of the first universities in the world to offer degrees in Information Security, starting with Masters programmes in 1990's.
Our renowned Information Security Group is one of the largest academic information security teams in the world, which helps explain why we are the only university that offers BSc and MSci degree programmes certified by GCHQ.
Designing and developing complex software systems that behave and interact as intended, reliably and securely, is still a huge challenge, which is why there is a huge demand for skilled software engineers.
At Royal Holloway, our teaching of software engineering has been qualified by the British Computer Society (the UK professional body for IT) as "Best Practice". You learn modern methodologies and industrial-strength tooling so that your are immediately employable.
Part of our academic staff are IT professionals with many years of industrial experience so, for example, you will learn Agile Software Development from certified Scrum Masters.
Computer Science and Mathematics
This degree programme is taught jointly with the Department of Mathematics. It is a popular choice for students who are passionate about Mathematics but equally excited by the way Computer Science can transform the world.
Digital Media Culture and Technology
This degree programme is taught jointly with the Department of Media Arts and responds to the needs of the Creative Sector for graduates who have a deeper understanding of computer science.
More into hardware?
Computer Systems Engineering
See also our BEng and MEng degrees in Computer Systems Engineering offered by the Department of Electronic Engineering.
How you learn
More like a greenhouse, not a factory
Universities are sometimes seen as factories that produce standardised graduates. We like to see us more like a greenhouse: we provide our students an environment in which they can grow, and discover who they really are and want to do when they graduate.
This is achieved throughout your degree by providing you with challenges that match the skills that you have already acquired and allow you to progress at your own pace, and also by giving you the space to come up with your own ideas. We treat you as an individual, not as a number. See more under "Exploring who you are".
Our teaching assumes that the motivation to study exists within you. We consider that our task as teachers is to introduce, explain, challenge and stimulate your creativity. At the end of your studies, you will be able to work independently, as well as able to work with others, in taking the challenges of developing software systems as ambitious as they may be.
How you learn is as important as what you learn. We believe that the best way of teaching you computer science is to make you practice what you learn by developing projects, some small and some slightly bigger, some on your own and some in groups.
We do not assume that, when you join us, you know how to program, so we offer two lab-based modules – one on games and the other on robotics – during which you can develop, at your own level, real applications using all your imagination and creativity. You learn a lot and you also have lots of fun.
The way we teach software engineering is also very much hands-on. You will practice Scrum-based Agile Software Development using state-of-the-art tools in a team project. You will learn to use the Eclipse and PyCharm IDEs, Subversion and Git version control systems, JUnit testing, Google Windowbuilder Pro GUI developer, and other modern industrial- strength tools. These skills are essential if you choose future employment in the software industry.
Some modules have a practical component that is best taught in a laboratory session. These include classes that have a heavy programming component, as well as those in robotics and computer games. Final-year students are given the opportunity to work in those sessions as teaching assistants.
Throughout the first year, part of the teaching takes place in small groups. Your personal advisor provides help with programming and mathematical materials, and is able to monitor your progress. It is a good opportunity for you to raise any problems that you might be having with the material.
For lecture-taught modules, assessment is usually by coursework and two or three-hour examination at the end of the year in which the module is studied; the relative percentage of each depends on the nature of the module. Some modules are evaluated only through coursework. Project work is generally assessed by the production of written reports and of a piece of software.
In order to develop as a professional Computer Scientist, you will attend sessions on how to give presentations and write reports in your first and second year and consider professionalism from a legal, ethical and social perspective in each year. You will be assessed on a number of occasions as part of a team to improve your ability to work within a team. This is embedded into the rest of the curriculum and hence you will see the impact of these skills and aspects of professionalism from that perspective.
Project and team work
In order to build up your basic programming skills, we have equipped labs so that you can work in teams to develop robotics and games projects; you will have fun and acquire key skills while developing something that will actually work. You will also be introduced to the software engineering life cycle – from requirements to design, implementation and testing – through a project where, after the first stage, teams have to work on what another team has produced; state-ofthe- art industrial-strength tools are used throughout the cycle.
SECOND-YEAR TEAM PROJECT
In the second year team project, small groups share software development tasks between their members to design and implement a large program using the Scrum-based Agile Development methodology. Both the technical and the managerial problems are often quite challenging, which will prepare you to face the challenges of working in a company.
The third-year project takes up a quarter of the final year for most students; you are assigned a supervisor and either pick a standard project or can specify something more original together with your supervisor. This is an opportunity to engage in a professional project or with a particular research topic that you find interesting.
In the final year of an MSci, you develop a project at postgraduate level, which takes up half of the year. This is an opportunity to develop a more ambitious or consequent piece of software using cutting-edge technologies, or to develop in more depth a piece of research in a topic that excites you or that you would like to pursue at PhD level. Software Engineering students develop applications for real clients as part of a company that they have to manage.
You will be given the opportunity to work, under the direction of a project manager from our department, in ongoing software development activities for external clients in a real company – Code Groovers.
The Undergraduate Research Opportunity (UROP) projects are individual research projects conducted under the supervision of academics. They allow undergraduate students to experience research first hand, and provide training in relevant research skills.