Theory of Computation
COSC 39, Spring 2025
Course Schedule
All materials are subject to change based on the actual class interaction and student feedback.
Introduction
- 3/31
-
administrivia; what is the purpose of this course? knowledge, skill, philosophy
- 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
- 4/2
- languages, problems, and encoding; regular expressions
[scribbles]
- 4/3
- constructing regular expressions
[worksheet]
- 4/4
- finite automata and automatic languages: machines with registers
[scribbles]
- 4/7
- DFA constructions
[worksheet]
Nondeterminism
- 4/9
- regular languages are automatic: nondeterministic finite automata
[scribbles]
- 4/10
- construting NFAs
[worksheet]
- 4/11
- power of nondeterminism: closure properties of NFAs
[scribbles]
- 4/14
- language transformations and closure properties
Beyond Regularity
- 4/16
- Kleene theorem: where multiple models coincide
- 4/17
- constructing regular expressions, reprise
- 4/18
- limits of regularity: fooling sets and Myhill-Nerode theorem; examples of nonregular languages
- 4/21
- fooling set constructions
Turing Machines and Decidability
- 4/23
- Turing machine: it's just CPU with memory
- 4/24
- Equivalence between different computing devices
- 4/25
- Church-Turing thesis: CPU with memory is universal computation; universality implies incomputability (oh the irony)
- 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
- 4/28
- Is my pseudocode safe?
Resources and Verification
- 4/30
- Time complexity, verification and nondeterminism, P vs NP
- 5/1
- Midterm 1; no working session today
- 5/2
- NP-hardness and Cook-Levin theorem: no pursuit is useless; mapping and oracle reductions
- 5/5
- Self-reductions
Reductions
- 5/7
- NP-hardness reductions
- 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:
- 5/8
- More NP-hardness reductions
- 5/9
- Exponential-time hypotheses: No, I mean they are really really hard
- 5/12
- (S)ETH reductions
Advanced topics
Randomness
- 5/14
- Randomized algorithm, BPP, and error reduction; polynomial identity testing
- References for randomized algorithm:
- Randomized Algorithms by Luca Trevisan, Lecture 12
- Randomized Algorithms by Motwani and Raghavan, Chapter 7.1–7.6
- 5/15
- Fingerprinting
- 5/16
- Pseudorandom generators; hardness is pseudorandomness
- 5/19
- Have fun with randomness
Communication
- 5/21
- Interactive proofs: why talking to people is important
- 5/22
- [TBD]
- 5/23
- Interactive proof for #P; Cryptography: one-time pad and commitment scheme
- 5/26
- [Memorial Day; no class held] turn everything into polynomials
Onward!
- 5/28
- Zero-knowledge proofs and secure computations
- 5/29
- Fun with zero-knowledge proofs
- 5/30
- How does new discovery (like quantum physics and time travel) change our perspective of computation?
- 6/2
- [TBD]