Module 05934 (2004)

Syllabus page 2004/2005

06-05934
Models of Computation

Level 2/I

Volker Sorge
10 credits in Semester 2

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:
1explain the basics of automata theory, formal language theory, computability theory, complexity theory and lambda calculus Examination
2explain non-computability and non-decidability issues Examination
3describe and use the connection between automata and languages Examination
4explain and use lambda calculus as a theory of functional programming Examination
5explain the connection between theory and applications Examination

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:

35


Assessment

  • Supplementary (where allowed): As the sessional assessment
  • 2 hr examination (80%), continuous assessment (20%). Resit by examination only with the continuous assessment mark carried forward.

Recommended Books

TitleAuthor(s)Publisher, Date
Module notes will be provided
Introduction to the Theory of ComputationM. SipserPVS Publishing Company, 1997
Automata and ComputabilityD. KozenSpringer Verlag, 1997
Introduction to Automata Theory, Languages, and ComputationJ. E. Hopcroft, J. D. UllmanAddison-Wesley, 1979
Theory of Computation; Formal Languages, Automata, and ComplexityBrookshearCummings, 1989
Models of Computation: Exploring the Power of ComputingSavageAddison Wesley, 1998
Computability and Complexity: From a Programming PerspectiveN. JonesMIT Press, 1997
An Introduction to Functional Programming through Lambda Calculus.MichaelsonAddison-Wesley, 1989

Detailed Syllabus

  1. Finite automata (4 hrs)
    • Finite automata and regular languages
    • Nondeterminism
    • Limitations of finite automata
  2. Formal languages (2 hrs)
    • Grammars
    • Pushdown automata
  3. Limits of computation (4 hrs)
    • The Halting Problem
    • Reducibility
  4. Turing machines (4 hrs)
    • The basic model
    • Extensions and their equivalence with the basic model
    • Church's Thesis
  5. Complexity Theory (4 hrs)
    • Complexity of Turing machine programs
    • The class P
    • The class NP
    • NP-complete problems
  6. Formalising functional programming (4 hrs)
    • Rewriting as a computational paradigm
    • Lambda calculus
    • Typed lambda calculi

Last updated: 10 Jan 2004

Source file: /internal/modules/COMSCI/2004/xml/05934.xml

Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus