Week | Lectures |
Lecture handouts (for screen viewing) |
Lecture handouts (for printing) |
Tutorial sheets (for printing) |
---|---|---|---|---|
1 | Introduction | ps | ||
Problems & algorithms | ps | |||
2 | Algorithmic constructs | ps | ps | |
More algorithmic constructs | ps | |||
3 | Recursive definitions | ps | ps | |
Recursive algorithms | ps | |||
4 | Formal languages | ps | ps | |
Programming languages: syntax | ps | |||
5 | Programming languages: semantics | ps | ps | |
Introduction to correctness | ps | |||
6 | Bank Holiday | Mock class test | ||
The syntax of propositional logic | ps | |||
7 | The semantics of propositional logic | ps | ps | |
Propositional logic metatheory | ps | |||
8 | Formal deduction | ps | ps | |
Formal and informal proof | ps | |||
9 | Program specifications | ps | ps | |
Floyd-Hoare logic for partial correctness | ps | |||
10 | Floyd-Hoare logic for conditionals | ps | ps | |
Invariants of loops | ps | |||
11 | More on invariants | ps | ps | |
Total correctness | ps | |||
12 | Correctness in practice | ps | ||
Class Test | ||||
13 | Analysing algorithm complexity | ps | ||
Algorithm complexity | ps | |||
14 | Algorithms with exponential complexity | ps | ps | |
Algorithms with logarithmic complexity | ps | |||
15 | Asymptotic analysis | ps | ps | |
Problem complexity | ps | |||
16 | Tractable and intractable problems | ps | ps | |
Graph problems | ps | |||
17 | Reductions | ps | ps | |
P and NP problems | ps | |||
18 | NP-Hard and NP-Complete problems | ps | ps | |
Cryptology | ps | |||
19 | The halting problem | ps | ps | |
Other non-computable problems | ps | |||
20 | Turing machines | ps | ps | |
Combining Turing machines | ps | |||
21 | Extensions to Turing machines | ps | ps | |
Another model of computation | ps | |||
22 | All computers are created equal | ps | ps | |
Revision | ||||
23 | Bank holiday | |||
Revision | ||||
24 | Revision | |||
Class Test |