CSC 364H1Y: Computational Complexity and Computability
Wednesday Section L5201 - Summer Session 2002

Instructor: Richard Krueger
email: krueger@cs.toronto.edu (or krueger@cdf)
phone: DCS Main Office at 978-6025 and leave message (for emergencies only)
Lectures: Wednesdays 6pm-8pm in BL 205
Tutorials: Wednesdays 8pm-9pm (please attend the tutorial session to which you are assigned)
BL 114   Spyros Angelopoulos   (last names A to G) (new room)
RW 142   Ying Zhu   (last names H to M)
RW 229   Babak Farzad / William Andreopoulos   (last names N to Z)
Office hours: by appointment, or either
Mondays 5pm-6pm in SF 2110 with TA (except holidays), or
Thursdays 1pm-2pm in SF 2110 with instructor
Newsgroup: ut.cdf.csc364h
Note: This is not the webpage for the Tuesday night section (L5101). For that section, please follow this link.

Final Announcement: I hope everyone enjoyed the course. I wish everyone a good year this fall. Any remaining unreturned work (including regrades) is available from me in SF3213 (please do not bother my officemates, they do not know where I am, when I'll be back, or where I am storing your work for return). Once the CSSU is set up, I will be giving any remaining items to them.

Students should consult this page at least once a week for important information.


Course Description

General techniques for efficient algorithm design: greedy algorithms, dynamic programming; other topics may include network flow, linear programming, randomized algorithms. Introduction to complexity theory: models of computation, the classes P and NP, polynomial time reducibility and NP-completeness, provably hard problems. Introduction to the theory of computability: Church's thesis, computable and noncomputable functions, reductions, the analogies between complexity and computability theory.
Prerequisite: CSC238H1/(MAT246Y1/247H1, plus some knowledge of programming); CGPA 3.0/enrolment in a CSC subject POSt

Course Organization

More information relevant to this incarnation of the course is available in the course outline. There are main three topics to this course.

This is basically the order in which the topics will be covered. Each section will roughly compose a third of the course, each taking about 4 weeks to cover.

Homework: Each week a number of problems will be assigned relating to the course material. You will be expected to complete some of the problems to be handed in and graded. These problems will compose three assignments throughout the term. Some problems will be assigned yet not form part of the assignments. You are encouraged to work on these problems and solve them, as they will further your understanding of the material (and may appear on quizzes!).

Quizzes: Occasionally quizzes will be held in the tutorial session. One (or a few) of these weekly assigned problems, or a closely related problem, will be asked. The quizzes will be closed book and presume you know how to solve the assigned problems.

Grading: Most of the problems in this course will involve proofs or counterexamples. Answers must be concise, clear, well thought out and presented neatly to obtain full marks. Up to 25% will be deducted for overly long, rambling, sloppy or unclear answers, at the grader's discretion.

Fifth Rule: In mathematics it is important to know both how to solve problems and when one does not know how to solve a given problem. Hence incorrect answers may be given zero credit, whereas if you recognize that you cannot solve a problem and state only this, you will be given one fifth (20%) credit on the problem. In other words, a wrong answer will earn zero marks, but an answer of "I don't know the answer" will earn 1/5 marks.

Policy on Lateness, Absence and Extensions: Late assignments will generally not be accepted. In the case of a missed quiz or test, a mark of zero will be recorded. No make-up quiz or test will be provided. Only in exceptional circumstances will requests for extensions for assignment deadlines or excuses for missed tests be entertained. Any such request must be presented to the course instructor (not a TA) with all supporting documentation as soon as possible. The sole remedy available in exceptional circumstances for missed tests is redistribution of its weight to other components.

Textbooks

Required: Cormen, Leiserson, Rivest and Stein. Introduction to Algorithms (2nd edition)
This text (CLRS) is also used in CSC378. The most relevant chapters are 3,15,16,25,26,34. It does not cover all the complexity and computability material we require. Regardless, any computer scientist should have a good book on algorithms. It should serve as a valuable reference throughout your career.

Recommended: M. Sipser. Introduction to the Theory of Computation
The most relevant chapters are 0,3,4,5,7,8. This text (Sipser) covers only computability and complexity.

Optional: Garey and Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness
The introductory chapters 1,2,3 are especially relevant. This is a classic book, deserving a spot on any bookshelf.

There are several notes composed by previous instructors of this course. They will serve as a valuable, concise reference. They will be updated during the term as we cover the material, so only print out the current pieces.

Marking Scheme

ComponentTotal Weight
3 Homework Assignments (4% each) 12%
4 Quizzes in tutorial (4% each) 16%
2 Midterm Tests (16% each) 32%
1 Final Exam 40%

Important Dates

Week ofAnticipated Lecture Topics EventsReadings
May 15 Introduction to computation and Turing machines
Review of polynomials, asymptotic notation, space/time complexity
First lecture. First tutorial.
No Monday office hour
CLRS: 3
Sipser: 0, 3.1
May 22 Introduction to decision problems and languages
Other models of computation, decidable vs. recognizable languages
Monday office hour cancelled (Victoria Day) Sipser: 3.2-3.3
May 29 Church-Turing Thesis, Nondeterminism, Goedel's theorem Quiz #1 in tutorial session Sipser: 4
June 5 Universality, non-computability, diagonalization, reductions Sipser: 5
June 12 Efficiency of algorithms, greedy algorithms Quiz #2 in tutorial session
Assignment #1 due (Thursday 6pm)
CLRS: 16
June 19 The divide & conquer technique Test #1 in lecture/tutorial CLRS: 2.3, 33.4
June 26 Dynamic programming CLRS: 15
July 3 Flows and cuts, linear programming Monday office hour cancelled (Canada Day) CLRS: 26.1-26.3,
CLRS: 29.1-29.3
July 10 Hard problems, classes of P and NP, efficiency vs. tractability Quiz #3 in tutorial
Assignment #2 due (Thursday 6pm)
Sipser: 7.1-7.3
July 17 Reductions and reducibility Test #2 in lecture/tutorial
Last day to withdraw without penalty July 21
CLRS: 34.1-34.3
July 24 Cook's theorem and NP-completeness CLRS: 34.3
Sipser: 7.4
July 31 Guest lecturer!
More NP-complete problems, related classes (co-NP, poly heirarchy)
Quiz #4 in tutorial
Assignment #3 due (Thursday 6pm)
CLRS: 34.4-34.5
Sipser:7.5
August 7 Dealing with hard problems, randomization, approximation Monday office hour cancelled (Civic Holiday)
Last day of class. Last tutorial.
CLRS: 35
August 12-16 Final Exam week -- see Faculty for date and time
Good luck!

Policy on Collaboration

You are expected to work on each problem on your own and present your own solution. You may use the textbooks, notes, lectures, instructors, tutors and classmates to help you find general strategies to solve the problems, but you may not go out and find complete solutions to the problems. You may discuss the strategies to solve these problems with your fellow students, but you may not discuss complete solutions. You cannot take written notes or solutions away from a discussion with another student. Using other people's work or solutions, whether cited or not, is considered plagiarism and carries stiff academic penalties. If you are unsure whether an activity may constitute plagiarism or undue collaboration, consult the instructor immediately. You are encouraged to review the University of Toronto Code of Behaviour on Academic Matters.

Another instructor explains Academic Honesty very well here. I encourage you to read it.

Assigned Questions

Assignments are due by 6pm on the Thursday due date in the CSC 364 drop box on 2nd floor of Sandford Flemming Building. Assignments may also be turned in to the instructor at lecture preceeding the due date. Late assignments will not be accepted in the drop box.

Every assignment must include this cover page (PS) (PDF) as the first page of your assignment. Be sure to completely fill in and sign this page before submitting. Assignments should be stapled securely: do not submit within an envelope, binder or folder, or bound with paper-clips, string, or any origami technique. Remember you should only hand in the questions indicated by a star *.

Any requests for remarking must be submitted in writing using this remarking form (PS) (PDF), with the complete original marked assignment, quiz or test. The deadline for remarking is two weeks following the return of the marked paper. Note that a remark may result in changes to marks assigned on other questions, and could possibly lower your total mark. If the remarking is not satisfactory, it must be presented in entirety to the instructor within one week of the date of the remark. All mark appeals on term work and tests must be submitted before the final exam is held.


Copyright © Richard Krueger
All rights reserved.