[Note: this webpage last modified Friday, 04-Feb-2011 19:44:51 EST]
We will cover probably about half of the content in the required textbook (though not necessary the first half of the book). This web-page will be kept up to date with the required reading to perform before each lecture. I will also list practice exercises that you can work through to test your knowledge, as well as the key concepts that should be learned from the reading. And this page will include links to supplementary reading material that is not required but can be consulted for those interested in getting more information.
The following table gives a tentative outline of the semester, organized roughly by week. Below the outline are the details for each lecture. Each of these will be updated throughout the semester as things change.
Course Introduction | August 25 |
P and NP | August 27 August 30, September 1, September 3 September 8, September 10 September 13, September 15, September 17 September 20, September 22 |
1st exam (sample exam/solutions) | September 24 |
Randomized algorithms, pseudorandom generators |
September 27, September 29, October 1 October 4, October 6, October 8 October 11, October 13 October 18, October 20, October 22 (project proposal) October 25, October 27, October 29 |
2nd exam (sample exam, solutions) | November 3 |
Cryptography, zero-knowledge, quantum computing |
November 1, November 5 November 8, November 10, November 12 November 15, November 17, November 19 (project midpoint) November 22 November 29, December 1 |
3rd exam (sample exam) | December 3 |
Final project presentations |
December 6, December 8,
December 10 exam slot |
Required Reading: none
Supplemental, Optional Reading:
Reference material for the entire semester:
Computational
Complexity: A Modern Approach by Arora and Barak. A draft of the
text is online. This book covers all of the material that we will cover
and much more. It is aimed at theory of computing researchers, but is a
good supplementary reference.
Reference material for the entire semester:
Lecture Notes for the graduate theory of computing course at
University of Wisconsin-Madison, taught by Dieter van Melkebeek.
This course is aimed at theory of computing researchers, but the lecture
notes are a good reference for us as well.
Just for fun: video
(click on "Part 2") and
powerpoint
slides for rousing talk by Scott Aaronson about "the future of CS".
Just for fun: a
blog post
and a news article about the
recent stir over recent claimed proof that P!=NP. Challenge: identify the mistakes in the
news article...
Key Definitions/Theorems: none
Key Concepts:
What we did in class today.
Required Reading: none, work on the homework!
Supplemental, Optional Reading: Sections 1.1.1 - 1.1.4
Key Definitions/Theorems:
Key Concepts: review the prereq exam,
overview of topics we will cover in the course and
how it all fits together
What we will do/did in class today.
Required Reading: Sections 1.1.5, 1.2 up through 1.2.3.3 uncomputable
functions
Supplemental, Optional Reading: Sections 1.1.1 - 1.1.4
Key Definitions/Theorems: Thm 1.4 (there exist undecidable
problems)
Key Concepts: Equivalence of different computational models,
uncomputable functions, reductions (a.k.a. subroutines)
What we will do/did in class today.
Required Reading: Sections 1.2.3.5, 2.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Thm 2.6 (equivalence of search and
decision problems in terms of P vs. NP problem), Defns. 2.4 (P), 2.5 (NP),
Thm 1.5 (Halting problem undecidable)
Key Concepts: time and space complexity definitions, definitions of
P and NP, problems in P and NP, difference between decision and
search problems/functions
What we will do/did in class today.
Required Reading: Sections 2.2.1.1, 2.3.1, 2.3.2
Supplemental, Optional Reading:
Key Definitions/Theorems: Def 2.9 (which depends on Def 1.11),
Def 2.17 (NP-completeness, which depends on Def 2.11), Thm 2.19
(NP-completeness of "encoding/universal machine/verifier" problem)
Key Concepts: NP-completeness, reductions, NP-complete problems
What we will do/did in class today.
Required Reading: 2.3.3
Supplemental, Optional Reading: Sections 2.4.2, 2.4.3,
Section 1.2.4.1
Key Definitions/Theorems: Prop 2.20 (transitivity of reductions)
Thm 2.21 (NP-completenss of circuit-sat), definition
of Boolean circuits in section 1.2.4.1
Key Concepts: NP-completeness of circuit satisfiability, circuits as an
alternative "model of computation"
What we will do/did in class today.
Required Reading: continuation of previous lecture's reading
Supplemental, Optional Reading:
Key Definitions/Theorems: Thm. 2.22 (NP-completeness of
SAT, which depends on
Prop. 2.20), Prop. 2.27 (NP-completeness of 3-coloring)
Key Concepts: NP-completeness of SAT, 3SAT, and 3Coloring, and
how this is accomplished
What we will do/did in class today.
Required Reading: Sections 4.2, 4.3
Supplemental, Optional Reading: Sections 3.1, 4.1
Key Definitions/Theorems: Prop. 2.24 (NP-completeness of
set cover), Thm 4.3 / Cor 4.4 (Dtime hierarchy), Thm 4.5 (can't speed up
simulation of universal machine),
maybe Thm. 4.9 (memory space hierarchy)
Key Concepts: hierarchy theorems (their statements and proofs),
a known computationally hard problem (thm 4.5), relation between P,
NP, and EXP
What we will do/did in class today.
Required Reading: continuation of previous lecture
Supplemental, Optional Reading:
Key Definitions/Theorems: Thm 4.6 (Ntime hierarchy)
Key Concepts: difference between coNP and NP, fact that NP is
probably not closed under complement, delayed diagonalization to prove
hierarchy theorem for NP-type algorithms
What we will do/did in class today.
Required Reading: Section 5.1 up until Thm 5.3, Section 5.4
Supplemental, Optional Reading:
Key Definitions/Theorems: Thm 5.3 (space s is contained in
time exp in s), Thm 5.15 (QBF is PSPACE-complete)
Key Concepts: defintion of space complexity and relation to
time complexity (PSPACE is in EXP), PSPACE, a complete problem
for PSPACE
Required Reading: No new reading, finish QBF is PSPACE-complete
Supplemental, Optional Reading:
Key Definitions/Theorems: Thm 5.15 (QBF is PSPACE-complete)
Other Miscellaneous: other results I will mention that you are
not responsible for on the test: PSPACE=NPSPACE (Thm. 5.12), NL=coNL (Thm.
5.14), NP-intermediate problems (Thm. 2.28), oracles relative to
which P=NP and P!=NP, the class L
Required Reading: none, work on NP-completeness/PSPACE-completeness
presentations
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts: NP-completeness/PSPACE-completeness proofs,
questions about exam, some miscellaneous cool stuff...
1st exam
Required Reading: for reference, section A.2 of
Arora and Barak appendices
Supplemental, Optional Reading:
Key Definitions/Theorems: review of basic probability
Key Concepts:
random variable, expectation, conditional probability,
Monty Hall 3-door problem, birthday paradox,
independent random variables and product rule for those,
linearity of expectation
Required Reading: Section 6.1.2.2,
randomized
algorithm on wikipedia (in particular the part similar to the
first algorithm we did in class),
sections 1 and 2 of
randomized selection course notes (a PS file, you
can get ghostscript and gsview to view this on Windows)
Supplemental, Optional Reading:
Key Definitions/Theorems: Prop. 6.5 (randomized algorithm for
primality),
Key Concepts: randomized algorithm for finding a 1 in a string that
has half 1's (randomness and allowing ourselves to make an error with
small probability gives a big gain in efficiency),
randomized selection (e.g, median finding) where there is a deterministic
algorithm almost as efficient though not quite as simple,
Markov's inequality
Required Reading: Sections 6.1.2, 6.1.4
Supplemental, Optional Reading:
Key Definitions/Theorems: Definitions 6.2 (BPP), 6.6 (RP),
Theorem 6.10 (ZPP = RP intersect coRP), Exercises 6.4 (error reduction
for BPP), 6.5 (error reduction for RP), and 6.6 (error reduction for ZPP)
Key Concepts: definitions of randomized complexity classes, reducing
error rate, Markov's inequality, Chernoff bound
Required Reading: Section 6.1.3.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Construction 6.7/Lm 6.8/Exercise 6.17
(randomized algorithm for polynomial identity testing)
Key Concepts: another randomized algorithm, finite field (e.g., integer
arithmetic mod a prime), "low-degree" polynomials have a small number of roots
Required Reading: To be determined
Supplemental, Optional Reading:
Key Definitions/Theorems: another randomized algorithm,
to be determined (perhaps a randomized approximation algorithm)
Key Concepts:
Required Reading: none
Supplemental, Optional Reading:
Key Definitions/Theorems: review of randomized
algorithms
Key Concepts:
Required Reading: Section 8.3.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Definition 8.14 (PRG for derandomizing
BPP), Theorem 8.16 (strong enough PRG implies BPP=P),
Key Concepts: pseudorandom generator, derandomization
No class today, Jeff is out of town, work on your projects and HW8.
Required Reading: Section 8.3.2
Supplemental, Optional Reading:
Key Definitions/Theorems: Construction 8.17 (Nisan-Wigderson
PRG), Theorems 8.18, 8.19 (proof that NW is a strong enough PRG to
show P=BPP if "hard enough" functions exist)
Key Concepts:
Required Reading: Continuation of previous
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts: continuation of previous lecture, student presentation of
"computing the average while maintaining secrecy"
Project proposals are due and will be presented during class.
Required Reading: Section 8.5.1, up through
Section 1.3 of these lecture notes, also
these
lecture notes
Supplemental, Optional Reading:
Key Definitions/Theorems: Proposition 8.24
Key Concepts: PRG when pairwise independence is enough, lesson - in
some situations, we do have PRGs, randomized algorithm for MaxSAT and
derandomization of that, student presentation of quicksort
Required Reading: Finishing up previous material
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts: finish up previous material
Administrative: Exam, Sample Exam, HW's 8, 9, HW 10?, drop deadline Nov 2
Required Reading: to be determined
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts: reviewing previous material
Required Reading: Section 7.1.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Definition 7.1, Proposition 7.2
Key Concepts: one way functions, using one-way functions to generate
solved instances of hard problems, note that there are no one-way functions
(or cryptography) if P=NP, things implied by one-way functions that
we might cover include ("general purpose" PRGs, private key encryption,
message authentication, bit commitment, zero-knowledge proofs),
student presentation of randomized algorithm for min-cut
Administrative: exam on Wednesday, work on your projects...
2nd exam
Required Reading: Section 7.1.2
Supplemental, Optional Reading:
Key Definitions/Theorems: Definition 7.4, Theorem 7.5
Key Concepts: weak one-way functions, amplifying hardness of
one-way functions, student presentation of
randomized algorithm for matrix product verification
Administrative: Exam2 not yet graded, HW10, course scheduling (first year
students: take 558 before taking 658)
Required Reading: Section 7.1.3
Supplemental, Optional Reading:
Key Definitions/Theorems: Definition 7.6, Theorem 7.7,
Key Concepts: hard-core predicate, proof that one-way function implies
a hard-core predicate (only the first "warmup" part of the proof where we assume the
hard-core predicate is broken with probability > 3/4+epsilon),
student presentation of fingerprinting algorithm
Administrative: Exam2 still not yet graded, HW10
Required Reading: Sections 8.2.4, 8.2.5.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Construction 8.7, Propositions 8.8, 8.9,
Theorem 8.10
P
Key Concepts: construction of a pseudorandom generator from any
1-1 length preserving one-way function
Administrative: Exam2 graded, HW10, HW11, projects
Required Reading: none
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts: catching up
Administrative: HW11, project
Required Reading: none
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts:
Finished up from other lectures:proof that weak OWF implies
strong OWF, that if Pr over x and r is large then there are many x's such
that Pr over r is large, recap hardcore bit, proof of PRG given OWF
Advice on reading: check all the calculations and missing steps
(missing because they are so "obvious" to the person writing the
paper or textbook), try to understand the basic outline and fill in the
details yourself - if you can't then go back and look for something you
were missing before
Adminstrative: project, HW's
Required Reading: Sections 9.2.1, 9.2.2.1
Supplemental, Optional Reading:
Key Definitions/Theorems: Definitions 9.7, 9.8, Construction 9.9
Key Concepts: zero-knowledge proofs, zero-knowledge proof for
graph isomorphism, note that functions do exist that are hard to
invert (e.g., use hierarchy theorem) but the hard part is showing
the function is easier to compute than it is to invert
Administrative: project (due Monday?), HW12
Classtime to discuss project. The project midpoint is due before class start on Monday, November 22. Send your project document to me before class starts on Monday.
Required Reading: Section 9.2.2
Supplemental, Optional Reading:
Key Definitions/Theorems: Construction 9.10, Theorems 9.11, 9.12
Key Concepts: zero-knowledge proof for 3-coloring, zero-knowledge
proofs for other NP problems
Required Reading: Sections C.3.3, Section C.5.1, C.5.2
Supplemental, Optional Reading:
Key Definitions/Theorems: Definition C.7, Theorem C.8, private key
encryption in section C.5.2
Key Concepts: pseudorandom function, private key encryption using pseudorandom
function
Administrative:Exam3, sample exam tonight, grading HW10,
cheat sheets for exam3,
projects, extend HW12?, make HW13 extra credit only?
Required Reading:
Supplemental, Optional Reading:
Key Definitions/Theorems:
Key Concepts:
3rd exam
Final projects will be presented during class, and for one hour after the normal class time
Final projects will be presented during class, and for one hour after the normal class time.
Final projects will be presented during class.
We will not be doing anything during the final exam slot, you do not need to show up for it.