COMS 4236: Introduction to Computational Complexity

Spring 2012

Course Information



Instructor: 


Teaching Assistant:


Lectures:     


Prerequisites

The main prerequisite course is COMS 3261 or equivalent. A course in algorithms at the level of  COMS 3137 or 3139 or COMS 4231 is also helpful.

Textbook

The required textbook is Computational Complexity by Christos Papadimitriou. The book is available from the Book Culture bookstore, as well as online booksellers (Amazon, Barnes and Noble etc.) . Errata for the textbook can be found here.

There is a number of other good books that can be used for supplementary reading on some of the topics. The book Computational Complexity: A Modern Approach by Sanjeev Arora and Boaz Barak is a more advanced (and more extensive) textbook. Two good books that cover part of the material at a more introductory level are  Introduction to the Theory of Computation by Michael Sipser, and Introduction to Automata Theory, Languages and Computation by John Hopcroft, Rajeev Motwani and Jeffrey Ullman. The book Computers and Intractability: A Guide to the Theory of NP-completeness, by Michael Garey and David Johnson is the classic reference on NP-completeness.

Course Description

One goal of complexity theory is to characterize the inherent difficulty of computational problems in terms of the resources (eg. time, space etc.) needed to solve them. For some problems (such as multiplying two numbers, or finding the shortest path connecting two nodes in a graph) we have efficient algorithms that can solve very large instances, while for other problems (such as factoring a number, or finding the shortest path that visits all the nodes of a graph) no such efficient algorithms are known, and we can only feasibly solve much smaller instances. A rich, comprehensive theory of computational complexity has been developed to understand the difficulty of problems and classify them with respect to their resource requirements. A central element of the theory is that problems are not studied only in isolation, but also as they relate to each other; the key notions of reduction and completeness play a central role in this regard.

A second goal of complexity theory is to understand the power and limitations of different modes and paradigms of computation, such as randomization, nondeterminism, parallelism, communication etc.

In this course we will study basic concepts and results of complexity theory. Topics include the following:

Class Information

Class announcements, including homeworks and handouts will be posted on courseworks. Please make sure to visit it frequently.

Class Mechanics and Grading

The format of the course will consist of lectures and homeworks. You are strongly encouraged to attend the lectures and participate actively. Besides the homework assignments, there will be a final exam. There will be no programming projects or assignments. The grading will be based on the homeworks (60%), and the final (40%).

Homeworks

Homeworks will be assigned approximately every two weeks and will be posted on the courseworks website. Typically they will be due two weeks later in class before the lecture starts. Late homeworks will be penalized at the rate of 15% per late day or part thereof (i.e. fractions of a day are rounded up). Exceptions will be made only for exceptional unforseen circumstances (eg. serious illness).
The homework with the lowest score will not count in the grade.

Homeworks will consist of a mix of easier and more challenging problems. It is recommended that you start early working on the problems. You are encouraged to ask questions in a timely fashion and make effective use of the office hours of the teaching staff. 

In writing up your assignments, it is important to be as clear, precise and succinct as possible. Understundability will be an important factor in the grading of the assignments.

You are permitted to discuss the homework assignments. If  you do collaborate, you must still write the solutions individually (without looking at anybody else's solutions), and acknowledge anyone with whom you have discussed the problems. It will be considered an honor code violation to consult solutions from previous years, from the web or elsewhere, in the event that homework problems have been previously assigned or solutions are available elsewhere.

The CS department web page http://www.cs.columbia.edu/education/honesty  lists the department's academic honesty policies. All students are expected to abide by these policies.