computer science / electrical engineering
Computer Science
This course in Computer Science aims to produce graduates thoroughly conversant with the principles of modern computing science, who are able to apply those principles in the design and construction of reliable systems. The course at Oxford concentrates on bridging theory and practice, including a wide variety of hardware and software technologies and their applications. The course is designed to equip students with the fundamental understanding and practical skills needed by the potential leaders of a demanding profession.However, this by no means limits our graduates in their choice of career: like other courses at Oxford, it is a training in logical thought and expression, and can lead to employment in many different fields. A sound understanding of mathematical ideas is needed throughout the degree, both for potential applications such as scientific computation, and for reasoning rigorously about the specification and behaviour of programs.
Practical skills must also be developed, and the majority of subjects within the course are linked with practical work which contributes marks towards the final examination. The laboratory has a large network of up-to-date workstations for practical work, and the network is accessible from colleges and many student rooms, and from the global internet.
This can be taken either as a three-year (BA) or a four-year (Master) degree with exams at the end of each year.
Courses
Handbooks
Programme Specifications
Documents
Projects
Preliminary Examinations, Computer Science
In the first year of the Computer Science degree, you will take ten lecture courses - nine in Computer Science and one taught in conjunction with Mathematics (with lectures organised by the Mathematical Institute).You should also attend Introduction to University Level Mathematics in the Mathematical Institute in weeks 1 and 2 of Michaelmas Term (8 lectures in total).
Mathematics
- Probability - Michaelmas Term 2016
- Discrete Mathematics Michaelmas Term 2016
- Functional Programming Michaelmas Term 2016
- Linear Algebra Michaelmas Term 2016
- Continuous Mathematics Hilary Term 2017
- Design and Analysis of Algorithms Hilary Term 2017
- Digital Systems Hilary Term 2017, Trinity Term 2017
- Imperative Programming I Hilary Term 2017
- Imperative Programming II Trinity Term 2017
- Introduction to Formal Proof Trinity Term 2017
Exam Conventions
Part A, Computer Science
In the second year Computer Science students are required to take- the core courses in Algorithms, Compilers, Concurrent Programming and Models of Computation.
- the Group Design Practical
in the 2nd and 3rd years you are require to take a total of 10 optional courses from Schedules S1 and S2 (with no more than 2 from S2) below. It is reccomended that you take 4 or 5 of these options in your 2nd year, however your tutor will be able to provide you with some guidance on this. All optional courses will be examined at the end of your 3rd year.
Part A Core
- Compilers 16 Lectures, Michaelmas Term 2017
- Models of Computation 16 Lectures, Michaelmas Term 2017
- Algorithms 16 Lectures, Hilary Term 2018
- Concurrent Programming 16 Lectures, Hilary Term 2018
- Group Design Practical Hilary Term 2018, Trinity Term 2018
Schedule S1
- Computer Security 16 Lectures, Michaelmas Term 2017
- Computer-Aided Formal Verification 16 Lectures, Michaelmas Term 2017
- Databases 16 Lectures, Michaelmas Term 2017
- Geometric Modelling 16 Lectures, Michaelmas Term 2017
- Intelligent Systems 16 Lectures, Michaelmas Term 2017
- Machine Learning 16 Lectures, Michaelmas Term 2017
- Principles of Programming Languages 16 Lectures, Michaelmas Term 2017
- Computational Complexity 16 Lectures, Hilary Term 2018
- Computer Architecture 16 Lectures, Hilary Term 2018
- Knowledge Representation & Reasoning 16 Lectures, Hilary Term 2018
- Lambda Calculus and Types 16 Lectures, Hilary Term 2018
- Logic and Proof 16 Lectures, Hilary Term 2018
- Computer Graphics 16 Lectures, Trinity Term 2018
- Computer Networks 16 Lectures, Trinity Term 2018
- Concurrency 16 Lectures, Trinity Term 2018
Schedule S2
Part B (old regs), Computer Science
Computer Science students in their third year take a total of six optional courses from schedules B1, B2 and B4 with the following conditions:- no more than two subjects from Schedule B1, and
- no more than two subjects from Schedule B4
You cannot take a course you offered in your second year.
You must also take a project, which is worth one third of the year.
Please note that although practicals play no part in the degree classification, a candidate must pass the practical component of the course in order to pass the exam, i.e. students must achieve 40% or more overall in their practicals each year to pass.
Schedule B1
- Compilers 16 Lectures, Michaelmas Term 2017
- Databases 16 Lectures, Michaelmas Term 2017
- Intelligent Systems 16 Lectures, Michaelmas Term 2017
- Algorithms 16 Lectures, Hilary Term 2018
- Computer Architecture 16 Lectures, Hilary Term 2018
- Computer Graphics 16 Lectures, Trinity Term 2018
- Computer Networks 16 Lectures, Trinity Term 2018
- Concurrency 16 Lectures, Trinity Term 2018
Schedule B2
- Computer Security 16 Lectures, Michaelmas Term 2017
- Computer-Aided Formal Verification 16 Lectures, Michaelmas Term 2017
- Geometric Modelling 16 Lectures, Michaelmas Term 2017
- Machine Learning 16 Lectures, Michaelmas Term 2017
- Principles of Programming Languages 16 Lectures, Michaelmas Term 2017
- Computational Complexity 16 Lectures, Hilary Term 2018
- Knowledge Representation & Reasoning 16 Lectures, Hilary Term 2018
- Lambda Calculus and Types 16 Lectures, Hilary Term 2018
Schedule B2 courses run by the Maths Institute
Schedule B4 courses run by the Maths Institute
Projects
Part B (new regs), Computer Science
Computer Science students in their third year are required to offer a total of ten optional subjects for examination from Schedules S1 and S2 (with no more than two from S2).It is expected that you will have studied at least four optional courses during your second year. All optional courses are examined at the end of your third year.You must also take a project, which is worth one third of the year.
Please note that although practicals play no part in the degree classification, you must pass the practical component of the course in order to pass the exam, i.e. students must achieve 40% or more overall in their practicals each year to pass.
Schedule S1
- Computer Security 16 Lectures, Michaelmas Term 2017
- Computer-Aided Formal Verification 16 Lectures, Michaelmas Term 2017
- Databases 16 Lectures, Michaelmas Term 2017
- Geometric Modelling 16 Lectures, Michaelmas Term 2017
- Intelligent Systems 16 Lectures, Michaelmas Term 2017
- Machine Learning 16 Lectures, Michaelmas Term 2017
- Principles of Programming Languages 16 Lectures, Michaelmas Term 2017
- Computational Complexity 16 Lectures, Hilary Term 2018
- Computer Architecture 16 Lectures, Hilary Term 2018
- Knowledge Representation & Reasoning 16 Lectures, Hilary Term 2018
- Lambda Calculus and Types 16 Lectures, Hilary Term 2018
- Logic and Proof 16 Lectures, Hilary Term 2018
- Computer Graphics 16 Lectures, Trinity Term 2018
- Computer Networks 16 Lectures, Trinity Term 2018
- Concurrency 16 Lectures, Trinity Term 2018
Schedule S2
Projects
Part C, Computer Science
In Part C you are required to take 5 optional subjects from Schedule C1.Most of these subjects will be examined by a take-home mini-project, though some will be examined by a sit-down paper of two hours' duration. Mini-projects will be handed out to candidates on the last Friday (or Monday for subjects shared with MFoCS) of the term in which the subject is being taught and have to be handed in to the Exam Schools by noon on Monday of week 0 of the following term. The mini-project will be designed to be completed in about three days. It will include some questions that are more open-ended than those on a standard sit-down exam. The work you submit must be your own work, and include suitable references.
In addition, candidates will complete a larger project worth 3/8 of the year’s assessment.
Please note that the courses in Part C are 50% bigger than those in earlier years, i.e. for each course in the 3rd year undergraduates are expected to undertake about 10 hours of study per week, but 4th year courses will each require about 15 hours a week of study. Lecturers are providing this extra work in a variety of ways, e.g. some will give 16 lectures but will require you to undertake extra reading, classes and/or practicals, whereas others will be giving 24 lectures, and others still will be doing something in between. Please look at each synopsis for details on this.
Schedule C1
- Automata, Logic and Games 24 Lectures, Michaelmas Term 2017
- Categories, Proofs and Processes 20 Lectures, Michaelmas Term 2017
- Computational Game Theory 20 Lectures, Michaelmas Term 2017
- Concurrent Algorithms and Data Structures approximately 20, Michaelmas Term 2017
- Physically Based Rendering Michaelmas Term 2017
- Probabilistic Model Checking 20 Lectures, Michaelmas Term 2017
- Advanced Security 18 Lectures, Hilary Term 2018
- Computational Learning Theory 20 Lectures, Hilary Term 2018
- Computer Animation 20 Lectures, Hilary Term 2018
- Database Systems Implementation 22 Lectures, Hilary Term 2018
- Probability and Computing 20 Lectures, Hilary Term 2018
- Quantum Computer Science 24 Lectures, Hilary Term 2018
- Visual Analytics 16 Lectures, Hilary Term 2018
- Requirements 16 Lectures, Trinity Term 2018