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
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.
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.
2D Computer Graphics and Simulation
Hone your vector and matrix maths skills and develop a foundation with which to progress into 3D graphics, for which this is a prerequisite.
Gain an understanding of the basic theoretical issues of artificial intelligence and the making of intelligent agents both for games and more generally.
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.
Electronics and Interfacing
The module is very practically based and will involve building circuits and programming micro controllers to construct devices to solve interfacing problems.
E-Commerce and E-Business
Explore the role of e-commerce and e-business for commercial applications, how they open up new markets and opportunities for businesses, along with the information systems which support them.
3D Computer Graphics
Develop a solid understanding with practical experience of the concepts, theories, principles and techniques underpinning 3D graphics programming.
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.
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.
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.
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.
Data Mining and Decision Systems
This module provides an introduction and overview of data analytics, data mining and decision systems.
Starting and Managing a High-Tech Business
Explore the management, planning and development issues concerning information systems used in an organisation.
Languages and their Compilers
Study various aspects of computer languages, their background theory, formal specifications and features.
Embedded Systems Development
Explore the fundamental mechanisms of program execution on a processor and a down-to-assembler level understanding of embedded solutions.
Learn about the underlying problems encountered in creating and viewing a virtual environment, and cover the issues involved in humans interacting with these environments.
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.
Distributed Systems Programming
Explore mechanisms for applying your existing C# knowledge to distributed systems or applications while considering key areas like scalability and security.
Study the key concepts and techniques to: enable modelling a system, understand its limitations and develop appropriate AI architectures to solve computational problems.
Study visual perception, scientific visualization and information visualization. You’ll then create visual displays that communicate the information held in big datasets.
An introduction to computer vision. You’ll systematically explore fundamental concepts and important techniques through practical work.
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.