| Date | Meeting | Material covered | Relevant reading |
| 9/6 | Lecture 1 | DFAs | L&P 2.1 |
| 9/7 | Lecture 2 | Formal description of DFAs, more examples | |
| 9/10 | Lecture 3 | Intersection of regular languages, NFAs | begin L&P 2.2 |
| 9/12 | Lecture 4 | Eps-transitions; Removing non-determinism | L&P 2.2 |
| 9/13 | Lecture 5 | DFAs with output; Regular expressions | L&P 2.3 |
| 9/14 | Lecture 6 | Converting DFA to reg. exp. | |
| 9/17 | Lecture 7 | Lab time; Pumping lemma | L&P 2.4 |
| 9/19 | Lecture 8 | More pumping lemma; Closure properties | |
| 9/20 | Lecture 9 | More pumping lemma and closure properties | |
| 9/21 | Lecture 10 | DFA minimization | L&P 2.5; HW 1 code |
| 9/24 | Lecture 11 | Code counting; Lab for minimization; CFGs | |
| 9/26 | Class canceled for Midterm 1 | ||
| 9/27 | Lecture 12 | Pumping lemma practice | |
| 9/28 | Lecture 13 | Practice with grammars; proper inclusion of regular languages | |
| 10/1 | Lecture 14 | PDAs | L&P 3.3 |
| 10/3 | Lecture 15 | Converting between PDAs and grammars | L&P 3.4 |
| 10/4 | Lecture 16 | Pumping lemma for CFLs | L&P 3.5 |
| 10/5 | Lecture 17 | More pumping lemma | |
| 10/8 | Lecture 18 | Chomsky Normal Form; Deciding CFL membership | L&P 3.6 |
| 10/10 | Lecture 19 | Review: Pumping lemma, PDA->grammar | |
| 10/11 | Canceled for Midterm 2 | ||
| 10/12 | No class - attend Reflections and Projections | ||
| 10/15 | Lecture 20 | Deciding CFL membership and parsing | L&P 3.7 |
| 10/17 | Fall Institute - no class | ||
| 10/18 | Lecture 21 | Finish shift/reduce parsing; Ambiguous grammars; Order of ops and associativity | Louden 4.3-4.4; Complaint generator |
| 10/19 | Lecture 22 | Lex | L,M,&B Chapters 1-2 |
| 10/22 | Lecture 23 | Lex lab | lex handout |
| 10/24 | Lecture 24 | Using lex to eliminate comments | |
| 10/25 | Lecture 25 | Yacc | L,M,&B Chapter 3 |
| 10/26 | Lecture 26 | Lab time with Yacc | |
| 10/29 | Lecture 27 | Features of programming languages | Sebesta 1.3; Louden Ch. 3 |
| 10/31 | Lecture 28 | Adding variables; Begin memory management | |
| 11/1 | Lecture 29 | Dynamic memory management; Binding | Sebesta 5.4, 6.9 |
| 11/2 | Lecture 30 | Library binding; Scope | Sebesta 5.8 |
| 11/5 | Lecture 31 | Lifetime; Boolean operations; Loops | Sebesta 5.9, 7.6, 8.3 |
| 11/7 | Lecture 32 | goto, switch, break, continue | Sebesta 8.2, 8.4 |
| 11/8 | Lecture 33 | Errors and exceptions | Sebesta 14.1-14.4 |
| 11/9 | Lecture 34 | Scheme intro and practice time | Scheme tutorial |
| 11/12 | Lecture 35 | Teaching language discussion; Higher-order functions | |
| 11/14 | Reading Day | ||