This page lists the schedule for the course. Note that there may be minor changes: any changes will be announced in class and posted here.
Important: Do the readings in advance!
| Date |
Readings |
| Tues, Aug 26 |
Lecture 1: Syntax, Regular Languages and Regular Expressions |
| Thurs, Aug 28 |
Lecture 2: Finite Automata, Lexical Analysis |
| Tues, Sep 2 |
Lecture 3: Designing Finite Automata, Eliminating Nondeterminism |
| Thurs, Sep 4 |
Lecture 4: Context-Free Languages, Parsing, Ambiguity |
| Tues, Sep 9 |
Lecture 5: Eliminating Ambiguity, Recursive Descent Parsing |
| Thurs, Sep 11 |
Lecture 6: Precedence Climbing, Abstract Syntax Trees |
| Tues, Sep 16 |
Lecture 7: Turing Machines |
| Thurs, Sep 18 |
Lecture 8: Decidability and the Halting Problem |
| Tues, Sep 23 |
Lecture 9: Decidability of Regular Languages |
| Thurs, Sep 25 |
Exam 1 (open book, open notes) |
| Tues, Sep 30 |
Chapter 7 (Clojure), Lecture 10: Why Clojure? |
| Thurs, Oct 2 |
|
| Tues, Oct 7 |
Lecture 11: Recursion and iteration in Clojure |
| Tues, Oct 28 |
Chapter 4 (Prolog), Lecture 12: Prolog |
| Thurs, Oct 30 |
Lecture 13: More Prolog |
| Tues, Nov 4 |
Chapter 6 (Erlang), Lecture 14: Erlang |
| Thurs, Nov 6 |
Lecture 15: More Erlang |
| Tues, Nov 11 |
Lecture 16: Concurrency in Erlang |
| Thurs, Nov 13 |
Chapter 2 (Ruby), Lecture 17: Ruby |
| Tues, Nov 18 |
Lecture 18: Ruby Arrays, Hashes, Mixins |
| Thurs, Nov 20 |
Lecture 19: Metaprogramming in Ruby |