![]() Computer Science Dartmouth College |
Computer Science 39 |
Winter 2012 |
This course serves as an introduction to formal models of languages and computation. Topics covered include finite automata, regular languages, context-free languages, pushdown automata, Turing machines, computability, and NP-completeness.
This course has substantial mathematical content. It is expected that a student who enrols for this course already knows how to write mathematical proofs and is generally mathematically mature. If a student passes this basic criterion and is interested in thinking philosophically about what a computer can or cannot do, then this course should be great fun.
Lectures |
Sudikoff 214 | 11 hour | Mon-Wed-Fri 11:15-12:20, X-hr Tue 12:00-12:50 |
Instructor |
Amit Chakrabarti | Sudikoff 107 | 6-1710 | Office hours: Mon 9:00-10:30, Fri 13:30-14:30, or by appointment |
Teaching Assistant |
Thomas Bao | Sudikoff 212 | (phone TBA) |
Office hours: Mon 16:00-17:00, Tue 16:00-18:00, or by appointment
|
Textbook |
Required: "Introduction to the Theory of Computation," Second Edition. Michael Sipser. Suggested additional reading (not required): "Introduction to Automata Theory, Languages and Computation." J. E. Hopcroft and J. D. Ullman. |
Prerequisites |
Either CS 30 or CS 31, or a strong mathematics backround and permission of the instructor |
Work |
One homework per week. [35 points] Two in-class quizzes. [15 points] One take-home midterm. [20 points] One take-home final exam. [30 points] Please take note of the late homework policy. It will be enforced, strictly. |
This schedule will be updated frequently. Please check back often, and please remember to hit the RELOAD button to get the latest schedule.
Any part of the schedule that is greyed out is tentative and subject to change.
Lecture Number |
Reading Due |
Homework |
Topics Covered in |
||
Week 1 |
1 | Jan 4 | — | — | Welcome, administrivia, overview; Mathematical notation (slides) |
2 | Jan 6 | 0.1, 0.2, 0.3 | — | Types of proof: by construction, by contradiction, by induction (slides) | |
Week 2 |
3 | Jan 9 | 0.4 | — | Strings and languages; Finite automata; DFA examples (slides) |
4 | Jan 10 (X-hr) | 1.1 up to p34 | — |
Formal definition of DFA as (Q,Σ,δ,q0,F);
More DFA examples
|
|
5 | Jan 11 | 1.1 | — |
NFA introduced; Examples; Formalization of NFAs and DFA/NFA
computation
|
|
6 | Jan 13 | — | — |
More on NFAs; The union, concatenation and Kleene star operations
|
|
Week 3 |
Jan 16 | — | HW1 |
No lecture: MLK Day |
|
7 | Jan 17 (X-hr) | 1.3 up to p69 | — |
Regular expressions, examples, conversion to NFA
(lecture notes)
|
|
8 | Jan 18 | — | — |
Equivalence of DFAs, NFAs and regular expressions, I
|
|
9 | Jan 20 | 1.2 | — |
Equivalence of DFAs, NFAs and regular expressions, II
(lecture notes)
|
|
Week 4 |
10 | Jan 23 | 1.3 | HW2 |
The pumping lemma and proofs of non-regularity |
11 | Jan 24 (X-hr) | 1.4 | — |
Closure properties of regular languages |
|
12 | Jan 25 | Chapter 1 | — |
Pushdown automata; Examples of PDAs |
|
Jan 27 | — | — |
Quiz 1: closed-notes, in-class |
||
Week 5 |
13 | Jan 30 | — | HW3 |
Formal definition of a PDA; More examples; Closure under ∪, ∘, * |
14 | Jan 31 (X-hr) | 2.2 up to p115 | — |
Context-Free Grammars (CFGs); Basic examples |
|
15 | Feb 1 | 2.1 up to p105 | — |
Formal definition of a CFG; Ambiguity; CFG for N0 = N1
(lecture notes) |
|
16 | Feb 3 | — | — |
Equivalence of CFGs and PDAs, I: PDA to CFG |
|
Week 6 |
17 | Feb 6 | — | HW4 |
Equivalence of CFGs and PDAs, II: CFG to PDA
(lecture notes) |
18 | Feb 7 (X-hr) | — | — |
Chomsky Normal Form; Pumping lemma for CFLs |
|
19 | Feb 8 | 2.2 | Midterm |
Applications of CFL pumping lemma and closure properties |
|
Feb 10 | — | — |
No lecture: Winter Carnival
|
||
Week 7 |
20 | Feb 13 | Chapter 2 | — |
Turing machines; formal description; demos
(palindromes,
adder) |
21 | Feb 14 (X-hr) | 3.1 | — |
Deciders/recognizers; Multi-tape TMs and their equivalence with TMs
(slides) |
|
22 | Feb 15 | 3.2 up to p150 | HW5 |
Nondeterministic TMs; the RAM model; Church-Turing Thesis
(slides) |
|
23 | Feb 17 | Chapter 3 | — |
Enumerator TMs; Decision problems for the major language classes:
ADFA, ACFG and ATM |
|
Week 8 |
24 | Feb 20 | 4.1 | — | Decidability of ADFA, ACFG;
Recognizability of ATM; Undecidability of ATM
|
25 | Feb 21 (X-hr) | Chapter 4 | — |
Reductions; Mapping reductions; Decidability of EDFA,
ALLDFA, EQDFA;
Undecidability of ALLTM |
|
26 | Feb 22 | 5.1 up to p192; 5.3 | HW6 |
Unrecognizability of
ATM,
ETM; Decidability of ECFG
| |
Feb 24 | — | — |
Quiz 2: closed-notes, in-class |
||
Week 9 |
27 | Feb 27 | 7.1 | — |
Time complexity, P and NP |
Feb 28 (X-hr) | 7.1 – 7.3 | — |
NP-completeness and polynomial time reductions
(slides) |
||
28 | Feb 29 | TBD | HW7 |
More NP-completeness proofs: IND-SET, 3-COL |
|
29 | Mar 2 | TBD | — |
Yet more NP-completeness: CLIQUE, TSP; Tractability of 2-COL, 2-SAT |
|
Week 10 |
29 | Mar 5 | — | — |
Computational tableaux; Unrecognizability of ALLCFG |
30 | Mar 6 (X-hr) | — | — |
Undecidability of INTCFG |
|
31 | Mar 7 | 7.4 up to p276; 7.5 | HW8 (optional) |
The Cook-Levin Theorem; Wrap-up |
|
Mar 14 | Take-home 48-hour final exam, due at 5:00pm sharp The final exam website is now closed. |
If you are a registered student, you may verify your grades as entered in our database using the form below.