Introduction to Theoretical Computer Science - Lectures

The following is the provisional plan for the course.

Week 1
Tue 19 Sep, Lecture 1
Finite Automata. (Revision of Inf1!)
Slides (and condensed version).
Thu 21 Sep, Lecture 2
Regular languages and expressions (partly revision).
Slides (and condensed version).
Week 2
Tue 26 Sep, Lecture 3
Postponed due to strike action.
Thu 28 Sep, Lecture 4
Postponed due to strike action.
Week 3
Tutorial sheet for week 3 tutorials.
Mon 2 Oct
Coursework 1 issued
Tue 3 Oct, Lecture 3
Non-regular languages, context-free languages and grammars
Slides (and condensed version).
Thu 5 Oct, Lecture 4
Push-down automata
Slides (and condensed version).
Week 4
Tutorial sheet for week 4 tutorials.
Tue 10 Oct, Lecture 5
Pumping for CFLs, Chomsky Hierarchy. Register machines. Programming RMs. Examples. Pairing.
Slides (and condensed version).
Julian's note on limited registers being enough.
Thu 12 Oct, Lecture 7
Universal RMs. The Halting Problem (with proof). Other models.
Slides (and condensed version).
For more information and technical details of Turing Machines, see either Sipser ch.3 (for the TM formalism) and 4 (for the Halting Theorem).
Week 5
Tutorial sheet for week 5 tutorials.
Tue 17 Oct, Lecture 7
Computable functions. Decision problems and oracles. Reductions. Undecidability proofs. Uniform Halting. Rice's Theorem.
Slides (and condensed version).
Reading: for reductions and undecidable problems, Sipser ch. 5.
Thu 19 Oct, Lecture 8
Looping. Semi-decidability. Enumeration. Looping revisited. Uniform Halting revisited.
Slides (and condensed version).
Week 6
Discuss Coursework 1 solutions in Week 6 tutorials.
Tue 24 Oct, Lecture 9
Arithmetical hierarchy. (Not official part of course).
Slides (and condensed version).
Bonus material (Lecture 10): Hintikka and Back and Forth Games
Slides (and condensed version).
Thu 26 Oct
No lecture
Fri 27 Oct
Coursework 1 due at 12:00
Week 7
Tutorial sheet for week 7 tutorials.
Mon 30 Oct
Coursework 2 released (late)
Tue 31 Oct, Lecture 11
Complexity of algorithms and problems. Polynomial time. Polynomial reductions. Outside P. Nondeterminism. The class NP.
Slides (and condensed version).
Reading: Sipser sections 7.1 and 7.2.
Thu 2 Nov, Lecture 12
NP-Hardness. NP-completeness, the Cook-Levin theorem. Some NP-complete problems.
Slides (and condensed version).
Julian's note on reduction details.
Reading: Sipser 7.3 and 7.4.
Week 8
Tutorial sheet for week 8 tutorials.
Tue 7 Nov, Lecture 13
Beyond NP. Polynomial Hierarchy.
Sipser 7.5, then look briefly through ch. 8, 9.1, 10.1- -10.3.
Slides (and condensed version).
Thu 9 Nov, Lecture 14
Syntax and semantics of untyped lambda-calculus.
Slides (and condensed version).
Reading: Pierce Ch. 5 up to page 65 half-way down; plus back-references to previous chapters.
Week 9
Tutorial sheet for week 9 tutorials.
Tue 14 Nov, Lecture 15
Recursion and the Y combinator, Simple types.
Unexamined: Type theory and the Curry-Howard correspondence.
Slides (and condensed version).
Reading: Pierce 9.2, 9.3,9.5, 11 (esp. 11.5 and 11.11), 12.
Phil Wadler's tutorial paper on Curry-Howard.
Thu 16 Nov, Lecture 16
Optional lecture on space complexity
Slides (and condensed version).
Fri 17 Nov
Coursework 2 due at 12:00
Week 10
Tue 21 Nov, Lecture 17
Optional lecture on information and Kolmogorov complexity.
Slides (and condensed version).
Thu 23 Nov, Lecture 18
Optional lectures on Denotational Semantics.
Slides (and condensed version).

Home : Teaching : Courses : Itcs 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh