CSC363H Standard Course Description

Computational Complexity and Computability


Owner

Francois Pitt fpitt@cs.toronto.edu

Course Description

Introduction to the theory of computability: Turing machines, Church's thesis, computable and noncomputable functions, recursive and recursively enumerable sets, many-one reducibility. Introduction to complexity theory: models of computation, P, NP, polynomial time reducibility, NP-completeness, heuristics and approximation algorithms, lower bounds.

Background

The first section of the "old" course (on efficient algorithm design) has been expanded and merged with sections from CSC270H into a new second-year course, CSC263H/265H. The rest of the "old" course has been expanded to move at a somewhat slower pace with more examples and include a discussion of lower bounds (which used to be in CSC378H) and a new section on methods for dealing with NP-complete problems (i.e. heuristics and approximation algorithms).

Prerequisistes

Exclusions

Follow-On Courses

Learning Objectives

Topics (not necessarily in this order)

Suggested Texts

  1. REQUIRED

    Introduction to the Theory of Computation
    Michael Sipser, PWS Publishing Company, 1997
    ISBN 0-534-94728-X

Sample Evaluation

type weight description
assignments 40% 4-5 assignments
midterm tests 15-20% 1-2 tests
final exam 40-45%