CS 584: Theory of Computation and Computational Complexity - Spring 2005


Professor

Gopal Pandurangan (gopal@cs.purdue.edu)
Office: CS 128
Office hours: by appointment

Lectures

M,W,F; 1.30-2.20pm; SMTH 201

Teaching Assistant

Deepak Bobbarjung (drb@cs.purdue.edu)
Office: CSG64
Office hours: Mon, Wed 12.25pm - 1.25 pm

About this course

Welcome to the theory world!! This is a graduate-level course on theory of computation. The official (undergraduate) prerequisite is CS483 (Introduction to Theory of Computation). (Note: If you have not taken this prerequisite or its equivalent, you cannot take this course.)

Topics

  • Introduction: Problems and Algorithms
  • Turing Machines
  • Computability
  • Logic: Boolean, First-Order, Undecidability
  • Time and Space Complexity Classes; P and NP
  • Reductions and Completeness
  • Randomized Computation and Complexity
  • Approximation Algorithms and Approximability
  • Cryptography
  • More ...

    Textbook

    Computational Complexity by Papadimitriou.

    Grading

    There will be 4 or 5 homework assignments. (The assignments have to be done in Latex. If you are not familiar with Latex please learn as soon as possible. This is quite easy: there are tutorials on the Web and we will also provide you with a template file to get started.) Assignments will be non-collaborative i.e., you should work independently. You should refer only to the textbook, class notes, and any handouts given in class. Cheating on the non-collaborative policy of the assignments or on the exams will be taken seriously.
    There will also be a midterm and a final (with a Ph.D. qualifying exam supplement). The (tentative) split up is:
    assignments: 20%
    midterm:40%
    final: 40%

    Lecture Notes

    Lecture 1: 1.pdf
    Lecture 2: 2.pdf
    Lecture 3: 3.pdf
    Lecture 4: 4.pdf
    Lecture 5: 5.pdf
    Lecture 6: 6.pdf
    Lecture 7: 7.pdf
    Lecture 8: 8.pdf
    Lecture 9: 9.pdf
    Lecture 10: 10.pdf
    Lecture 11: 11.pdf
    Lecture 12: 12.pdf
    Lecture 13: 13.pdf
    Lecture 14: 14.pdf
    Lecture 15: 15.pdf
    Lecture 16: 16.pdf
    Lecture 17: 17.pdf
    Lecture 18: 18.pdf
    Lecture 19: 19.pdf
    Lecture 20: 20.pdf
    Lecture 21: 21.pdf
    Lecture 22: 22.pdf
    Lecture 23: 23.pdf
    Lecture 24: 24.pdf
    Lecture 25: 25.pdf
    Lecture 26: 26.pdf
    Lecture 27: 27.pdf
    Lecture 28: 28.pdf
    Lecture 29: 29.pdf
    Lecture 30: 30.pdf
    Lecture 31: 31.pdf
    Lecture 32: 32.pdf
    Lecture 33: 33.pdf
    Lecture 34: 34.pdf
    Lecture 35: 35.pdf
    Lecture 36: 36.pdf

    WebCT

    We will use WebCT to turn in assignments.

    Newsgroup

    We plan to use the purdue.class.cs584 newsgroup ( on the server news.purdue.edu) for announcements and other postings. You should subscribe to this newsgroup and check it regularly. Send all general questions (such as clarifications regarding assignments etc.) to this newsgroup.