Below is a schedule which gives an ordering of the material we will cover. The correspondence of the materials to weeks is very approximate. You will notice that we are starting out with Turing Machines. They are a very straight-forward concept and are a tremendous aid in setting the agenda for this course.

WeekTopicsSections
1Skills review, Turing Machines0.4, 3.1
2Turing Machines, Church Turing Thesis, The Halting Problem3.2, 3.3, 4.2
3Regular languages1.1, 1.2
4Regular languages1.3, 1.4
5Context free languages2.1, 2.2
6Context sensitive languages2.3
7Decidability4.1
8Reducibilitychapter 5
9Complexitychapter 7
10Tractable and intractable problemschapter 9

There will be several team projects: To program a Turing Machine, to develop regular expressions and context-free grammars for a subset of some programming language and to understand Goedel's incompleteness proof.