Skip to main content

Computer Science (Software Engineering) with a Year in Industry

Search Royal Holloway

Computer Science (Software Engineering) with a Year in Industry

BSc
  • UCAS code G462
  • Option 4 years full time
  • Year of entry 2021

The course

Our technological world has created a tremendous demand for professionals who can design, build and maintain computer courses, databases. This four-year, year in industry course with a specialism in software engineering will give you a strong foundation of knowledge, skills and practical experience to kickstart your career in software. Your extended work placement will give you skills and awareness that can only be acquired in a real work environment, and will help to set you apart when you apply for jobs. Our software engineering teaching has been hailed as a‘best practice’ example of computer science education by BCS, The Chartered Institute for IT.

Developed in consultation with industry, our progressive curriculum will give you a solid grounding in the fundamentals of computing and application development. You will learn from software professionals and leading academics to apply engineering principles to the design, development, implementation and maintenance of all kinds of software. We cover the whole process of software development, from initial client briefs through to costing, scheduling and efficient delivery. 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. You will develop team working, time management and communication skills, and a strong professional ethos. 

Your year in industry will start at the end of year 2. We are located in the famous M4 corridor, known as 'England's Silicon Valley', and we enjoy close links with many of its leading technology companies. If you are unable to go ahead with your placement you will have the option of transferring onto our equivalent three-year BSc course. In your final year you will also have the flexibility to choose between a range of optional courses.

We are a highly respected, research-focused department with a friendly approach and award-winning teaching. We offer a 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 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.

  • The BCS has distinguished our teaching of Software Engineering as 'Best Practice'.
  • You will be taught by staff with extensive industrial experience, three of whom are certified Scrum Masters.
  • You will learn to master the process of software engineering, from initial client meetings through to delivery.

Core Modules

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 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.

  • Software Development
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 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.

  • Small Enterprise Team Project
  • 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.

Year 3
  • 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.

Year 4
  • 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.

  • Human-computer Interaction
  • Malicious Software

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
  • Introduction to Artificial Intelligence
  • Mathematical Methods for Computer Science
  • 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 4
  • Computational Finance
  • Intelligent Agents and Multi-agent Systems
  • Machine Learning
  • Semantic Web
  • Data Visualisation and Exploratory Analysis
  • Advanced Data Communications
  • Concurrent and Parallel Programming
  • Interconnected Devices
  • 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.

  • Cyber Security
  • Digital Forensics
  • Smart Cards, RFIDs and Embedded Systems Security
  • IT Project Management
  • Software Language Engineering
  • Bioinformatics
  • Compilers and Code Generation
  • Computational Optimisation
  • Digital Audio and Applications
  • Functional Programming and Applications

We are an award-winning department for software engineering 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. We firmly believe that how we teach you is at least as important as what we teach, and 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 software engineering and programming teaching is very hands on, allowing you to learn at your own pace, whatever your previous level of experience. You will also attend laboratory classes on games and robotics in year 1, giving you the chance to develop real applications with imagination and creativity from the outset. During your year in industry, our careers tutor will visit you twice and keep in touch with your host to monitor your progression.

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 your full unit project), essays, oral presentations and software submissions. Your year in industry forms an integral part of the degree course and you will be asked to complete assessed work that will count towards your final degree.

11th in the UK for quality of research publications

Source: THE REF institutions ranked by subject, 2014

90% overall student satisfaction

Source: NSS, 2019

97% of our Computer Science graduates are in graduate level employment within six months of graduating.

Source: DLHE, 2018

Explore Royal Holloway

All undergraduates starting with us in 2020 onwards have the opportunity to take a Placement Year, which will add even more value to your studies.

There are lots of exciting ways to get involved at Royal Holloway. Discover new interests and enjoy existing ones

Heading to university is exciting. Finding the right place to live will get you off to a good start

Whether you need support with your health or practical advice on budgeting or finding part-time work, we can help

Discover more about our 21 departments and schools

Find out why Royal Holloway is in the top 25% of UK universities for research rated ‘world-leading’ or ‘internationally excellent’

They say the two most important days of your life are the day you were born, and the day you find out why

Discover world-class research at Royal Holloway

Discover more about who we are today, and our vision for the future

Royal Holloway began as two pioneering colleges for the education of women in the 19th century, and their spirit lives on today

We’ve played a role in thousands of careers, some of them particularly remarkable

Find about our decision-making processes and the people who lead and manage Royal Holloway today