CSE 341 Autumn 2023 Lecture

DateDescription
September 27 Welcome to PL, Intro to OCaml (ints, bools, variables, functions)
Whiteboards
Demo code
Video (poor quality, no screen)
September 29 Canceled (James sick)
October 2 Environments
Demo Code
October 4 Local bindings, Each-of types (tuples, lists)
Demo Code
October 6 Local functions, Performance, One-of types (options)
Demo Code
October 9 Declaring types (aliases, records), Variants, Pattern matching
Demo Code
October 11 Polymorphic variants, Nested patterns, Reflections on nesting, the Truth about patterns
Demo Code
October 13 More Nested Pattern matching, Exceptions, Tail recursion
Demo Code
October 16 First-class functions
Demo Code
October 18 Lexical scope and closures, currying
Demo Code
October 20 Idioms that use first-class functions, Mutation
Demo Code
October 23 Notions of equivalence, Modules and Signatures
Demo Code
October 25 Abstract types, Thunks, Promises, Streams
Demo Code
October 27 Implementing programming languages, Trefoil v0
Demo Code
Whiteboards
October 30 Tokenization, languages with flat syntax, Trefoil v1
Demo Code
Whiteboards
November 1 Parsing, nesting, parenthesized syntax trees
Demo Code
Whiteboards
November 3 Trefoil v2: expressions, lexical scope
Demo Code
November 6 Trefoil v2: booleans, global variable bindings, pairs
Demo Code
November 8 Trefoil v3: first-order, second-class functions
Demo Code
November 13 More Trefoil v3: Implementing scope
Demo Code
November 15 More Trefoil v3: lists and cond
Demo Code
November 17 Trefoil v4: structs and pattern matching
Demo Code
November 20 More Trefoil v4
Demo Code
November 27 Guest Lecture: Effective ML by Ron Minsky from Jane Street
November 29 Trefoil first-class functions
Demo Code
December 1 Implementing object features without meta features
Demo Code
December 4 Type checking
Demo Code
December 6 Objects
Whiteboards
Demo code
December 8 Victory lap
Whiteboards