Lectures
| Sept. 10 (Th) | Introduction / Course overview [2x2, 1x1] | |
| Sept. 14 (M) | Deterministic Finite Automata (DFAs) [2x2, 1x1] | HW 1 out |
| Sept. 17 (Th) | Regular expressions (Regexp) [2x2, 1x1] | |
| Sept. 21 (M) | Nondeterministic Finite Automata (NFAs) [2x2, 1x1] | HW 2 out |
| Sept. 24 (Th) | Pumping lemma / non-regular languages [2x2, 1x1] | HW 1 due |
| Sept. 28 (M) | Pushdown Automata (PDAs) / CFGs [2x2, 1x1] | Quiz 1 out |
| Oct. 1 (Th) | Context Free Languages (CFLs) [2x2, 1x1] | HW 2 due |
| Oct. 5 (M) | NPDA / CFL equivalence [2x2, 1x1] | HW 3 out |
| Oct. 8 (Th) | Turing machines [2x2, 1x1] | |
| Oct. 12 (M) | (No lecture - campus reading day.) | HW 4 out |
| Oct. 15 (Th) | Decidability [2x2, 1x1] | HW 3 due |
| Oct. 19 (M) | Undecidability [2x2, 1x1] | Quiz 2 out |
| Oct. 22 (Th) | Undecidability [2x2, 1x1] | HW 4 due |
| Oct. 26 (M) | Reducibility [2x2, 1x1] | HW 5 out |
| Oct. 29 (Th) | The recursion theorem [2x2, 1x1] | |
| Nov. 2 (M) | Information [2x2, 1x1] | HW 5 due |
| Nov. 5 (Th) | Time complexity / P / NP [2x2, 1x1] | HW 6 out |
| Nov. 9 (M) | NP-Completeness | Quiz 3 out |
| Nov. 12 (Th) | NP-Complete problems [2x2, 1x1] | |
| Nov. 16 (M) | NP-Complete problems [2x2, 1x1] | HW 7 out |
| Nov. 19 (Th) | Space/time hierarchy [2x2, 1x1] | HW 6 due |
| Nov. 23 (M) | Alternative machines / languages [2x2, 1x1] | HW 8 out |
| Nov. 26 (Th) | (No lecture - Thanksgiving.) | |
| Nov. 30 (M) | BPP / RP [2x2, 1x1] | Quiz 4 out |
| Dec. 3 (Th) | Randomization [2x2, 1x1] | HW 7 due |
| Dec. 7 (M) | Parallel computation | |
| Dec. 10 (Th) | Computing Machinery and Intelligence [PDF] | HW 8 due |
Course Info :
Lecture: M/Th 1:10-2:25, TCL 206
Professor: Barath Raghavan
Office Hours: M/Tu/Th, 2:30-4 TCL 306
TA: Dave Moore
TA Hours: Su, 8-10pm TCL 312
Textbook: Introduction to the Theory of Computation, Sipser
Course Overview
Official Course Description: This course introduces formal models of computation including finite automata, regular languages, context-free grammars, and Turing machines. These models provide a mathematical basis for the study of computability - the study of what problems can be solved and what problems cannot be solved. Applications to compiler design and program verification will also be covered.
We'll be using Michael Sipser's text Introduction to the Theory of Computation (any edition is fine). The course will closely follow the presentation in the textbook. There will be no exams except for the final; instead, there will be 4 takehome quizzes. If you have a time or date conflict for any assessment (homework, quiz, final exam), let me know at least 2 weeks in advance.
Course Grading and Logistics
40%: Eight homework assignments each worth 5% of your total grade. Each homework is graded out of 100 points. Homeworks may be turned in late; a homework turned in n hours late loses 2n/6 points. All late homework must be submitted electronically. Each homework typeset in LaTeX will receive an extra 10%; that is, a handwritten homework that receives a 90/100 would receive a 99/100 if typeset.
40%: Four takehome quizzes each worth 10% of your total grade. Each quiz is due 24 hours after it is assigned in class. Quizzes cannot be turned in late. (Each quiz will have a self-timed time limit.)
15%: A takehome final exam, available during the take-home final period.
5%: Class participation.