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 computation?
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). Other models.
Note 1 discusses in more detail the fact that two registers are enough, and gives some examples of pairing and encodings.

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 Halting revisited.
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 particular Note 9 and Note 10.
Thu 1 Feb, Lecture 6
UH continued. Beyond UH. Primitive recursion and partial recursion. Arithmetical hierarchy. (Not official part of course).
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 Cook-Levin.
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 17:00 Wednesday.
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.

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