Tues, Sep 1st |
Lecture 1: Syntax, Regular Languages and Regular Expressions |
Thurs, Sep 3rd |
Lecture 2: Finite Automata, Lexical Analysis |
Tues, Sep 8th |
Lecture 3: Designing Finite Automata, Eliminating Nondeterminism |
Thurs, Sep 10th |
Lecture 4: Context-Free Languages, Parsing, Ambiguity |
Tues, Sep 15th |
Lecture 5: Eliminating Ambiguity, Recursive Descent Parsing |
Thurs, Sep 17th |
Lecture 6: Precedence Climbing, Abstract Syntax Trees |
Tues, Sep 22nd |
Lecture 7: Turing Machines |
Thurs, Sep 24th |
Lecture 8: Decidability and the Halting Problem |
Tues, Sep 29th |
Lecture 9: Decidability of Regular Languages |
Thurs, Oct 1st |
Exam 1 (open book, open notes) |
Tues, Oct 6th |
Chapter 7 (Clojure), Lecture 10: Why Clojure? |
Thurs, Oct 8th |
Lecture 11: Recursion and iteration in Clojure |
Tues, Oct 13th |
Lecture 12: Clojure data structures |
Thurs, Oct 15th |
Lecture 13: Map, filter, reduce, and higher-order functions |
Tues, Oct 20th |
Fall break, no class |
Thurs, Oct 22nd |
Chapter 4 (Prolog), Lecture 14: Prolog |
Tues, Oct 27th |
Lecture 15: More Prolog |
Thurs, Oct 29th |
Chapter 6 (Erlang), Lecture 16: Erlang |
Tues, Nov 3rd |
Lecture 17: More Erlang |
Thurs, Nov 5th |
Lecture 18: Concurrency in Erlang |
Tues, Nov 10th |
Clojure review 1 |
Thurs, Nov 12th |
Chapter 2 (Ruby), Lecture 19: Ruby |
Tues, Nov 17th |
Clojure review 2 |
Thurs, Nov 19th |
Lecture 20: Ruby Arrays, Hashes, Mixins |
Tues, Nov 24th |
Exam 2 (programming, open book, open notes) |
Thurs, Nov 26th |
Thanksgiving vacation, no class |
Tues, Dec 1st |
Lecture 21: Metaprogramming in Ruby |
Thurs, Dec 3rd |
Chapter 5 (Scala), Lecture 22: Scala |
Tues, Dec 8th |
Lecture 23: Functional programming in Scala |
Thurs, Dec 10th |
Lecture 24: Operator overloading, Actors in Scala |
Tues, Dec 15th |
Chapter 8 (Haskell), Introduction to Haskell |