Mechanics Syllabus Assignments Supplemental
CS 581: Spring 2011

Syllabus

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:

  1. 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.
  2. Master basic proof techniques used in these results including induction, diagonalization, and reduction.
  3. Illuminate the relationship between logic and computation.

Assumptions:

  1. 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.
  2. Students are familiar with discrete mathematics, including sets, sequences, induction and elementary graph theory.

Lectures: Subject to Change

  1. Course Overview & Mechanics (3/29)
    • Review notation, set theory, proof, diagonalization
    • Assignments 0 and 1 are given at the first lecture
  2. Regular Languages 1 (3/31) [Guest lecture: Tim Sheard]
    • Definition, Closure properties, nondeterminism, regular expressions
  3. Regular Languages 2 (4/5)
    • Equivalence of regular expressions and NFAs,
  4. Regular Languages 3 (4/7)
    • Nonregular languages, Distinguishability
  5. Context Free Languages 1 (4/12)
    • Myhill Nerode
    • Context Free Languages
  6. CFL 2 (4/14)
    • Equivalence of PDAs/CFGs
    • Pumping lemma, applications
  7. Turing Machines 1 (4/19)
    • PL for CFLs
    • Introduction to Turing machines
    • Church-Turing hypothesis
    • Multi-tape Turing machines
  8. Turing Machines 2 (4/21)
    • Nondeterministic Turing machines
    • Language Problems
    • Undecidable problems exist
  9. Reduction 1 (4/26)
    • Reduction
    • Examples of reductions
    • Mid-term review
  10. Mid-term (4/28)
  11. Reduction 2 (5/3) [Probable guest lecture]
    • Computation Histories
    • Post correspondence problem
    • Relationship to logic
  12. Reduction 3 (5/5) [Probable guest lecture]
    • Rice's theorem
    • Primitive Recursive functions
  13. Recursion Theory 1 (5/10)
    • Partial Recursive functions
    • Equivilence of partial recursive functions and Turing machines
    • Lambda calculus
  14. Recursion Theory 2 (5/12)
    • Fixed points and recursion
    • General recursion
    • Programming systems
  15. Recursion Theory 3 (5/17)
    • Pairing functions
    • S-m-n theorem
    • Recursion theorem for acceptable programming systems
  16. Recursion Theory 4 (5/19)
    • Recursion theorem applications
    • Recursion theorem corolaries (alternate formations)
    • Logic: formulas, terms, sentences
    • Logical theories
  17. Logic (5/24)
    • Truth
    • Proof
  18. Logic 2 (5/26)
    • Representability
    • Incompleteness
    • Goedel's theorem
  19. Complexity 1 (5/31)
    • Time and Space complexity
    • The classes P and NP
    • P-time reduction
  20. Complexity 1 (6/2) [Lecture may be canceled]
    • NP-completeness
    • Cook-Levin theorem
  21. Final Exam (6/7)
    • Topics: Comprehensive, in-class exam. 1730 - 1920