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 (Dates to be updated for Spring 2009)
 Course Overview & Mechanics (3/31)
 Review notation, set theory, proof, diagonalization
 Assignments 0 and 1 are given at the first lecture
 Regular Languages 1 (4/2)
 Definition, Closure properties, nondeterminism, regular expressions
 Regular Languages 2 (4/7)
 Equivalence of regular expressions and NFAs,
 Regular Languages 3 (4/9)
 Nonregular languages, Distinguishability
 Context Free Languages 1 (4/14)
 Myhill Nerode
 Context Free Languages
 CFL 2 (4/16)
 Equivalence of PDAs/CFGs
 Pumping lemma, applications
 Turing Machines 1 (4/21)
 PL for CFLs
 Introduction to Turing machines
 ChurchTuring hypothesis
 Multitape Turing machines
 Turing Machines 2 (4/23)
 Nondeterministic Turing machines
 Language Problems
 Undecidable problems exist
 Reduction 1 (4/28)
 Reduction
 Examples of reductions
 Midterm review
 Midterm (4/30)
 Reduction 2 (5/5)
 Computation Histories
 Post correspondence problem
 Relationship to logic
 Reduction 3 (5/7)
 Rice's theorem
 Primitive Recursive functions
 Recursion Theory 1 (5/12)
 Partial Recursive functions
 Equivilence of partial recursive functions and Turing machines
 Lambda calculus
 Recursion Theory 2 (5/14)
 Fixed points and recursion
 General recursion
 Programming systems
 Recursion Theory 3 (5/19)
[Probable guest lecture]
 Pairing functions
 Smn theorem
 Recursion theorem for acceptable programming systems
 Recursion Theory 4 (5/21)
 Recursion theorem applications
 Recursion theorem corolaries (alternate formations)
 Logic: formulas, terms, sentences
 Logical theories
 Logic (5/26)
 Logic 2 (5/28)
 Representability
 Incompleteness
 Goedel's theorem
 Complexity 1 (6/2)
 Time and Space complexity
 The classes P and NP
 Ptime reduction
 Complexity 2 (6/4)
 NPcompleteness
 CookLevin theorem
 Final Exam
(6/9)
 Topics: Comprehensive, inclass exam.

