Wed, Sep 28 - 🧑🏫 Lecture 01 : Welcome! Intro to OCaml (code)
Thu, Sep 29 - 🧑💻 Section 01 : REPL, OCaml, Debugging (code)
Fri, Sep 30 - 🧑🏫 Lecture 02 : Syntax and Semantics, Expressions, Functions (code)
Mon, Oct 03 - 🧑🏫 Lecture 03 : Tuples, Lists (code)
Wed, Oct 05 - 🧑🏫 Lecture 04 : Local Bindings, Options, Avoiding Mutation (code)
Thu, Oct 06 - 🧑💻 Section 02 : Type Synonyms, More General Types, Pattern Matching (code)
Fri, Oct 07 - 🧑🏫 Lecture 05 : Records, Variants, Match Expressions (code)
Mon, Oct 10 - 🧑🏫 Lecture 06 : More Pattern Matching (code)
Wed, Oct 12 - 🧑🏫 Lecture 07 : Nested Patterns, Tail Recursion, Exceptions (code)
Thu, Oct 13 - 🧑💻 Section 03 : Exceptions, Tail Recursion, Map and Filter (code)
Fri, Oct 14 - 🧑🏫 Lecture 08 : First-Class Functions (code)
Mon, Oct 17 - 🧑🏫 Lecture 09 : Lexical Scope and Function Closures (code)
Wed, Oct 19 - 🧑🏫 Lecture 10 : Function-Closure Idioms (code)
Thu, Oct 20 - 🧑💻 Section 04 : Mutual Recursion, Currying, Module System (code)
Fri, Oct 21 - 🧑🏫 Lecture 11 : OCaml Modules (code)
Mon, Oct 24 - 🧑🏫 Lecture 12 : Type Inference (code)
Wed, Oct 26 - 🧑🏫 Lecture 13 : Equivalence
Thu, Oct 27 - 🧑💻 Section 05 : Midterm Review
Mon, Oct 31 - 🧑🏫 Lecture 14 : Racket Introduction (code)
Wed, Nov 02 - 🧑🏫 Lecture 15 : Racket Variables, Scope, Pairs, Mutation (code)
Thu, Nov 03 - 🧑💻 Section 06 : Lexical Scope, Assoc Lists, Memos, Mutable Pairs (code)
Fri, Nov 04 - 🧑🏫 Lecture 16 : Thunks, Promises, Streams, Memoization (code)
Wed, Nov 09 - 🧑🏫 Lecture 18 : One-Of Types with Lists or Structs (code)
Thu, Nov 10 - 🧑💻 Section 07 : Interpreting LBI, Macros, Quote, and Eval (code)
Mon, Nov 14 - 🧑🏫 Lecture 19 : Implementing Programming Languages (code)
Wed, Nov 16 - 🧑🏫 Lecture 20 : Introduction to Racket Object-Oriented Programming (code)
Thu, Nov 17 - 🧑💻 Section 08 : Racket OOP: Scope, Augmentation (code)
Fri, Nov 18 - 🧑🏫 Lecture 21 : Subclassing, Overriding, Dynamic Dispatch (code)
Mon, Nov 21 - 🧑🏫 Lecture 22 : Multiple Inheritance, Mixins, Interfaces, Abstract Methods (code)
Wed, Nov 23 - 🧑🏫 Lecture 23 : FP vs. OOP Decomposition; Double Dispatch (code)
Mon, Nov 28 - 🧑🏫 Lecture 24 : Static vs. Dynamic Typing (code)
Thu, Dec 01 - 🧑🏫 Section 09 : Double Dispatch, Visitor Pattern (code)
Fri, Dec 02 - 🧑🏫 Lecture 26 : Subtyping for OOP; Generics vs. Subtyping(code)
Thu, Dec 08 - 🧑🏫 Section 10 : Final-Exam Review (past exams and their key)