University of Oxford Logo University of OxfordDepartment of Computer Science - Home

Models of Computation:  2008-2009

Information

Lecturer

Degrees

Part A CoreHonour School of Computer Science

Part AHonour School of Mathematics and Computer Science

Term

Overview

This course introduces the classical mathematical models used to analyse computation, including finite state automata, grammars, and Turing Machines.

A computer scientist should be able to distinguish between what can be computed and what cannot. This distinction can only be made with a good scientific model of computers and computation. This course introduces the powerful idea of using a mathematical model to analyse computation.

This course describes a number of different models of computation which were proposed and analysed over the past century. Many of these models were found to be equivalent, in the sense that they allow exactly the same computations to be carried out. Other models were shown to be less powerful, but simpler to implement, and so useful for some purposes.

Learning outcomes

At the end of the course students will be able to:

Synopsis

Part 1: Finite-state machines and regular languages

Part 2: Turing machines and computability

Syllabus

The finite-state machine. DFA and NFA and their equivalence. Regular languages and regular expressions. Regular grammars. The pumping lemma.

The Turing machine. Church's Thesis. Decision problems and undecidability. The halting problem. Chomsky grammars.

Reading list

Primary Text Background Reading