Course Schedule
[Note: this webpage last modified Thursday, 21-Apr-2011 11:31:51 EDT]
We will cover somewhere around one third to one half of the required textbook.
This web-page will be kept up to date with the required reading to perform before
each lecture. I will also list the key concepts that we cover each week, in
particular the most important definitions and theorems.
The following gives a tentative outline of the semester, organized
by week. This webpage will be updated throughout the semester as things change.
For the key theorems/definitions, it is important for all of them that you
understand the statement of the definition/theorem. The book often has
examples that can help you understand the definitions and statements of the
theorems. For some of the theorems, it will also be important to understand
the proof; I will mark these as we cover them in the class.
Week 0 (Jan 11, 13)
- Key Theorems/Definitions: Some of the classic proofs in
math and CS: infinitude of primes, sqrt(2) is irrational, uncountability of
the real numbers, some proof by induction.
Definition of computable functions and running time
(Definition 1.3),
measurement of this as function of input length, what is input length,
Turing machines versus regular computers,
universal machine (Theorem 1.9). Uncomputable functions
(Theorems 1.10, 1.11).
- Required Reading: Appendix A (in particular A.1). Chapter 0.
open courseware
readings for weeks 1, 2, and 3, and the
asymptotics part of the reading for week 8. Sections 1.1, 1.2, Definition
1.3. Sections 1.4, 1.5.
-
Just for fun: video
(click on "Part 2") and
powerpoint
slides for rousing talk by Scott Aaronson about "the future of CS".
Week 1 (Jan 18, 20)
- Key Theorems/Definitions: Definition for P and NP
(Definitions 1.13, 2.1), examples of
problems that are in P, problems that are in NP. Hierarchy theorems for
P and NP (Theorems 3.1, 3.2, 4.8, 6.22).
Reinforce input length issue with factoring example.
Problems that are in P: all regular languages, all CFG's, sorting, shortest
path, minimum spanning tree, ...
Reinforce difference between solving a problem on some particular instance and
solving the problem on all possible instances. Also, that running time
is worst-case running time and not just running time on some particular
input - a good example is problem 4 from hw0.
- Required Reading: Sections 1.6, 2.1, 3.1, 3.2.
Week 2 (Jan 25, 27)
- Key Theorems/Definitions: NP-completeness (Definition
2.7). Various and sundry
NP-complete problems (Theorems 2.9, 2.10, 2.16, ..., Exercises
2.15, 2.16, ...).
Emphasize difference between "not in P" and
NP-complete. P versus NP problem. Search versus decision
problems (Theorem 2.18).
- Required Reading: Sections 2.2, 2.3, 2.4, 2.5, 2.7.
Week 3 (Feb 1, 3)
- Key Theorems/Definitions: NP-completeness proofs and
undecidability proofs. See the hw2 page for which ones are being covered.
For Feb 1, all students should be prepared to present their
NP-completeness proof.
- Required Reading: Students should provide a link to their
source for the proofs. Those will be posted on the
hw2 page.
Week 4 (Feb 8, 10)
- Key Theorems/Definitions: Problems that are "even easier" than
P - space-bounded (Definition 4.1), NC circuits (Definitions 6.1, 6.27),
regular expressions, CFG's, ...
Fact that NL=coNL (Theorem 4.20), whereas we think NP!= coNP.
PATH is NL-complete (Theorem 4.18).
- Required Reading: Sections 4.1, 4.3, 6.7
(background in sections 6.1, 6.2 as needed)
Week 5 (Feb 15, 17)
- Key Theorems/Definitions: Problems that are "likely even harder"
than NP - PH (Definitions 5.1, 5.3, Exercise 2.33), #P (Definition 17.5),
PSPACE (Theorem 4.13 TQBF is PSPACE-complete),
EXP. Fact that NPSPACE=PSPACE (Theorem 4.14), wherease we
think P!=NP. If P=NP then EXP=NEXP (Theorem 2.22).
- Required Reading: Section 2.6, 4.2, 5.1, 5.2, 17.1, 17.2.
Week 6 (Feb 22, 24)
- Key Theorems/Definitions: What can we do with NP-complete problems --
approximation algorithm (Definition 11.1, Examples 11.2, 11.3),
parameterized complexity (fixed-parameter tractable algorithm for
vertex cover, see for example
these lecture notes from MIT), approximation algorithm for
metric TSP (see topic 9 on Approximation Algorithms from
these
lecture ntoes), solving sub-cases of problems
(e.g. independent set on a tree in section 10.2 in
Algorithm Design by Kleinberg and
Tardos), approximation algorithm for vertex cover using
linear programming (see topic 10 on LP relaxation, rounding from
these
lecture ntoes), average-case complexity.
- Required Reading: Section 11.1.
Week 7 (Mar 1, 3)
- Key Theorems/Definitions: Alternative stand-in for P as "efficiently
computable" - randomized algorithms (BPP, RP, ZPP) (Definitions 7.2, 7.3,
7.6, 7.7).
Examples of
randomized algorithms and error-reduction (Lemma 7.9, Theorem 7.10, Exercise
7.4).
Basics of probability theory.
- Required Reading:
Sections 7.1, 7.2, 7.3, 7.4.
open courseware
readings for weeks 9, 10, 12, 13.
Week 8 (Mar 15, 17)
- Key Theorems/Definitions: More on randomized algorithms, some of
them approximation algorithms for hard problems. More basics of
probability theory. Randomized algorithm for approximating 3-SAT (Exercise
11.3). Examples of using probability: birthday problem, Monty hall
3-door problem, BPP in P/poly, BPP in Sigma2, randomized algorithm
for max-3sat (with 7/8 approximation ratio), randomized
algorithm for min-cut (see Topic 6 from
these
lecture notes), randomized algorithm for median-finding
(see these lecture notes).
- Required Reading: Sections 7.5, 7.7.
Week 9 (Mar 22, 24)
- Key Theorems/Definitions: What if there are hard languages? What
can we do with them? One-way functions (Definition 9.4) -
weak and strong one-way functions,
hard-core predicate. If P=NP then no one-way functions. If
P=NP then no cryptography (Lemma 9.2).
Important point - many of the arguments are much easier when dealing with
randomized algorithms, and we don't know how to make them work for
deterministic algorithms - that is one motivation for looking at randomized
algorithms. Theorems 9.11, 9.12, 9.13.
- Required Reading: Sections 9.1, 9.2, 9.3.
Week 10 (Mar 29, 31)
- Key Theorems/Definitions: Using one-way functions for: PRG's
(Definition 9.8, Theorem 9.9),
pseudorandom functions (Definition 9.16, Theorem 9.17),
bit-committment, private-key encryption (Theorem 9.6),
zero-knowledge (Definition 9.14, Example 9.15), secure multi-party
computation. Fact that
each of those almost trivially implies one-way functions. Examples of
these.
- Required Reading: Sections 9.4, 9.5.
Week 11 (Apr 5, 7)
- Key Theorems/Definitions: Special-purpose PRG's - t-wise
independent, small-bias, use of that for derandomized algorithms
(Exercise 11.4).
- Required Reading:
Week 12 (Apr 12, 14)
- Key Theorems/Definitions: Quantum algorithms (Definitions
10.6, 10.9) - Grover's search algorithm (Theorem 10.13),
Shor's factoring algorithm (Theorem 10.15). BPP is in BQP (Corollary 10.11).
BQP is in PSPACE (Theorem 10.23).
- Required Reading: Sections 10.1, 10.2, 10.3, 10.4, 10.6, 10.7.
Week 13 (Apr 19, 21)
- Key Theorems/Definitions: Other complexity measures - decision
tree/query complexity (Definition 12.1), communication complexity
(Definition 13.1, deterministic lower bound of n for equality,
randomized equality testing with O(log n) bits using fingerprinting).
Existence proofs and probabilitist method
- most functions have high communication complexity,
most functions require large circuits, most strings are
"uncompressible", ...
- Required Reading: Sections 12.1, 13.1.
Week 14 (Apr 26, 28)
- Key Theorems/Definitions: Mention hardness of approximation
results (Theorem 11.9, Corollary 11.10, Theorems 11.15)
- Required Reading: Sections 11.2, 11.4.
Final Exam Slot
Tuesday, May 3 3:00-5:00pm. We will have some of the final project
presentations.