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.
CBT is Clojure for the Brave and True.
Important: Do the readings in advance!
Date |
Topic/Readings |
Aug 30 |
Lecture 1: Syntax, Regular Languages and Regular Expressions |
Sep 1 |
Lecture 2: Finite Automata, Lexical Analysis |
Sep 6 |
Lecture 3: Designing Finite Automata, Eliminating Nondeterminism |
Sep 8 |
Lecture 4: Context-Free Languages, Parsing, Ambiguity |
Sep 13 |
Lecture 5: Eliminating Ambiguity, Recursive Descent Parsing |
Sep 15 |
Lecture 6: Precedence Climbing, Abstract Syntax Trees |
Sep 20 |
Lecture 7: Turing Machines |
Sep 22 |
Lecture 8: Decidability and the Halting Problem |
Sep 27 |
Lecture 9: Decidability of Regular Languages |
Sep 29 |
Exam 1 (open book, open notes) |
Oct 4 |
CBT, Chapters 1–2, Lecture 10: Why Clojure? |
Oct 6 |
CBT, Chapter 3, pages 35–48, Lecture 11: Clojure Data Structures |
Oct 11 |
CBT, Chapter 3, pages 48–69, Lecture 12: Clojure functions |
Oct 13 |
CBT, Chapter 4, pages 71–84, Lecture 13: Map, filter, reduce, and higher-order functions |
Oct 18 |
Fall break, no class |
Oct 20 |
CBT, Chapter 5, Lecture 14: Recursion and iteration |
Oct 25 |
Recursion review |
Oct 27 |
Lecture 15: Prolog |
Nov 1 |
Lecture 16: More Prolog |
Nov 3 |
CBT, Chapter 7, Lecture 17: Clojure reader and evaluator |
Nov 8 |
CBT, Chapter 8, Lecture 18: More Clojure macros, Clojure review 1 |
Nov 10 |
Clojure review 2 |
Nov 15 |
Clojure review 3 |
Nov 17 |
Lecture 19: Virtual Machines |
Nov 22 |
Exam 2 |
Nov 24 |
Thanksgiving vacation, no class |
Nov 29 |
Lecture 20: Erlang |
Dec 1 |
Lecture 21: More Erlang |
Dec 6 |
Lecture 22: Concurrency in Erlang |
Dec 8 |
Lecture 23: Concurrency in Clojure |
Dec 13 |
Lecture 24: Agents in Clojure |