Lecture Schedule

Date Subject Resources
Week 1, Jan 8-12 Course introduction and background. Review of notation. Introduction to deterministic finite automata (DFA)
Week 2, Jan 15-19 DFA's continued. Introduction to non-determinism and non-deterministic finite automata (NFA)
Week 3, Jan 22-26 NFA's continued. Equivalence of DFAs and NFAs.
Week 4, Jan 29-Feb 2 Closure properties of regular languages. Regular expressions. Pumping lemma for regular languages.
Week 5, Feb 5-9 Introduction to context-free grammars (CFG)
Week 6, Feb 12-16 Introduction to push-down automata (PDA). Pumping lemma for CFGs.
Feb 19-23 Reading week. Aw yea! No class.
  • N/A
Week 7, Mar Feb 26-Mar 2 Midterm (Wednesday Feb 28th, 9:00-10:00am in FNB 1220 and FNB 1240). Introduction to Turing machines (TM). TM examples.
Week 8, Mar 5-9 The Church-Turing Thesis. Decidability and Decidable languages.
Week 9, Mar 12-16 Universal Turing machines. The halting problem and other undecidable languages.
Week 10, Mar 19-23 Computational complexity and running time. Complexity classes P and NP.
Week 11, Mar 26 The class NP-Complete. The Cook-Levin Theorem and the million dollar question... does P=NP? (Note: No class on Friday!)
Week 12, Apr 2-6 The class NP-Hard. Probabilistic Turing machines and the class BPP. Quantum computers and the class BQP.
Week 13, Apr 9 Exam review