- Meeting 1: We introduce Turing Machines as a formal model for algorithms. We motivate the need for such a model by the type of questions we want to address in this course. We described in full detail Turing Machines for two problems -- (a) to determine if a given string of 0's and 1's has a 1 or not, and (b) to determine if a given string of 0's and 1's is a palindrome. The material in this meeting was mostly from Section 1.2 of the text.
- Meeting 2: Turing Machines compute functions. Running Time. The impact of restricting the alphabet -- Claim 1.5 of the text.
- Reading for the week: Section 1.2 and 1.3 of the text.

- Meeting 1: The impact of the number of tapes: Claim 1.6. Encoding TM's as 0-1 strings, from Section 1.4. Brief mention of the universal Turing Machine.
- Meeting 2: The Universal TM from Section 1.5, and the proof that UC is uncomputable (Theorem 1.10).
- Reading: Section 1.4 and 1.5.

- Meeting 1: Halt is uncomputable (Theorem 1.11). Languages, undecidability, and the undecidability of the language Hello-World. This is not from the text; see these notes.
- Meeting 2: Undecidability of Accepts-all-Strings (see notes above).
- Reading: My notes, and Section 1.6.

- Meeting 1: The class P of languages decidable in polynomial time. (Section 1.6). The equation efficient computation = polynomial running time, and criticisms of the idea.
- Meeting 2: Introduction to NP from Section 2.1. Notes on some example problems in `content' within ICON.
- Reading: Sections 1.6 and 2.1.

- Meeting 1: More on NP, from Section 2.1. P is contained in NP, which is contained in EXP.
- Meeting 2: Nondeterministic Turing machines. The examples reviewed in class are here.
- Reading: 2.1, and 2.2.

- Meeting 1: Graph Isomorphism is in NP. P vs NP -- the big question. Towards NP-completeness via poly-time reducibility. The material is from Section 2.2.
- Meeting 2: NP-completeness of TMSAT (Section 2.2).

- Meeting 1: No meeting.
- Meeting 2: Cook-Levin Theorem, Theorem 2.10 of the text. See Notes within `Content' of ICON. This proof is different from the book's, which uses oblivious TMs.

- Meeting 1: Completing Proof of Cook-Levin Theorem. Properties of the Reduction. Proving Other Problems NP-complete. See notes within `Content' of ICON.
- Meeting 2: Decision vs Search. The class coNP. See notes in ICON.

- Meeting 1: coNP, complete problems for coNP -- the complement of CNF-SAT, and Tautology. Is NP = coNP? The class (NP intersect coNP). See notes in ICON.
- Meeting 2: The Time Hierarchy theorem from Section 3.1; for clarity, we proved a simpler version in class. Introduction to Space Complexity from Chapter 4.

- Meeting 1: Relation between space complexity and time complexity classes (Section 4.1.1). See notes on ICON.
- Meeting 2: Midterm

- Meeting 1: Quantified Boolean Formulae. The Language TQBF. This is introduced in Section 4.2 of the book, but we covered this material in much greater detail. See notes on ICON.
- Meeting 2: TQBF is in PSPACE. Beginning of the proof that TQBF is PSPACE-hard.

- Meeting 1: TQBF is PSPACE-hard.
- Meeting 2: Savitch's Theorem. The QBF game. A glimpse of the generalized geography game.
- Note: The material is from Section 4.2. See our notes on ICON as well. The generalized geography game is described in a handout on ICON, and is not covered in the text.

- Meeting 1: Boolean Circuits, Circuit Families and their size, Languages decided by circuit families.
- Meeting 2: The languages decided by polynomial sized circuit families, and the relationship of this class with P. The language circuit satisfiability.
- All material is from Section 6.1. See our notes on ICON as well.

- Meeting 1: Some examples of randomized algorithms. See notes on ICON.
- Meeting 2: The classes BPP, RP, coRP and ZPP

- Meeting 1: ZPP = RP intersect coRP. Review for the final.
- Meeting 2: BPP is contained in P/poly. See notes on ICON.