
Subject Advice Guide
Computer Science
Overview
The Computer Science degree at Oxford, alongside the joint degrees, is described officially as being about "understanding computer systems and networks at a deep level". Here the "deep level" is realised as exploring, in a precise mathematical way, what these systems are, how they are constructed and what limits they have.
Compared to other universities, you'll find the courses to be skewed towards the theoretical foundations and the general principles underlying the subject. Due to the dynamic nature of the field, this is viewed positively by most students and employers as many technologies popular today will likely be obsolete or very different in the near future whilst the underlying principles will still hold.
That said, the courses are grounded in the reality that computer systems are built to be used. You will have a chance to build practical programs both individually in assessed practicals and in group projects that give you an understanding of the practical skills required to build complex software.
Choosing Your Course
The undergraduate courses available in the Computer Science department are Computer Science, Mathematics and Computer Science and Computer Science and Philosophy, with Computer Science and Mathematics and Computer Science having roughly equal numbers of places and the Philosophy joint course being relatively more niche.
In each of these cases, you'll be applying for a 4-year Masters course but can choose to drop out after 3 years with Bachelors if you choose to do so (typically done by students with job offers).
The joint courses are especially excellent choices for those interested in the intersection of Computer Science with either Maths or Philosophy and offer an exceptionally broad range of course choices in later years where you can pick almost any course across Computer Science and your joint subject.
For applications, none of the courses require any past programming knowledge but it is useful to have for the course itself. The main thing required is strong mathematical skills with Maths A-Level being a requirement and Further Maths too if your school offers it.
Career Prospects
The world today still faces a shortage of software specialists and companies are paying increasing large salaries to catch the top talent required to build the complex systems that we now use on a daily basis. A degree from Oxford is an excellent signal for landing job interviews and graduates are well known to have some of the highest average earnings of any degree in the UK, with the majority working as Software Engineers or closely related jobs.
The destinations of Oxford graduates vary widely including large well-known firms like Google, Facebook and Amazon, smaller but equally competitive firms and many also go on to further research in academia.
There is also a large entrepreneurial community at Oxford and several successful startups have sprung up in recent years, including some founded by past ISoc members.
Course Structure
The following information was accurate as of October 2020, for the most up to date information make sure to check the course website at https://www.ox.ac.uk/admissions/undergraduate/courses-listing/computer-science.
Year 1
Known as 'Prelims', your first year provides a strong theoretical foundation for the remaining years with courses in core topics such as Algorithms, Linear Algebra and Probability that will be assumed knowledge in further courses in future years. The courses you take this year will all be compulsory which is usually seen as a relief in that you don't have to decide any speciality until your second year.
Year 2
Starting from this year, you'll have a few compulsory courses such as Algorithms and Models of Computation that build on Prelims (as well as compulsory courses in your joint degree if you are doing one) and are examined at the end of this year.
There are also a range of optional courses to choose from however these will be examined at the end of your third year so you'll do the majority of these in your third year closer to exams.
You'll also work on a mandatory but un-graded group project this year where you'll have the opportunity to work on a real-world problem in collaboration with a client that is partnered with the university.
Year 3
The third-year is largely similar to the second, with the same selection of optional courses but no compulsory courses so you have more freedom to select what you spend your time on. Additionally, for pure Computer Science students, you will have a project over the year that contributes to one-third of your final grade.
Year 4
The final year has more advanced courses that build on the optional courses you choose in Years 2 and 3 that are close to or on the cutting edge of the field with the assessments being a combination (two-thirds) of exams and (one-third) a research project of your choosing.
The exact projects available vary year on year and can be found on the website.
Recommended Reading
Interview/MAT Preparation
When applying to Oxford, strong maths problem-solving skills are what tutors are largely looking for across the interviews and the MAT admissions tests. Some resources I'd personally recommend for this are:
brilliant.org (Website)
A very comprehensive set of wiki page detailing problem-solving techniques as well as a huge bank of problems to test your understanding (the free version is plenty enough to go on).Dr. Frost Maths (Website)
A well structured set of guides to particular strategies used in Oxford MAT questions as well as a very useful bank of questions for interview practice.Algorithmic Puzzles (Book)
Not a resources I personally used however it seems a good proportion of Oxford Computer Science students have read this book and have found it very useful for interviews.MAT Past Papers (Website)
The best practice for the MAT is to do as many of these past papers as you can and to review your answers with the model solutions. Bear in mind, however, that there aren't that many so I would recommend saving a handful for closer to the date and using up the other resources first.
Further Reading
Computer Science has a strong online community with a plethora of well-curated blogs, podcasts and books to stoke your particular interests and it helps to learn how to code before joining the course too. Here are some of my favourite resources:
Codecademy (Website)
A great starting point for beginners to learn how to code, I would recommend starting with Python if you're new to programming.Project Euler (Website)
A very well-curated set of fun mathematical programming puzzles that start easy but quickly will test your limits.Hacker News (Website)
A fun but relevant news site to see what's hot in the world of programming and technology, especially great to discover new projects and interesting startups