**Basic Information**

**Lectures**: MWF 11:15 - 12:05, Goessman Lab 20**Instructor**: Marius Minea (marius at cs), office: LGRC A261, office hours: Tue 3-4 pm**TA**: Rik Sengupta (rsengupta at cs), office hours: Wed 6-7:30 pm, LGRT 220**Graders**: Deeksha Razdan, Gourav Saha**Piazza**page

**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.

**Textbook** (required): Michael Sipser, Introduction to the Theory of Computation, second or third edition.

**Homework**

- Homework 1 (LaTeX). Released 1/26/2019, due 2/7/2019, 11:59pm
- Homework 2 (LaTeX). Released 2/12/2019, due 2/22/2019, 11:59pm
- Homework 3 (LaTeX). Released 2/25/2019, due 3/7/2019, 11:59pm
- Homework 4 (LaTeX). Released 3/8/2019, due 3/28/2019, 11:59pm

**Grading:**

- Homework and quizzes: 40% (6 homeworks for 6% each, 4% for Moodle quizzes)
- Midterm 1: 20% (Thu Feb 21, 7-9pm, ILC S131)
- Midterm 2: 20% (Wed Apr 10, 7-9pm, ILC S131)
- Final: 20% (Thu May 9, 10:30-12:30, Goessmann 20)

**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 | (Monday 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 | 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 | Circuit Complexity | 9.3 |

Lec 31 | 4/10 | More Circuit Complexity | 10.5 | |

Lec 32 | 4/12 | Barrington's Theorem | ||

12 | Lec 33 | 4/17 | Parallel Computation | 10.5 |

Lec 34 | 4/19 | Probabilistic Algorithms | 10.2 | |

13 | Lec 35 | 4/22 | Alternation | 10.3 |

Lec 36 | 4/24 | Interactive Proof Systems | 10.4 | |

Lec 37 | 4/26 | Shamir's Theorem: IP=PSPACE | 10.4 | |

14 | Lec 38 | 4/29 | Cryptography/TBD | 10.6 |

Lec 39 | 5/1 | Review |

Last updated: 23 January 2019