What you'll study
The course consists of 120 credits per year. Most modules are 20 credits, meaning you’ll study six modules each year. Some longer modules, such as a dissertation, are worth more (e.g. 40 credits). In these cases, you’ll study fewer modules - but the number of credits will always add up to 120.
First year modules
A common first year across all of our courses covers the fundamental aspects of the subject.
Due to the common first year, you can easily switch your degree course at any point until the start of Year 2, when more specialist material begins to be introduced.
Explore the basic hardware of the computer, system architecture and the operating system, as well as the functionalities required to handle and manage memory and processor times.
Quantitative Methods for Computing
Learn and understand some of the key mathematical concepts that underpin and provide the theoretical basis of modern computing.
Software Engineering and Human-Computer Interaction
Develop your understanding of software engineering, the discipline concerned with all aspects of complex software production.
Computer Science: The Challenge for Sustainable Computing
Broaden your horizons beyond just programming by considering the sustainability of computing and the wider impact that computer science has on society.
Introduction to Programming and Algorithmic Thinking
Develop a practical skill that requires both logic and creativity, from understanding language syntax to constructing bigger, more complex systems.
Object-Oriented Programming and Principles
Build on your knowledge of programming to reinforce fundamental concepts and to develop awareness of the issues involved in the implementation of larger-scale software.
Second year modules
Systems Analysis, Design and Process
A key skill in software development is working in a team. In this module, you’ll work together to analyse a problem and design, engineer and implement a quality solution.
Information Systems and Web Technologies
Explore the concepts, principles and guidelines that underpin the design and implementation of information systems, including network-based and enterprise systems.
You'll cover analysis, design, implementation and testing, along with the use of frameworks, components and patterns.
Networking and User Interface Design
An introduction to computer networks and the role technologies play in creating the user interface for enterprise business web applications.
Advanced Programming (C++)
Gain an in-depth knowledge of object-oriented programming. You’ll use C++ as a vehicle to explore how language features and your high-level design decisions are executed on the CPU.
Data management is fundamental in digital systems and software. Learn how to analyse data and build well-designed databases using traditional and contemporary techniques.
Agile Software Development
Using agile software development methods, you'll work in a team to develop a user-centred software solution, reacting to change whilst ensuring quality.
Year abroad modules
You will have the opportunity to apply to spend the third year studying overseas at one of our partner universities.
During your year abroad, you will follow a programme of study that will be agreed between yourself and us prior to your departure. You will take all assessments set by the host university while you are abroad, for which marks will be awarded and a final transcript released. The year abroad contributes 10% towards your final degree classification.
Placement year modules
Your placement is your opportunity to get some real-world work experience under your belt.
Just like in the real world, you’ll be responsible for finding and applying for opportunities, with the added benefit of help and support from university services such as the Careers and Employability service based in Student Central.
Final year modules
Honours Stage Project
Tackle a substantial piece of computer-related investigation or software design in an area of your interest. This includes practical development and evaluation of your designs and implementation.
Languages and their Compilers
Study various aspects of computer languages, their background theory, formal specifications and features.
Advanced Software Engineering
Discover the techniques for designing dependable software drawing on recent advances and current research. Explore mechanisms of failure in computer systems and software.
Communicating and Teaching Computing
Undertake a placement in a school or college to develop practical teaching and communication skills, as well as understanding of the education process.
Mobile Devices and Applications
Learn and develop an understanding of the application of mobile computing and its place in larger scale computing systems.
Starting and Managing a High-Tech Business
Explore the management, planning and development issues concerning information systems used in an organisation.
Distributed Systems Programming
Explore mechanisms for applying your existing C# knowledge to distributed systems or applications while considering key areas like scalability and security.
Computer Systems Infrastructure and Management
Explore the fundamentals of network and database system administration along with the techniques for building up the secure and reliable management of information.
Parallel and Concurrent Programming
Utilise multi-core processors and GPUs to design, optimise and program parallel and multi-threaded software. You’ll use performance analysis tools to explore this process.
All modules are subject to availability and this list may change at any time.