Introduction to Theoretical Computer Science - Lectures
The following is the provisional plan for the course. No changes are
expected, but in any case the last examinable lecture will
not be later than week 9.
- Slides for the entire course
- 1-up for viewing
and 4-up for printing
These are the slides for the entire course; probably some
changes or amendments will be made during the course.
- Week 1
- Mon 15 Jan, Lecture 1
General introduction to the course. What are computers? What is
- Thu 18 Jan, Lecture 2
Definition of register machines. Programming RMs. Examples. Pairing.
Notes for RMs and programming
- Week 2
- Mon 22 Jan
- Coursework 1 issued
- Mon 22 Jan, Lecture 3
Universal RMs. The Halting Problem (with proof).
Note 1 discusses in more detail the fact that
two registers are enough, and gives some examples of pairing and
Reading: For a standard Turing Machine account of things, Sipser
ch. 3. For the Halting Problem, ch. 4.
- Thu 25 Jan, Lecture 4
Computable functions. Decision problems and oracles. Reductions. Undecidability
proofs. Uniform Halting.
Reading: for reductions and undecidable problems, Sipser ch. 5.
Tutorial sheet 1 for week 3 tutorials.
- Week 3
- Mon 29 Jan, Lecture 5
Looping. Semi-decidability. Enumeration. Looping revisited. Uniform
Reading: Sipser doesn't really cover this. Wikipedia is OK; also any
textbook on `computability theory' or `recursion theory'. The notes
for the old Computability and Intractability course also cover it: in
9 and Note
- Thu 1 Feb, Lecture 6
- UH continued. Beyond UH. Primitive recursion and partial
recursion. Arithmetical hierarchy. (Not official part
Reading: again, any `recursion theory' textbook. I also have some old notes for a postgraduate course, of which
the first 6 pages cover the arithmetical hierarchy (though not
primitive recursion). However, you don't need to read
this - it's not in the course syllabus.
Tutorial sheet 2 for week 4 tutorials.
- Week 4
- Mon 5 Feb, Lecture 7
- Complexity of algorithms and problems. Polynomial time. Polynomial
reductions. Outside P.
Reading: Sipser sections 7.1 and 7.2.
Note 2 is an example of a written-out
(computability) reduction, as requested.
- Thu 8 Feb, Lecture 8
- Non-determinism. The class NP. NP-completeness and statement of
Reading: Sipser 7.3 and 7.4.
Tutorial sheet 3 for week 5 tutorials.
- Week 5
- Mon 12 Feb, No Lecture
- Thu 15 Feb, No Lecture
- Fri 16 Feb
- Coursework 1 due at 16:00
- Flexible Learning Week
- No course activities this week
- Week 6
- Mon 26 Feb
- Coursework 2 issued
- Mon 26 Feb
- Proof of Cook-Levin.
Reading: Sipser 7.4 for the structure of the proof. The adaptation to
register machines you have to work on understanding yourselves.
- Thu 1 Mar
More NP problems. Beyond NP.
Note 3 gives more details on the two
NP-complete problems in this lecture.
Sipser 7.5, then look briefly through ch. 8, 9.1, 10.1--10.3.
Tutorial sheet 4 for week 7 tutorials.
- Week 7
- Mon 26 Feb, Lecture 9
- Syntax and semantics of untyped lambda-calculus.
Reading: Pierce Ch. 5 up to page 65 half-way down; plus
back-references to previous chapters.
Coursework 1 returned.
- Thu 1 Mar, Lecture 10
- Recursion and the Y combinator. Simple types.
Reading: Pierce, rest of ch. 5; (ch. 8 and) 9.1, 9.2.
Tutorial sheet 5 for week 8 tutorials.
- Week 8
- Mon 12 Mar, Lecture 11
- Proof systems for simple types. Properties of simple
typing. Recursion in a typed language. Extensions, let, letrec.
Reading: Pierce 9.2, 9.3,9.5, 11 (esp. 11.5 and 11.11), 12.
- Thu 8 Mar, Lecture 12
Type reconstruction for the simply-typed calculus.
Reading: Pierce 22.1-22.5.
Tutorial sheet 6 for week 9 tutorials.
- Week 9
- Mon 19 Mar, Lecture 13
Polymorphic types, Hindley-Milner type inference.
Reading: Pierce ch 22 (again, not missing bits).
Note 4 goes through type reconstruction
examples in detail.
- Thu 22 Mar, Lecture 14
- Non-examinable. Curry-Howard and propositions as types. Gödel's incompleteness
theorem; incompleteness in mathematics.
Tutorial sheet 7 for week 10 tutorials.
- Coursework 2 due at 16:00
- Week 10
- Mon 26 Mar, Lecture 15
- Unofficial lecture on Infinity.
- Thu 29 Mar, Lecture 16
- No planned lecture -- catch-up/revision session available on
demand if notified to jcb by
- Fri 23 Mar
- Week 11
- No planned activities -- revision/catch-up sessions are available
on demand in tutorial and lecture slots.
- Fri 6 Apr
- Coursework 2 returned.
|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