At Cambridge we offer a three year undergraduate course in Computer Science that leads to a BA honours degree. It may seem unusual not to receive a Bachelor of Science degree (BSc), but Cambridge awards Bachelor of Arts degrees for all of its undergraduate courses. Employers and other universities are well aware of this, so this will not cause any issues when applying for jobs or further study.
There is also the option to study for a fourth year leading to a Master of Engineering degree. Currently, access to the fourth year requires a sufficiently high grade in your third year. You can decide whether or not you want to study the Masters course once you are in your third year of the Bachelor’s degree.
First year (Part IA)
In your first year, which is often referred to as Part IA (or 1A), you study the fundamentals of Computer Science. Since everyone has a slightly different background, this year is also about bringing everyone up to the same level of knowledge across a really broad range of topics.
Example of the topics that might be covered in this year include:
- Foundations of Computer Science
- Object-oriented programming
- Algorithms
- Discrete Mathematics
- Continuous Mathematics
- Digital Electronics
- Machine Learning
- Software and Security Engineering
- Interaction Design
As well as the lectures, courses use practical classes to cement knowledge. These involve a series of exercises across a range of lecture courses, including hardware practicals and programming practicals in OCaml, Java and Python.
Often there are sessions for the programming practicals with demonstrators who can help you if you get stuck. Since we expect everyone to have different levels of experience, most practicals contain a core set of tasks, and a few optional exercises that can be used to challenge yourself.
For a full list of the courses studied and more detail, see the Part IA course pages.
Second year (Part IB)
The second year builds upon the fundamentals introduced in the first year and you continue to study a broad range of topics, such as:
- Data Science
- Economics, Law and Ethics
- Further graphics
- Introduction to Computer Architecture
- Computer Networking
- Logic and Proof
- Computation theory
Similarly to your first year, regular practical classes cement knowledge in the second year, practicals cover hardware and programming in Java, C/C++ and Prolog.
You also undertake a group project over the course of Lent term. This is a great opportunity to put your programming knowledge into practice. The year group is split into small groups based on your preferences of a large number of project briefs, most of which are provided by industry partners, who act as clients throughout the project. Then, working with your client, your group works on delivering the required project.
In the past, groups have created:
- Component quest - Due to chip shortages, rising costs and increasing e-waste, the demand for secondhand components has increased. However, it can be difficult to identify and value them. This group created an app that uses AI to identify and value electronic components using a phone camera, providing current market value and a link to a marketplace where users can buy/sell them.
- Physical computing for beginners - An easy to use, drag and drop interface for programming the Raspberry Pi Pico microcontroller. This lowers the barrier to entry by allowing beginners to learn about the computational concepts involved in physical computing, without needing to learn how to use technical APIs. With this interface, users can simply drag and drop components, such as buttons and LEDs, and click on them to configure how they should behave.
- Testing for humans - Many companies rely on programming questions to select potential employees, however Large Language Models (LLMs) can be used to generate answers for such questions. This group designed a tool for question authors to benchmark the performance of LLMs, so that they can fine-tune questions in a way that will guarantee human responses.
For a full list of the courses studied and more detail, see the Part IB course pages.
Third year (Part II)
The third year is very different. This is the first year where optional courses are available. In the first two years, the aim of the degree is to give you a good grounding in many areas of Computer Science, so you must attend lectures and complete supervisions for all courses. In your third year, you can choose courses you want to take and how many. Everyone sits the same exams at the end of the year, so studying more courses gives you more choice when selecting which exam questions to answer.
Secondly, it’s assessed quite differently: you sit two exams at the end of the year which comprise 50% of your final grade, your individual project makes up another 25%, and the last 25% is equally split between the marks you receive in your modules (explained below).
Modules are a bit different from regular lecture courses. Usually, you are taught in much smaller groups, and the style of teaching and assessment varies by module, with some modules setting exams, while others ask for coursework to be completed. Modules allow you to explore a certain topic in a lot of depth and are often linked to current research taking place in the Department.
Throughout the year, you also work on an individual project, which is a substantial piece of work that usually involves programming. As part of creating your project, you must also write a dissertation, which describes and evaluates what you have done. It is up to you what your project is and you will have a supervisor assigned to you who will guide you through this process. Past project titles include:
- Machine Learning for Modelling Formula 1 Safety Car Periods
- Analysis of Path Planning Algorithm Heuristics for Multi-Robot Systems
- Towards Efficient Deep-Sea Organism Detection
- Geolocation in a Rainforest
- Identifying Pianists through Audio of a Performance
- Creation of a Contactless Payment Shield
- Building a Solver for Math Word Problems in English
For a full list of courses/modules and more detail, see the Part II course pages.
Fourth year (Part III) (Optional)
You can choose to progress to the fourth year if you achieve a sufficiently high standard in your third year. The fourth year is designed to support students who are considering a career in academic or industrial research.
During the year, students complete a selection of modules of their choice. Similarly to third year, modules are taught in fairly small groups and the style of teaching and assessment varies by module. The difference is that Part III modules often cover more advanced topics or may ask students to complete more demanding coursework.
You also undertake a research project during your fourth year. This project is similar to the third year individual project, however it is much more research-oriented. As in your third year, you have a project supervisor who is there to guide you through the process and you get to choose the topic of your project.
For a full list of courses/modules and more detail, see the Part III course pages.