CS 581: Theory of Computation
3 credits
Text:
Sipser, Michael, Introduction to the Theory of Computation, second edition, PWS, 2005.
(The first edition is now out of print.)
Course Objectives:
 Introduce students to the classic results in theoretical computer science that classify problems according to the machines that can solve them and the resources required by those machines. This includes basic results relating to computable functions, decidability, and complexity theory.
 Master basic proof techniques used in these results including induction, diagonalization, and reduction.
 Illuminate the relationship between logic and computation.
Assumptions:
 Students have been exposed to the concepts of regular expressions, context free grammars, and programming in a general purpose language. They have applied these concepts to solve problems such as lexical analysis, parsing, and code generation.
 Students are familiar with discrete mathematics, including sets, sequences, induction and elementary graph theory.
Lectures: Subject to Change
 Course Overview & Mechanics (4/3)
 Review notation, set theory, proof, diagonalization
 Assignments 0 and 1 are given at the first lecture
 Review Finite Automata (4/5)
 Definition, Closure properties, nondeterminism, regular expressions
 Key Results for Finite Automata (4/10)
 Equivalence of regular expressions and NFAs, Nonregular languages
 Review Context Free Languages (4/12)
 Context Free Grammars, PDAs
 Noncontext free languages (4/17)
 Equivalence of PDAs/CFGs, Pumping lemma, applications
 ChurchTuring Hypothesis (4/19)
 Introduction to Turing machines
 ChurchTuring hypothesis
 Nondeterminism (4/24)
 Multitape Turing machines
 Nondeterministic Turing machines
 The Halting Problem (4/26)
 Decidability, the Halting problem
 Reducibility (5/1)
 Undecidable problems from language theory
 Rice's Theorem (5/3)
 Post Correspondence problem
 Mapping reducibility, Rice's theorem
 Midterm review
 Midterm exam (5/8)
 Guest Lecture on Lambda Calculus (Tim Sheard) (5/10)
 Substitution and the Beta rule
 Calculating with Church Numerals
 Reading:
 Time Complexity (5/15)
 Time complexity, P, NP
 Reading: Sections 7.1, 7.2, 7.3
 NP Completeness (5/17)
 NP Complete Problems (5/22)
 Recursion theory (5/24)
 Primitive recursive functions
 Partial recursive functions
 Kleene's Tpredicate
 ChurchTuring Hypothesis revisited (5/29)
 Acceptable computation systems (5/31)
 What defines an acceptable computation system
 Smn theorem
 Recursion theorem
 Logic & Computability (6/5)
 Incompleteness
 Goedel's theorem
 Review (6/7)
 Final Exam (6/12)
 Topics: Comprehensive, inclass exam.

