School of Computer Science

BSc Computer Science with Study Abroad (I10A)

Our new curriculum has been designed to allow us to provide an in depth computer science education, but also give you the chance to really delve deeper into subjects of interest in your final year. Our first and second year 20 credit modules** are all compulsory to allow you to gain the necessary knowledge, whilst our final year 20 credit modules are optional (except the 40 credit Final Year Project).

** The exception to this is for students without Grade A in A Level Computing, who will be required to take a 20 credit Concepts of Computer Science module in Year 1, in place of the 20 credits of Widening Horizons modules available.

Year 1 (120 credits) - compulsory

Module Title Credits Compulsory
Artificial Intelligence 20 Yes
Data Structures and Algorithms 20 Yes
Logic and Computation 20 Yes
Mathematical Foundations of Computer Science 20 Yes
Programming in Java 20 Yes
Widening Horizons Module 20 [1]
Concepts of Computer Science 20 [2]

[1]: Compulsory for those with Grade A in A Level Computing
[2]: Compulsory for those without Grade A in A Level Computing (in place of 20 credits of Widening Horizons modules).

Year 2 (120 credits) - compulsory

All modules in Year 2 are compulsory.

Module Title Credits Compulsory
Advanced Functional Programming 20 Yes
Mathematical Modelling and Decision Making 20 Yes
Security and Networks 20 Yes
Software Engineering 20 Yes
Systems Programming in C/C++ 20 Yes
Team Project 20 Yes

Year 3

Your third year will be spent studying abroad, before returning for your final year.

Year 4 (120 credits) - optional (plus compulsory project)

With the exception of the compulsory 40 credit Computer Science project (*), you are able to choose from a range of optional 20 credit modules in your final year, depending on your area of interest.

Module Title Credits Optional
Advanced Networking 20 Yes
Complex Adaptive Systems 20 Yes
Computer Graphics 20 Yes
Computer Science Project 40 No *
Computer Vision and Imaging 20 Yes
Computer-Aided Verification 20 Yes
Human-Computer Interaction 20 Yes
Individual Study 20 Yes
Intelligent Robotics 20 Yes
Language and Cognition 20 Yes
Machine Learning and Intelligent Data Analysis 20 Yes
Programming Language Principles, Design, and Implementation 20 Yes
Security of Real-World Systems 20 Yes
Teaching Computing in Schools 20 Yes
Theoretical Foundations for Security 20 Yes