**Note on notes:** I'll update the notes as the course goes along. Announcements of updates will be made on the Front Page.

- 0-0 Behavioural specifications
- 0-1 Input, output and implementability
- 0-2 Imperative transformational programming and programming constructs.
- Updated slides: 2017.Jan.25 in the afternoon.

- 0-3 Derivation of programs
- Update slides: 2017.Jan.30 in the afternoon. Added more examples. Fixed summation example.

- 0-4 More on Iteration
- 0-5 More examples of Iteration
- 0-6 Loop invariants
- 0-6a More on loop invariants
- 0-7 The maximum segment sum
- 0-8 Further applications of specifications and derivation of programs

- 1-0 Overview
- 1-1 Strings, languages, and regular expressions(Updated 2017.Feb.21)
- 1-2 Finite recognizers(Updated 2017.Mar.17)
- 1-3 Reactive Systems
- 1-4 Context Free Grammars and Lanugages
- 1-5 Turing machines, undecidability, and universality.
- Extra notes on the Halting Problem in Java.
- A Turing machine using film leader for tape (video).
- A wooden Turing machine. (video)
- Scooping the Loop Snooper, a poem by Geoffrey Pullman in the style of Dr. Seuss.

- 2.0 Time complexity of algorithms
- 2.1 Some examples
- 2.2 Time complexity of problems and lower bounds
- 2.3 Tractable, intractable, and seemingling intractable problems.

(c) Theodore Norvell