Computer Science at Oxford
Computer Science and Philosophy Options 3
From Computer Science at Oxford
In the fourth year students have even more flexibility in their choice of courses. They may take three units in any combination from the two subjects, where a unit is two Computer Science courses, a Computer Science Project, a Philosophy paper, or a Philosophy thesis. (However students are not permitted to take both a Computer Science Project and a Philosophy thesis.)
Advanced Options in Computer Science
Students choose from Computer Science course options including:
The aim of this series of lectures is to provide an introduction to some of the major topics in computational linguistics. No previous knowledge of linguistics is required. By the end of this lecture series you should understand what the concerns of computational linguists are and be familiar with some of the major topics in the area. You should also be in a position to find out more of the practical details for yourself.
Information Retrieval (IR), for the purpose of this course, is the study of the indexing, processing, and querying of textual data. The growing importance of the Web means that IR has acquired added significance in recent years. The course will also look at how models of language similar to those used in IR can be applied to the problem of Machine Translation, which is becoming increasingly important as use of the Web transcends national and cultural boundaries. This course provides an introduction to the basic principles and techniques used in IR; to demonstrate how statistical models of language can be used to solve the document retrieval problem; to consider specific IR applications such as cross-language retrieval; and to show how statistical models of language can be used to develop Machine Translation systems.
Theory of Data and Knowledge Bases
This lecture series will give you a good understanding of the fundamentals of query languages, and the trade-off between complexity and expressive power, in addition to the basic formalisms of non-monotonic reasoning. You should be in a position to analyse a query language and express knowledge in suitable logical formalisms.
Automata, Logic & Games
This course introduces the mathematical theory underpinning the Computer-Aided Verification of computing systems. The main ingredients are:
- Automata (on infnite words and trees) as a computational model of state-based systems.
- Logical systems (such as temporal and modal logics) for specifying operational behaviour.
- Two-person games as a conceptual basis for understanding interactions between a system and its environment.
Probabilistic Model Checking
Probabilistic model checking is a formal technique for analysing systems that exhibit random behaviour. Examples include randomised algorithms, communication and security protocols, computer networks, biological signalling pathways, and many others. The course provides a detailed introduction to these techniques, covering both the underlying theory (Markov chains, Markov decision processes, temporal logics) and its practical application (using the state-of-the art probabilistic checking tool PRISM, based here in Oxford). The methods used will be illustrated through a variety of real-life case studies, e.g. the Bluetooth/FireWire protocols and algorithms for contract signing and power management.
Program analysis provides the theory, algorithms and engineering techniques to answer questions about your programs. For example, you might want to determine what statements could have contributed to the value of an expression. Another application is for a compiler to decide whether an optimisation can be applied. Or you might want some mechanical assistance when refactoring your program. Program analysis is also indispensable when proving properties of large programs, for instance to check that there are no buffer overflows.
An elegant and crisp mathematical framework is common to all these applications. This course will introduce you to that mathematics, and simultaneously show how it leads to beautiful algorithms that solve practically important problems.
Optional Computer Science project
There is an optional Computer Science project
Advanced options in Philosophy
Advanced options in Philosophy can include most of the Philosophy options listed for year two and year three (if not already studied), augmented with a long essay (up to 5,000 words) on a relevant topic.
Optional Philosophy thesis
One of the advanced options can be replaced with a thesis, on a topic of the student’s choice (subject to approval) and up to 20,000 words in length. This gives an opportunity for major in-depth study and a taste of graduate work in Philosophy.