COMPSCI 501: Formal Language Theory

Spring 2019

Marius Minea

Welcome to the Spring 2019 homepage for COMPSCI 501: Formal Language Theory. Basic Information

Topics: COMPSCI 501 is an advanced undergraduate/master's-level core course in the theory of computation: formal language theory (finite automata, regular languages, context-free grammars and pushdown automata), computability theory, and complexity theory. This is a mathematical course: you will learn the main mathematical models of computation and how to prove their basic properties.

Prerequisites: COMPSCI 311, with a B- or better. It is useful to have "mathematical sophistication", at the level of of getting an A in COMPSCI 250, or in an upper-level math course.
These will have given you a broad view of some of the topics (automata and regular languages, fundamentals of NP-complete problems), but we will be able to look at these issues in-depth and of course cover much more advanced material.

Textbook (required): Michael Sipser, Introduction to the Theory of Computation, second or third edition.
This is an excellent book and we will follow it closely. It does a very good job of presenting the intuition first (including for proofs) before giving the rigorous treatment.

Homework

Grading:

Syllabus and schedule (tentative)

Week Date Topics Readings
1 Lec 1 1/23 Introduction Ch 0.1-0.4
Lec 2 1/25 Deterministic Finite Automata (DFA) Ch 1.1
2 Lec 3 1/28 Nondeterministic Finite Automata (NFA) Ch 1.2
Lec 4 1/30 Regular Expressions. Kleene's Theorem Ch 1.3
Lec 5 2/1 Nonegular Languages. Pumping Lemma Ch 1.4
3 Lec 6 2/4 Myhill-Nerode Theorem
Lec 7 2/6 Context-Free Grammars (CFG) Ch 2.1
Lec 8 2/8 Pushdown Automata (PDA) Ch 2.2
4 Lec 9 2/11 Equivalence of CFGs and PDAs Ch 2.2
Lec 10 2/13 CFL Pumping Lemma Ch 2.3
Lec 11 2/15 Turing Machines (TM) Ch 3.1
5 Lec 12 2/19 (Mon. schedule) Multi-tape and Nondeterministic TMs Ch 3.2
Lec 13 2/20 Algorithms and the Church-Turing Thesis Ch 3.3
Lec 14 2/22 Decidable Languages Ch 4.1
6 Lec 15 2/25 Undecidability Ch 4.2
Lec 16 (Rik Sengupta) 2/27 Undecidable Problems in Formal Language Theory Ch 5.1
Lec 17 (Rik Sengupta) 3/1 Post Correspondence Problem Ch 5.2
7 Lec 18 3/4 Reductions Ch 5.3
Lec 19 3/6 Recursion Theorem Ch 6.1
Lec 20 3/8 Descriptive Complexity Ch 6.4
8 Lec 21 3/18 Time Complexity, Polynomial Time Ch 7.1, 7.2
Lec 22 3/20 Nondeterministic Polynomial Time (NP) Ch 7.3
Lec 23 3/22 NP-Completeness, Cook-Levin Theorem Ch 7.4
9 Lec 24 3/25 More NP-Complete Problems Ch 7.5
Lec 25 3/27 The class PSPACE. Savitch's Theorem Ch 8.1, 8.2
Lec 26 3/29 Games and PSPACE-completentess Ch 8.3
10 Lec 27 4/1 The classes L and NL / NL-completeness Ch 8.4, 8.5
Lec 28 4/3 NL equals co-NL Ch 8.6
Lec 29 4/5 Hierarchy Theorems Ch 9.1
11 Lec 30 4/8 Review
Lec 31 4/10 Circuit Complexity Ch 9.3
Lec 32 4/12 More Circuit Complexity Ch 10.5
Lec 33 (David Mix Barrington) 4/17 NC1 and Barrington's Theorem
Lec 34 4/19 Probabilistic Algorithms Ch 10.2
13 Lec 35 4/22 Alternation Ch 10.3
Lec 36 4/24 Interactive Proof Systems Ch 10.4
Lec 37 4/26 Shamir's Theorem: IP=PSPACE Ch 10.4
14 Lec 38 4/29 Cryptography Ch 10.6
Lec 39 5/1 Review
Last updated:5 November 2019