Date | Description |
---|---|
March 27 |
Overview & Racket intro slides, demo transcript |
March 29 |
Racket intro; Lists Racket basics (notes), function defs, demo transcript |
March 31 |
Lists and functions code, diagrams |
April 3 |
Functions and environments code, diagrams |
April 5 |
let, let*; tail recursion code, Recursion patterns (notes), diagrams |
April 7 |
higher-order functions, functions as parameters, map, filter code, diagrams |
April 10 |
Higher-order functions; environments and execution code, diagrams |
April 12 |
Closures and environments and letrec code, diagrams |
April 14 |
Closures and environments and map diagrams (same code from Wed.) |
April 17 |
Mutation in Racket, thunks, eager vs. lazy evaluation. slides, notes, code, diagram |
April 19 | Evaluation and promises (same code and notes as Monday) |
April 21 |
Streams and memos (concl.) fib3 diagram |
April 24 |
Racket structs; interpreters slides, code |
April 26 |
Interpreters and language implementation more code |
April 28 |
interpreters (concl.), MUPL/hw5 mupl demo |
May 3 |
Ruby intro slides, code: silly.rb, Rat.rb, terminal output |
May 5 |
Ruby containers, blocks, and procs slides, terminal output |
May 8 |
Ruby containers, blocks, and procs terminal output |
May 10 |
Ruby duck typing, inheritance, mixins, and modules slides; code: Points.rb inherit.rb |
May 12 |
Parsers, scanners, grammars, and derivations slides |
May 15 | Regular expressions and scanners |
May 17 | Scanners (concl.) |
May 19 |
Grammars and parsing slides |
May 22 |
Ambiguity (concl.); LL grammars and top-down parsing; grammar hacking (start) slides |
May 24 |
LL grammars and top-down parsing; grammar hacking (concl.); Memory management (start) slides |
May 26 |
Memory management, garbage collection (concl.) diagrams |
May 31 |
Java implementation slides, sample code |
June 2 |
JavaScript and Dynamic Languages; Course wrapup slides: dynamic, wrapup |