The first year provides a thorough coverage of the fundamentals of computing: mathematics for computer science, algorithms, data structures and grounding in object-oriented programming using Java, which is widely used in industry. You will also have an introduction to the basic themes of large software systems, and work on a team project.
- Artificial Intelligence (20 credits)
- Data Structures and Algorithms (20 credits)
- Logic and Computation (20 credits)
- Mathematical Foundations of Computer Science (20 credits)
- Programming in Java (20 credits)
- Concepts of Computer Science (20 credits) *1
- Widening Horizons Module (20 credits) *2
*1 - compulsory for those without Grade A in A level Computing
*2 - compulsory for those with Grade A in A level Computing
In the second year you study databases, graphics, and human–computer interfaces. Our approach is to teach these in conjunction with further work on object-orientated programming. This allows you to gain a much deeper understanding of the techniques involved by implementing them yourself. You also take comprehensive courses in software engineering, computer architecture, logic, and the mathematical theory of computation. You learn how to use complex software tools and to work effectively in a team.
You must perform well academically in the first two years to progress to the MEng stream of the degree.
- Advanced Functional Programming (20 credits)
- Mathematical Modelling and Decision Making (20 credits)
- Security and Networks (20 credits)
- Software Engineering (20 credits)
- Systems Programming in C/C++ (20 credits)
- Team Project
In the third year of the MEng you study the principles of advanced databases, work on a larger team project and select four options from a choice of around 20. These include: Computer Networks; Imaging and Visualisation; Operating Systems; Virtual Reality; and Intelligent Robotics.
Choose 120 credits of modules
- Advanced Networking (20 credits)
- Complex Adaptive Systems (20 credits)
- Computer Graphics (20 credits)
- Computer Vision and Imaging (20 credits)
- Computer-Aided Verification (20 credits)
- Human-Computer Interaction (20 credits)
- Individual Study (20 credits)
- Intelligent Robotics (20 credits)
- Language and Cognition (20 credits)
- Machine Learning and Intelligent Data Analysis (20 credits)
- Programming Language Principles, Design and Implementation (20 credits)
- Security of Real-World Systems (20 credits)
- Teaching Computing in Schools
- Theoretical Foundations for Security
Year 4 in Industry
We encourage our students to gain as much real world experience as they can during their studies. The University has strong links with a number of employers offering internships or formal placements that can range from two months over the summer vacation to a full sandwich year as part of your degree course.
Computer Science Industrial Placement (120 credits)
In order to proceed to Year 4 (the industrial year), students must:
- Not have any modules to repeat during the year. If they have resit examinations, they must arrange for time off to take these.
- Have found a company willing to provide a placement which meets the School's requirements, which include providing an Industrial Tutor. The placement must involve a component of skills training (approximately 40%) and technical project work (approximately 60%). The skills training can include formal taught and/or self study courses and apprenticeship style learning "on the job". The training and project work must be of a technical nature relevant to the degree programme. The project work will most typically involve programming but other types of project work are acceptable.
- Students who do not meet the academic requirements or cannot find a suitable industrial placement will transfer to the degree programme without the Year in Industry component.
- A student who fails the Industrial Studies module will be permitted to transfer to the degree programme without the Year in Industry component.
In the fifth year of the MEng you study the design of safety-critical systems, such as fly-by-wire systems for aircraft control, and learn how to manage the quality of large software projects. You also spend half your time on your degree project, which is typically based on a large piece of software you have produced.
- Computer Science Masters project (60 credits)
Choose 60 credits of optional modules, examples listed below:
- Advanced Networking (Extended) (20 credits)
- Advanced Robotics (20 credits)
- Complex Adaptive Systems (Extended) (20 credits)
- Computer-Aided Verification (Extended) (20 credits)
- Computer Graphics (Extended) (20 credits)
- Computer Vision and Imaging (Extended) (20 credits)
- Cryptography (10 credits)*
- Evaluation Methods and Statistics (10 credits)*
- Human-Computer Interaction (Extended) (20 credits)
- Individual Study (Extended) (20 credits)
- Intelligent Robotics (Extended) (20 credits)
- Language and Cognition (Extended) (20 credits)
- Machine Learning and Intelligent Data Analysis (Extended) (20 credits)
- Programming Language Principles, Design and Implementation (Extended) (20 credits)
- Research Topics in Human-Computer Interaction (10 credits)*
- Robot Vision (20 credits)
- Secure Programming (10 credits)*
- Security of Real-World Systems (Extended) (20 credits)
- Security Research Seminar (10 credits)*
- Teaching Computer Science in Schools (Extended) (20 credits)
- Theoretical Foundations for Security (Extended) (20 credits)
* Current specialist MSc modules included for an indication of content. Actual modules may change.
Please note: The modules listed on the website for this programme are regularly reviewed to ensure they are up-to-date and informed by the latest research and teaching methods. Unless indicated otherwise, the modules listed for this programme are for students starting in 2019. On rare occasions, we may need to make unexpected changes to core modules; in this event we will contact offer holders as soon as possible to inform or consult them as appropriate.