Lecture topics and relevant textbook references, as well as any additional
in-class handouts, will be posted here. You are encouraged to take some time before each lecture to
look at the textbook section that will be covered; this will make your class time a lot more
productive.
### Part 1 - Automata and regular languages

### Part 2 - Context-free languages

### Part 3 - Effective computability and Turing Machines

The textbook is divided into sections called Lectures; the references given below are to these sections. This schedule is tentative; you should consider all topics listed for future dates as guidelines rather than guarantees of what will be covered.

- May 24 - Course introduction; informal description of finite automata
*(Lecture 1)* - May 25 - Key definitions and concepts; formal definition of a DFA
*(Lectures 2 and 3)* - May 26 - Proofs of regularity; the product construction; closure properties of regular languages
*(Lecture 4)* - May 27 - Nondeterminism; epsilon-transitions
*(Lectures 5 and 6, and additional handout about computation trees for NFAs)* - May 30 -
**No class** - May 31 - Formal proof for the subset construction; more closure properties; harder proofs of regularity
*(Lecture 6 and Ex. 26 p. 322, hint p. 352, solution p. 358)* - June 1 - Pattern matching and regular expressions; converting a regular expression to a finite automaton; inductively defined sets and proofs by structural induction
*(Lectures 7 and 8)* - June 2 - Simplifying regular expressions; converting a finite automaton to a regular expression
*(Lecture 9)* - June 3 - Limitations of finite automata; the pumping lemma
*(Lectures 11 and 12)* - June 6 - DFA state minimization
*(Lectures 13 and 14)* - June 7 - Automata wrap-up: decision problems, real-world regular expressions
*(additional handouts on decision problems and UNIX regular expressions)*

- June 8 - Introduction to Context-Free Grammars and Pushdown Automata
*(Lecture 19)*, Java grammar, introduction to JFLAP - June 9 -
**Prelim 1**, covering all the material on automata up to and including the 6/7 class - June 10 - Brief intro to parse trees
*(Lecture 22)*; brief discussion of ambiguity in grammars*(Lecture 26)*; formal proof for balanced parentheses*(Lecture 20)* - June 13 - Chomsky and Greibach normal forms for CFGs
*(Lecture 21)* - June 14 - NPDAs; converting a CFG to a NPDA
*(Lectures 23, Supplementary E, 24)*. The JFLAP files from class are here. - June 15 - Converting a NPDA to a CFG
*(Lectures 24 and 25)*; a few words about DPDAs and DCFLs*(Supplementary Lecture F)* - June 16 - The pumping lemma for CFLs; closure properties for CFLs
*(Lectures 22 and 27)* - June 17 - CKY algorithm
*(Lecture 27)*; strategies for removing ambiguity from grammars (*additional handout*). - June 20 - Top-down and bottom-up parsing (
*slides from class*)

- June 21 - Introduction to Turing Machines; the Church-Turing thesis
*(Lecture 28, see also the Resources section of this site for links. JFLAP file from class implementing the TM described in Lecture 28. Remember you must feed it input including a left angle bracket as endmarker)* - June 22 -
**Prelim 2**, covering all the material on CFLs up to and including the 6/20 class - June 23 - More examples and models of TMs; Recursive and r.e. languages
*(Lectures 29 and 30, additional handout on nondeterministic TMs)* - June 24 - Universal TMs and diagonalization; undecidability of the Halting Problem
*(Lecture 31)* - June 27 - Other decidable and undecidable problems
*(Lecture 32)* - June 28 - Reductions; FIN is neither r.e. nor co-r.e.
*(Lecture 33)* - June 29 - Rice's Theorem
*(Lecture 34 and Misc. Exercise 113)*, "real-world" undecidable problems such as alias analysis*(Undecidability of static analysis paper by W. Landi)* - June 30 - Reduction technique involving valid computation histories; undecidable problems about CFLs
*(Lecture 35)* - July 1 - Assorted fun topics in computability and complexity (
*slides from class; see also Resources section*) - July 4 -
**No class** - July 5 - Exam review
- July 6 -
**Final Exam**3:00-5:30 pm, Hollister 362