Course options
Key information
Duration: 4 years full time
UCAS code: G40F
Institution code: R72
Campus: Egham
The course
BSc Computer Science (with Integrated Foundation Year)
This course is available to Home (UK) students and students from the EU who meet the English Language requirements.
Our Integrated Foundation Year will take you through a carefully-designed course to help you to progress confidently onto your undergraduate degree.
Engineering, Physical, Computational and Mathematical sciences underpin modern technological society and can help us provide answers to fundamental questions. Graduates with these degrees are highly sought after by employers. The Computer Science Foundation Year provides progressive structures in which you are able to gain knowledge and understanding of approaches to scientific study and your chosen degree subject.
All Foundation Year students take ‘Global Perspectives’, then four subject-based courses provide familiarity with Mathematics and computation – the language of modern science and technology, and key for success in science, technology and engineering.
Once you have completed your Foundation year, you will normally progress onto the full degree course, BSc Computer Science. There may also be flexibility to move onto a degree in another department (see end of section, below).
Want to work at the cutting-edge of computing technology and help in shaping the future of our global society? Computers, intelligent devices and the internet are central to so many aspects of 21st century life, from business and industry to governance and our personal lives. Their potential for transforming economies, driving efficiencies and enhancing the well-being of societies is almost limitless. Our progressive curriculum will give you the knowledge and technical skills that employers need, and introduce you to pioneering ideas and technologies to help you to realise your ambitions.
We cover all the essentials of application development, from programming to software engineering, databases to web development, computer graphics to robotics, and information security. You will also explore the fundamentals of computing – what computers do, and how efficiently they do it – and learn about a host of advanced technologies, from computer games, digital sound and music, to concurrent and parallel programming, machine learning, bioinformatics, the internet of things, computational finance 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.
We are a highly respected, research-focused department with a friendly approach and award-winning teaching. We offer a short-term summer work placement course and a dedicated personal adviser to guide you through your studies. You will also be welcome to join our thriving Computing Society. We are proud to be among the few departments in the UK to hold the Athena SWAN bronze award for increasing female participation in computer science.
The course’s modular structure gives you the flexibility to tailor your degree to your interests. We also offer you the opportunity to follow a specialist pathway that matches your career ambitions. At the end of year 1 you will have the option of transferring onto one of these pathways (Artificial Intelligence, Information Security or Distributed & Networked Computing), as well as onto a year-in-industry course, or onto our longer and more advanced integrated masters course. 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.
On successful completion of your Foundation Year, you may be able to choose an alternative pathway which could include a degree from one of the other departments offering a Foundation Year within the School of Engineering, Physical and Mathematical Sciences. If you'd like to do this, you may take your Foundation Year Individual Project in one of these other departments. The degree course you choose to take after progression is likely to depend on the individual project you select during the foundation year. Please note however that you must take 'Foundation Skills (Mathematics)' and your individual project in the Department of Mathematics if you wish to join a full degree course in Mathematics.
From time to time, we make changes to our courses to improve the student and learning experience. If we make a significant change to your chosen course, we’ll let you know as soon as possible.
Course structure
Core Modules
Foundation Year
Term 1:
-
Global Perspectives and Academic Practice provides a survey of world history that identifies key events and ideas from the Enlightenment to the present day through an examination of a range of issues related to the broad theme of globalisation. The unit takes a broadly chronological approach to the core issues but considers the overarching theme of globalisation from innovative and interesting angles such as the experience and participation of women, the significance of black, ethnic minority or third world perspectives, contributions and experiences, and the role of science as a driver of global interdependence.
The seminars and workshops take the core academic themes covered in the lectures as their starting point but centre around the development of academic skills that will enable transition, ‘upskilling’, confidence building and effective participation in the academic practices associated with humanities disciplines. This is complimented by weekly tutorials provided by your dedicated CeDAS personal tutor, a suite of skills workshops delivered by the Library, and fortnightly personal tutorials within your chosen academic department.
-
Mathematics. The foundation to all sciences. By engaging in mathematical reasoning you will develop your scientific thinking as well as problem solving skills. Moreover, you will get to embark on a journey through the exciting world of maths and its application. This course will provide you with the skills to successfully continue onto a STEM degree. The course aims to aid you in developing familiarity and skills in differentiation and integration. The main mathematical topics and concepts in the course are algebra (simplification, rearrangement), sequences and series, number bases, logic, functions, graphing of functions, exponential and logarithm, trigonometry, vectors/matrices, complex numbers differentiation, integration, first order ordinary differential equations, probability, and statistics (mean, variance, normal, binomial distributions). Whether you are seeking to improve your existing maths skills, or have not taken maths at ‘A’ level, you’ll find these units to be an invaluable platform for problem solving in Computer Science, Physics, Maths and Electronic Engineering.
-
Knowing how to program is a highly sought-after skill, and is becoming increasingly important. Also, it is fun. This course equips you with the basic and foundational skills necessary to be successful in programming. We mainly use Python, but the skills learnt are also applicable to other languages. The course will contain foundational programming topics, including: how computers work, introduction to algorithms, basic data structures, control flow, programming libraries, data manipulation, input/output, file manipulation, dynamic structures and objects. Upon completion of the until you’ll will be able to understand variables, types and simple data structures (lists, strings, dictionaries and arrays), use functions to simply programs and promote code testing and reuse. Throughout the course there will be lectures, demonstrations, and hands-on problem-solving.
Term 2:
-
Global Perspectives and Academic Practice provides a survey of world history that identifies key events and ideas from the Enlightenment to the present day through an examination of a range of issues related to the broad theme of globalisation. The unit takes a broadly chronological approach to the core issues but considers the overarching theme of globalisation from innovative and interesting angles such as the experience and participation of women, the significance of black, ethnic minority or third world perspectives, contributions and experiences, and the role of science as a driver of global interdependence.
The seminars and workshops take the core academic themes covered in the lectures as their starting point but centre around the development of academic skills that will enable transition, ‘upskilling’, confidence building and effective participation in the academic practices associated with humanities disciplines. This is complimented by weekly tutorials provided by your dedicated CeDAS personal tutor, a suite of skills workshops delivered by the Library, and fortnightly personal tutorials within your chosen academic department.
-
Mathematics. The foundation to all sciences. By engaging in mathematical reasoning you will develop your scientific thinking as well as problem solving skills. Moreover, you will get to embark on a journey through the exciting world of maths and its application. This course will provide you with the skills to successfully continue onto a STEM degree. The course aims to aid you in developing familiarity and skills in differentiation and integration. The main mathematical topics and concepts in the course are algebra (simplification, rearrangement), sequences and series, number bases, logic, functions, graphing of functions, exponential and logarithm, trigonometry, vectors/matrices, complex numbers differentiation, integration, first order ordinary differential equations, probability, and statistics (mean, variance, normal, binomial distributions). Whether you are seeking to improve your existing maths skills, or have not taken maths at ‘A’ level, you’ll find these units to be an invaluable platform for problem solving in Computer Science, Physics, Maths and Electronic Engineering.
-
What better way to get a glimpse of the wonders of the universe than a course covering key concepts that underpin all Physics and Engineering disciplines? In this course you will learn about topics ranging from matter and energy to magnetic fields to random processes. You will also develop your analytical and problem solving skills through hand-on demonstrations and projects. The course will contain the following topics: Matter and Energy; Units and Dimensions; Motion; Newton’s Laws; Work, Energy and Linear Momentum; Oscillations and Waves; Electric Potential and Capacitance; Current, Resistance & Power; Simple Electrical Circuits, Magnetic Fields, Inductance and Random Processes.
Term 3:
-
The aim of this course is to develop basic experimental, programming, mathematical or practical techniques required for scientific degrees. The course comprises of five twice weekly practical exercises that are to be completed in approximately three hours. Whilst undertaking the unit you will keep a laboratory notebook, record experimental work, set up an experiments, simulation or software tasks from a script, and carry out and record measurements and/or observations, analyse data and plot graphs using a computer package, and present results and conclusions from your work.
-
The aim of the individual project is to enable you to engage in theoretical and practical work on an agreed specific area relevant to your chosen discipline.
Topics will be proposed by supervisors from which you can state three (rank ordered) preferences or you may propose your own topic subject to agreement. Projects will be completed on the basis of a specification agreed with your supervisor and progress will be monitored against the specification in terms of implementation and testing as appropriate. The project will culminate with a joint Poster Presentation with all students on the Foundation Year.
Year 1
-
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 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 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.
-
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.
-
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.
Year 2
-
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 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 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 environments (IDEs). You will see why project cost and effort is hard to estimate, and consider why project quality is hard to prescribe.
Year 3
-
This module provides the opportunity to demonstrate independence and originality, to plan and organise a large project over a long period, and to put into practice the techniques taught throughout the degree course.
Optional Modules
There are a number of optional course modules available during your degree studies. The following is a selection of optional course modules that are likely to be available. Please note that although the College will keep changes to a minimum, new modules may be offered or existing modules may be withdrawn, for example, in response to a change in staff. Applicants will be informed if any significant changes need to be made.
Year 1
-
All modules are core
Year 2
-
-
-
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.
-
Year 3
-
-
-
-
-
-
-
-
-
In this module you will develop an understanding of the fundamentals behind cryptography and how it is deployed in real systems. You will look at a range of security services that can be provided by cryptography and the mechanisms behind them, such as symmetric and public-key encryption, hash functions, MACs, digital signatures and authentication protocols. You will consider the architecture of security systems using cryptography, including key management, implementation issues, cryptographic standards and crypto politics, and examine real-world applications such as 3G, EMV, and SSL/TLS.
-
The module covers key areas of cyber security with the critical national (information) infrastructure forming its background. Fault and attack models for information systems and cyber-physical systems are covered in the form of multiple techniques including variants of attack trees allowing probabilistic attack and defence refinements. The module covers models of large-scale networks and their robustness properties to both random failures and particularly to deliberate attacks and discusses how key elements of the CNI such as the Internet but also other infrastructure sectors such as power and transport sectors can be captured by such models. The security of cyber-physical systems and particularly industrial control systems is another major component of the module, including case studies of attacks by state actors and analyses of control system protocols as well as properties peculiar to CPS.
-
-
-
-
-
-
-
-
-
-
-
Teaching & assessment
In your Foundation Year, teaching methods include a mixture of lectures, practical classes and workshops, laboratory classes, individual tutorials, and supervisory sessions. Outside of the classroom you’ll undertake guided and independent practice. You will be assigned a Personal Tutor in the Department of Computer Science and will have regular scheduled sessions. In the Foundation Year, you’ll also be assigned a Personal Tutor in the Centre for the Development of Academic Skills (CeDAS). Assessments are varied; practical exercises, weekly problem sheets, set exercises, written examinations, laboratory reports, scientific poster preparation and presentation. In addition the Foundation Year offers a full range of skills-based training and also the opportunity to take a micro-placement to enhance your employability.
Once you progress onto your full degree course, we know the importance of giving you the time and space to experiment and put theory into practice. We encourage you to use your creativity, both in project teams and independently, and to have fun while you learn. We use a variety of teaching methods, including lectures, small-group tutorials, supervised computer lab classes and problem-solving sessions. You will also be expected to complete guided independent study and group work. Our programming and software engineering teaching is very hands on, allowing you to learn at your own pace, whatever your previous level of experience. All students attend laboratory classes on games and robotics, giving you the chance to develop real applications with imagination and creativity.
We are proud of our award-winning teaching. Professor Dave Cohen won a College Excellence Teaching Prize for the re-design of our second-year software engineering courses, and he was shortlisted for a Times Higher Education Award for Most Innovative Teacher of the Year. The British Computer Society (BCS) has distinguished our software engineering teaching as an exemplar of 'best practice' in computer science education.
Assessment is through a mixture of examinations and coursework. Most course units have a two or three-hour written examination taken at the end of the year in which they are taught, but around half of your final award will come from assessed coursework, which could include project reports (including the full unit project in year 3), essays, oral presentations and software submissions.
Entry requirements
A Levels: CCC
Required subjects:
- Mathematics, Computer Science or Physics
- At least five GCSEs at grade A*-C or 9-4 including English and grade 5 in Mathematics.
T-levels
We accept T-levels for admission to our undergraduate courses, with the following grades regarded as equivalent to our standard A-level requirements:
- AAA* – Distinction (A* on the core and distinction in the occupational specialism)
- AAA – Distinction
- BBB – Merit
- CCC – Pass (C or above on the core)
- DDD – Pass (D or E on the core)
Where a course specifies subject-specific requirements at A-level, T-level applicants are likely to be asked to offer this A-level alongside their T-level studies.
Other UK and Ireland Qualifications
EU requirements
English language requirements
All teaching at Royal Holloway is in English. You will therefore need to have good enough written and spoken English to cope with your studies right from the start.
The scores we require
- IELTS: 6.5 overall. No subscore lower than 5.5.
- Pearson Test of English: 61 overall. Writing 54. No subscore lower than 51.
- Trinity College London Integrated Skills in English (ISE): ISE III.
Your future career
Computer scientists are required in a vast array of fields, including the arts, the media, finance, aerospace health and, of course, the IT sector, using the power of computing to solve real-world problems and build systems that can improve people’s lives. Our graduates are highly employable, with a wide range of practical and transferable skills. By the time you leave us you will know how to develop large and complex systems, solve technical problems and analyse information. Coursework will have honed your teamwork, communications, time management and self-motivation skills. You will also have the flexibility to adapt to changes in technology, to innovate, and to critically evaluate the implications of exploiting new technologies.
We work closely with partners in industry who advise us on our curriculum, to make sure it keeps abreast of 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 successfully pursued careers in everything from network systems design and web development, to business management and finance. They now work in organisations such as Amazon, American Express, Apple, Bupa, Capita, CGI-Logica, Goldman Sachs, Microsoft, Symantec, among many others. Find out more about what some of our graduates are doing here.
We run jobs fairs and a short-term work placement scheme, and your personal adviser and the campus Careers team will be on hand to offer advice on career opportunities. We maintain strong links with our alumni, who can often provide advice, contacts and networking opportunities.
Fees, funding & scholarships
Home (UK) students tuition fee per year*: £9,250
Eligible EU students tuition fee per year**: £28,900
Foundation year essential costs***: There are no single associated costs greater than £50 per item on this course.
How do I pay for it? Find out more about funding options, including loans, scholarships and bursaries. UK students who have already taken out a tuition fee loan for undergraduate study should check their eligibility for additional funding directly with the relevant awards body.
*The tuition fee for UK undergraduates is controlled by Government regulations. The fee for the academic year 2024/25 is £9,250 and is provided here as a guide. The fee for UK undergraduates starting in 2025/26 has not yet been set, but will be advertised here once confirmed.
**This figure is the fee for EU students starting a degree in the academic year 2025/26.
Royal Holloway reserves the right to increase tuition fees annually for overseas fee-paying students. The increase for continuing students who start their degree in 2025/26 will be 5%. For further information see fees and funding and the terms and conditions.
*** These estimated costs relate to studying this particular degree at Royal Holloway during the 2025/26 academic year and are included as a guide. Costs, such as accommodation, food, books and other learning materials and printing, have not been included.