Module 05934 (2007)
Syllabus page 2007/2008
06-05934
Models of Computation
Level 2/I
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
For more information (like notes, handouts) see the module web page at
http://www.cs.bham.ac.uk/~vxs/teaching/moc/
Outline
The module will introduce various automata theoretic models of computation and discuss their practical and theoretical significance. Finite automata, grammars and stack automata and Turing machines will be introduced. The fundamental ideas of (non-)computability and complexity will be presented. There will also be a section on the Lambda Calculus and its connection with Functional Programming.
Aims
The aims of this module are to:
- introduce a variety of formal models of computation
- explain the significance of formal models from a practical and a foundational point of view
- make familiar with the fundamental results in the theory of computation
- explain the way in which formalisations are used to address real-life computational problems
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | explain the basics of automata theory, formal language theory, computability theory, complexity theory and lambda calculus | Examination, Continuous Assessment |
| 2 | explain non-computability and non-decidability issues | Examination, Continuous Assessment |
| 3 | describe and use the connection between automata and languages | Examination, Continuous Assessment |
| 4 | explain and use lambda calculus as a theory of functional programming | Examination, Continuous Assessment |
| 5 | explain the connection between theory and applications | Examination, Continuous Assessment |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
06-18187 (Foundations of Computer Science), 06-18189 Mathematics for Computer Science (or equivalent)
Co-requisites:
None
Teaching
Teaching Methods:
11 two-hour lectures, 11 one-hour exercise sessions, 2 one-hour review lectures
Contact Hours:
Assessment
- Sessional: 1.5 hr examination (80%), continuous assessment (20%).
- Supplementary (where allowed): By examination only with the continuous assessment mark carried forward.
Recommended Books
| Title | Author(s) | Publisher, Date |
| Module notes will be provided | ||
| Introduction to the Theory of Computation | M. Sipser | PVS Publishing Company, 1997 |
| Automata and Computability | D. Kozen | Springer Verlag, 1997 |
| Introduction to Automata Theory, Languages, and Computation | J. E. Hopcroft, J. D. Ullman | Addison-Wesley, 1979 |
| Theory of Computation; Formal Languages, Automata, and Complexity | Brookshear | Cummings, 1989 |
| Models of Computation: Exploring the Power of Computing | Savage | Addison Wesley, 1998 |
| Computability and Complexity: From a Programming Perspective | N. Jones | MIT Press, 1997 |
| An Introduction to Functional Programming through Lambda Calculus. | Michaelson | Addison-Wesley, 1989 |
Detailed Syllabus
-
Finite automata (4 hrs)
- Finite automata and regular languages
- Nondeterminism
- Limitations of finite automata
- Formal languages (2 hrs)
- Grammars
- Pushdown automata
- Limits of computation (4 hrs)
- The Halting Problem
- Reducibility
- Turing machines (4 hrs)
- The basic model
- Extensions and their equivalence with the basic model
- Church's Thesis
- Complexity Theory (4 hrs)
- Complexity of Turing machine programs
- The class P
- The class NP
- NP-complete problems
- Formalising functional programming (4 hrs)
- Rewriting as a computational paradigm
- Lambda calculus
- Typed lambda calculi
Last updated: 10 Dec 2006
Source file: /internal/modules/COMSCI/2007/xml/05934.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus