General Info:

- Lectures:
TuTh 10:30am-12pm. Access via canvas $\backslash rightarrow$
zoom $\to $
Lectures. Attending lectures is highly recommended!

- The Teaching Team.

- Policies and Expectations (aka
"syllabus"). Note that
**Tablets + Styluses**are required for active participation in sections and office hours. - Discussion Site: CS
121 Piazza

- Gradescope: Needed for submitting your problem sets.

**Announcements:**

- 11/19/2020: Homework
6 out (tex, pdf). Due 12/03/2020.

- 11/18/2020: Advanced section Thursday at 4:30pm: Roei Tell on Randomness, Pseudorandomness and Derandomization. Details here.
- 11/08/2020:
Midterm 2 review material here.

- 10/28/2020:
Homework 5 out (tex, pdf). Due 11/12/2020.
Solutions.

- 10/21/2020:
Midterm 1 Solutions: (tex,
pdf).

- 10/15/2020: Please take some time to respond to the Midterm Feedback Survey. Its mandatory. Its anonymous. Due Sunday (10/19).
- 10/15/2020: Homework
4 out (tex, pdf). Due 10/29/2020.
Solutions.

- 10/6/2020: (updated 10/8): Midterm 1 in one week (10/13/2020, "in
class" = 10:30-12noon as preferred time).

- Logistical announcement
~~to follow~~here.

- Prep Material here.

- Sample midterm here - do look at it to familiarize yourselves with format of exam, and to practice latex'ing your answers.
- Review material (questions,
solutions).

- 10/1/2020: Homework
3 available now (tex,
pdf). Due
10/08/2020. Solutions.

- 9/24/2020: Reading
for today's and next two lectures include Sections
6.2, 6.4 and 6.5 from Barak's IntroTCS. Despite what
the book says, they are not optional for us!

- 9/17/2020: Homework
2 is available now (tex,
pdf). Due 10/01/2020
(corrected). Solutions.

- 9/10/2020: Advanced sections start today at 4:30pm! Boaz Barak is our speaker today. Here are future plans (more talks will be added).
- 9/10/2020:
Homework 1 is available now (tex, pdf). Due 9/17/2020.
Solutions.

- 9/2/2020: First
lecture is tomorrow (9/3) at 10:30am. All
lectures/sections/office hours are accessible from
canvas $\backslash rightarrow$
zoom. Here
is a full calendar with section times and
office hours included.

- 9/2/2020:
Homework0 is due
tomorrow by 11:59pm. Please submit via
gradescope. You should have received a link by
now. If not send a private post on Piazza.

- 9/2/2020:
Please sign up for active participation.
See this
post for details.

- 8/15/2020: Here's a
sample video (with slide
deck) based roughly on the contents of lecture
1. It would be a good to quickly watch the video
(skipping parts you don't care about) to get a sense
of topics, style etc.
**before**coming to the**Q&A**session below. We will *not* watch the video in the session.

- 7/20/2020: Homework Zero is available now (tex, pdf). You can start
working on it right away! Use latex to write up your
solutions. Hold on to your solutions for now while we
figure out the next steps. It is due by September 3,
2020. Solutions.

**Topics (Tentative), Calendar
and Handouts:
**

- Lecture 01 (Th. 09/03): Introduction. (Reading: Chapter
0. (All readings refer to the text by Barak, unless
specifically indicated.)) Slides.
(Slides after edits in
class.) Video.

- 09/03: Section 0 week starts.
Video here.
Boards: 1, 2, 3, 4. Solutions.

- 09/03: Problem Set 0 Due.

- Lecture 02 (Tu. 09/08): Math. Background. (Reading:
Chapter 1.) Slides.
Slides after lecture
(with solutions to exercises). Video.

- Lecture 03 (Th. 09/10):
Representing
Information: Objects as Strings. (Reading: Chapter 2.) Slides.
Slides after lecture.
Video.

- 09/10:
Section 1 week starts. Video.
Slides.
Boards: 1,
2, 3, 4, 5, 6. Solutions.

- 09/10: Problem Set 1 Out. (tex, pdf).

- Lecture 04 (Tu. 09/15): Defining Computation: Circuits. (Reading: Chapter 3.) Slides (pptx, pdf). Slides after lecture. Video.
- Lecture 05 (Th. 09/17): Completeness: Computing every
(finite) function. Size of circuits. Upper and Lower
bounds. (Reading: Chapter 4.) Slides (pptx, pdf). Slides after lecture. Video.

- 09/17: Problem Set 1 Due. Problem Set 2 Out. (tex, pdf).
- 09/17/2020:
Section 2 week starts. Video.
Slides. Solutions.

- Lecture 06 (Tu. 09/22): Code as data. Circuit lower
bounds. Circuit-interpreter. (Reading: Chapter 5.) Slides
(pptx, pdf). Slides after lecture. Video.

- Lecture 07 (Th. 09/24):
Infinite functions and algorithms: Finite automata.
(Reading: Chapter 6, especially Section 6.2.) Slides (pptx,
pdf).
Slides after
lecture. Video.

- 09/24/2020:
Section 3 week starts. Video.
Slides. Annotated
Slides. Solutions.

- Lecture 08 (Tu. 09/29): Finite automata and Regular
Functions: Languages. (Reading: Sipser - Chapters 1.2,
1.3. Also Barak Sections 6.3 and 6.4). Slides (pptx,
pdf).
Slides after lecture.
Video.

- Lecture 09 (Th. 10/01): Limits of Finite Automata: What
can they not compute? (Reading: Sipser - Chapter 1.4. Also
Barak Section 6.5). Slides (pptx,
pdf).
Slides after lecture.
Video.

- 10/01/2020: Section 4 week starts.
Video.
Slides. Solutions.

- 10/01: Problem Set 2 Due. Problem
Set 3 out. (tex, pdf).

- Lecture 10 (Tu. 10/06):
Turing Machines:Introduction. (Reading: Chapter 7.1.)
Slides (pptx,
pdf).
Slides after lecture.
Video.

- Lecture 11 (Th. 10/08): More Turing Machines: Examples. (Reading: Chapter 7.2.). Slides (pptx, pdf). Slides after lecture. Video.
- 10/08/2020: Section 5 week
(Midterm reviews). No Video. Prep material here.

- 10/08: Problem Set 3 Due.

**Lecture 12 (****Tu. 10/13****): Midterm 1.**

- Lecture 13 (Th. 10/15): Turing Equivalence +
Universality. (Reading: Chapter 8, Chapters 9.1, 9.2.)
Slides (pptx,
pdf).
Slides after lecture.
Video.

- 10/15/2020: Section 6 week. Video.
Slides. Solutions.

- 10/15: Problem Set 4 Out. (tex, pdf).

- Lecture 14 (Tu. 10/20):
Uncountability and Uncomputability (Reading: Chapters 2.3,
2.4, 9.3.) Slides (pptx,
pdf).
Slides after lecture.
Video.

- Lecture 15 (Th. 10/22): More Uncomputability.
Reductions. (Reading: Chapter 9.3.) Slides (pptx,
pdf).
Slides after lecture.
Video.

- 10/22/2020: Section 7 week. Video. Slides. Solutions.
- Lecture 16 (Tu. 10/27): Rice's Theorem. More Reductions.
(Reading: Chapter 9.4.) Slides (pptx, pdf). Slides after lecture.
Video.

- Lecture 17 (Th. 10/29): Efficient Computation: The class
P. The Strong Turing-Church Thesis. (Reading: Chapters 12,
13.) Slides (pptx,
pdf). Slides after lecture.
Video.

- 10/29: Problem Set 4 Due. Problem Set 5
Out (tex, pdf).

- 10/29/2020: Section 8 week. Video. Slides. Solutions.
- *Election
Day* Lecture 18 (Tu. 11/03): Polynomial
Time Reductions. (Reading: Chapter 14.) Slides (pptx, pdf). Slides after lecture.
Video.

- Lecture 19 (Th. 11/05): NP and NP-completeness. (Reading: Chapters 15.1, 15.2.). Slides (pptx, pdf). Slides after lecture. Video.
- 11/05/2020: No video. Midterm 2
Prep material here.

- Lecture 20 (Tu. 11/10): Cook Levin Theorem. (Reading:
Chapters 15.3-15.5.). Slides (pptx, pdf). Slides after lecture.
Video.

- Lecture 21 (Th. 11/12): More NP-completeness by
reductions. (Reading: Review Chapters 14, 15.) Slides (pptx, pdf). Slides after lecture.
Video.

- 11/12: Problem Set 5 Due.

- 11/12/2020:
Section 10 week. Video.
Slides. Solutions.

**Lecture 22 (Tu. 11/17): Midterm 2.**

- Lecture 23 (Th. 11/19): Randomness and Computation:
Probability Review. (Reading: Chapter 18.) Slides (pptx, pdf). Slides after lecture.
Video.

- 11/19: Problem Set 6 Out. (tex, pdf).
- 11/19/2020:
Section 11 week. Video.
Slides.

- Lecture 24 (Tu. 11/24): Randomized algorithms: Examples.
(Reading: Chapter 19.) Slides (pptx,
pdf).
Slides after lecture.
Video.

- (11/25-11/29): Thanksgiving break.
- 11/30/2020:
Section 12 week. Final review - no videos. Prep
material here.

- Lecture 25 (Tu. 12/01): Modelling Randomized Algorithms.
The classes RP and BPP. (Reading: Chapter 20.) Slide (pptx, pdf). Slides after lecture.
Video.

- Lecture 26 (Th. 12/03): Course wrap-up: Quantum, Crypto.
(Reading: Skim chapters 21, 22, 23.). Slides (pptx, pdf). Slides after lecture.
Video.

- 12/03: Problem Set 6 Due.

**Reference Materials:**

- The textbook for the course is Introduction to Theoretical Computer Science by Boaz Barak. Here is the pdf of the book we will be following for the term. (The book sees minor revisions frequently but the pdf version, frozen in August 2020, is our definitive version.)
- The textbook Introduction to the Theory of Computation by Michael Sipser will cover roughly the same material though in a different order and with quite different notation. This book is a good source of additional problems and exercises.
- There
are many additional resources and texts mentioned by
Boaz Barak at his website for
(the Fall 2019 version of) this course. (Scroll down to
the bottom on the landing page.) Depending on your time
and interest you can sample from these resources. The
more perspectives you see, the more you will appreciate
the course material!