Theory of Computation
COSC 39, Winter 2021
Course Schedule
All materials are subject to change based on the actual class interaction and student feedback.
Introduction
- 1/8
-
administrivia; what is the purpose of this course? knowledge, skill, philosophy
[video]
- Useful resources for reviewing prerequisites:
- Train your thinking and communication skills in math:
- Universal computation and our mind:
- Why this course?
Languages and Machine Models
- 1/11
- languages, problems, and encoding; regular expressions
[video|scribbles]
- 1/12
- constructing regular expressions
[worksheet]
- 1/13
- finite automata and automatic languages; are they more powerful than regular expressions?
[video|scribbles]
- 1/15
- DFA constructions
[worksheet]
Nondeterminism
- 1/18
- (MLK day; no live lectures) tips on induction
[video]
- Erickson lecture 3.3; the induction proof for the example there might help you with Homework 1 problem 1.
- 1/19
- induction on strings and automata
[worksheet]
- 1/20
- regular languages are automatic: nondeterministic finite automata
[video|scribbles]
- 1/22
- construting NFAs
[worksheet]
Beyond Regularity
- 1/25
- Kleene theorem: where multiple models coincide
[video|scribbles]
- 1/26
- language transformations and closure properties
[worksheet]
- 1/27
- limits of regularity: fooling sets and Myhill-Nerode theorem; examples of nonregular languages
[video|scribbles]
- 1/29
- fooling set constructions
[worksheet]
Turing Machines and Decidability
- 2/1
- Turing machine: it's just CPU with memory
[video|scribbles]
- 2/2
- Equivalence between different computing devices
[worksheet]
- 2/3
- Church-Turing thesis: CPU with memory is universal computation; universality implies incomputability (oh the irony)
[video|scribbles]
- Erickson lecture 6.8, 7.5–7.8, Sipser Chapter 4
- Can you write a program that output the source code of itself?
- On halting problem and imcompleteness theorems
- 2/5
- Is my pseudocode safe?
[worksheet]
Resources and Verification
- 2/8
- Time complexity, verification and nondeterminism, P vs NP
[video|scribbles]
- 2/9
- Midterm 1; no working session today
- 2/10
- NP-hardness and Cook-Levin theorem: no pursuit is useless; mapping and oracle reductions
[video|scribbles]
- 2/12
- Self-reductions
[worksheet]
Reductions
- 2/15
- NP-hardness reductions
[video|scribbles]
- Erickson chapter 12.6–12.10, Sipser Chapter 7.5
- There are so much resourses online about NP-hardness I can't even. But here's a few that I find extra helpful:
- 2/16
- More NP-hardness reductions
[worksheet]
- 2/17
- Exponential-time hypotheses: No, I mean they are really really hard
[video|scribbles]
- 2/19
- (S)ETH reductions
[worksheet]
Advanced topics
Randomness
- 2/22
- Randomized algorithm, BPP, and error reduction; polynomial identity testing
[video|scribbles]
- References for randomized algorithm:
- Randomized Algorithms by Luca Trevisan, Lecture 12
- Randomized Algorithms by Motwani and Raghavan, Chapter 7.1–7.6
- 2/23
- Fingerprinting
[worksheet]
- 2/24
- Pseudorandom generators; hardness is pseudorandomness
[video|scribbles]
- 2/26
- Have fun with randomness
[worksheet]
Communication
- 3/1
- Interactive proofs: why talking to people is important
[video|scribbles]
- 3/2
- Midterm 2; no working session today
- 3/3
- Interactive proof for #P; Cryptography: one-time pad and commitment scheme
[video|scribbles]
- 3/5
- turn everything into polynomials
[worksheet]
Onward!
- 3/8
- Zero-knowledge proofs and secure computations
[video|scribbles]
- 3/9
- Fun with zero-knowledge proofs
[worksheet]
- 3/10
- How does new discovery (like quantum physics and time travel) change our perspective of computation?
[video|scribbles]
- 3/16 Tue
- Final deadline