BSc/MSci in Software Engineering
This specialist degree meets the need for graduates with the key skills that employers look for in Software Engineering: a strong grounding in basic computer-science theory, problem modelling and analysis techniques, knowledge of and practical experience in modern software-development methodologies and techniques, extensive team work, excellent coding skills, good communication skills, and a strong professional ethos.
Throughout the degree, you will interact closely with software professionals and with companies or organisations. In the final year of the MSci, you will manage a company, delivering services to real clients.
Where are the jobs?
Software engineering is an extremely important profession because of the impact that large software systems have in the economy and society, in particular in safety-critical applications.
According to the latest report produced by e-skills uk, the primary roles sought by employers have remained fairly consistent in recent years with Design and Development jobs typically accounting for around 60% of all permanent positions and 70% of contract posts. The number of software professionals went up by 18% between 2001 and 2011, and is forecast to grow at 1.62% per annum through to 2020, nearly twice as fast as the UK average.
Is this degree for you?
If you have experienced and enjoyed programming, and envisage a career in software as a developer, an engineer or an entrepreneur, then this degree is definitely for you.
We will let students on the other single-honours degrees in Computer Science to transfer to Software Engineering at the end of Term One if they have shown excellent programming skills.
Main learning outcomes
Students on this course will learn to work as a team, with outside sponsors, delivering business value. More specifically, we will educate you to:
- Become a software engineer ready for work in industry, with excellent coding skills and a professional attitude to work.
- Understand the prime concern of software engineering: that software must deliver business value.
- Be able to manage a project to a customer's satisfaction.
- Master the process of software engineering, from initial client meeting through to costing and time estimation, and to delivery.
- Communicate effectively to non-technical personnel and clients.
You can opt for a Year in Industry degree, in which case you will be placed at a company at the end of your second year if you are on the BSc or at the end of the third year if you are on the MSci.
The BSc and MSci degrees are accredited by the British Computer Society (BCS) and by the European Quality Assurance Network for Informatics Education (EQANIE).
You start learning software engineering from Day One: solving a problem from design to implementation as a first-year team project. At this level, you will go through a Waterfall Process: requirements analysis, design, implementation, and system testing. In order to experience how software is developed in practice, after each stage each team will work on the artifacts produced by a different team. You will learn to use standard Java Tools such as Eclipse, Checkstyle, Junit, and TDD.
Weekly tutorials are run to support Software Development, Mathematical Structures and Machne Fundamentals, and to introduce you to Professional Issues.
- Software development (30 credits)
- Computing Lab (Robotics)
- Computing Lab (Games)
- Software Design
- Internet Services
- Mathematical Structures
- Machine Fundamentals
At this level, the emphasis is on Scrum-based Agile Development, supported by modern industrial-strength tools. You will again work in teams but on a project to solve a small problem from an outside sponsor, from design to delivery. In Term One, each team will have client meetings and produce use cases, class diagrams and user stories. In Term Two, each team will work with regular scrum sessions to deliver the software to the client. Several teams will work on the same project but just one will be paid at the end of the year.
- Software Engineering
- Small Enterprise Team project
- Algorithms and Complexity
- Operating Systems
- Introduction to Information Security
- Computer and Network Security
- One elective (see list)
In your third year, you do an individual project worth 30 credits (a quarter of the total), which involves making presentations and demos of your project, and produce intermediate reports.
You will take courses in Human-Computer Interaction and Malicious Software. You will also choose four additional courses
You can also choose from a wide range of options in advanced technologies as well as cutting-edge topics.
- Individual Project (30 credits)
- Human-Computer Interaction
- Malicious Software
- Two core modules chosen from the Software Engineering strand (see list)
- Two electives chosen from any strand (see list)
In the final year of the MSci, students run a company (team project), bidding for and solving industrial problems of real clients, and taking on responsibilities for Marketing, Infrastructure Management, Budgeting, and so on. This accounts for half of your year's workload.
- Team project (60 credits)
- Three core modules chosen from the Software Engineering strand (see list)
- One elective chosen from any strand (see list)
"The Software Engineering modules in the undergraduate programmes are well aligned both theoretically and practically."
BCS Accreditation Visit Panel 2014
Find your Computer Science course
"Software Engineering is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them." ACM
Software Engineering at Royal Holloway
What is Software Engineering?
Meet a software engineer
Meet some of our staff
Nuno Barreiro, MSc TU Lisbon, over 15 years of industrial experience in Linux systems, Web development and multimedia production.
Dave Cohen, PhD Oxford U, over 20 years of industrial experience as a programmer and a software architect.
Matthew Hague, PhD Oxford U, EPSRC Fellow working on software verification techniques such as model-checking.
Georgios Koutsoukos, PhD Leicester U, more than 15 years of experience in the IT industry, ISO/IEC 21500 Lead Project Manager, Prince2 Project Manager and ISO/IEC 20000 Lead Implementer.
Adrian Johnstone, PhD London U, develops tools for software language engineering such as compilers and parsers.
Carlos Matos, PhD Leicester U, over 10 years of industrial experience as a software engineer, including system re-engineering.