Year 1
You will take five computer science modules, which cover programming, the characteristics of computers and computing systems, and the mathematical foundations of the subject. You will also be introduced to the concept and philosophy of computational thinking and explore cutting-edge technological applications of recent research.
Once you complete the first year you will have had a thorough introduction to the fundamentals of computer science and to the principles, practices and methodologies that make computer science unique as a scientific subject. You will also have had a glimpse at aspects of computer science research that have enabled major technological advances in society.
Compulsory modules:
Year 2
You will study six modules covering a core set of topics. One module Software Engineering involves a team software development project and enables you to usually work with external organisations and gain practical software development experience.
Other compulsory topics include, for example, aspects of artificial intelligence including bias, machine learning, data science, cybersecurity, computer networks, parallel and distributed computing, concurrency, data structures, algorithms and complexity, image processing, different programming paradigms, systems programming, security, human-computer interaction and computer graphics.
The topics taken in the second year will prepare you with an excellent grounding in a wide range of fundamental subjects within computer science, ready for subsequent specialisation in your final third year. By the end of the second year, you should be in a position to make informed judgments as to which particular aspects of the subject you might wish to focus on.
Compulsory modules:
-
Networks and Systems
-
Programming Paradigms
-
Software Engineering
-
Artificial Intelligence
-
Data Science
-
Theory of Computation.
Year 3
A key element of the third year is the individual project (which you spend one-third of your time on). This is undertaken under the direct supervision of a member of staff and gives you the opportunity to tackle a specific computing task in much greater depth than is possible for other modules. At the end of the project, you will write a technical paper describing your findings. You are given a considerable amount of choice as to the subject of your projects; indeed, you can suggest specific projects themselves. In addition, you will get to choose the other modules that you undertake in your final year.
A range of modules is offered (many reflecting current research interests of staff) for example, previous modules have included: scientific computing, virtual reality, codes and cryptography, computer vision, deep learning, recommender systems, game development, computational modelling, computational complexity, game theory, bioinformatics, and advanced algorithms.
There is also the opportunity to follow a specific module involving the teaching of computer science in schools, giving an early taste of teaching computer science to those interested in pursuing it as a career or on other career pathways where a public understanding of science is required.