Date | Description |
---|---|
September 28 |
Overview & Racket intro slides demo transcript |
September 30 |
Racket intro; Lists Racket basics (notes) code |
October 3 |
Lists and functions code |
October 5 |
Lists, functions, let, let* code |
October 7 |
tail recursion; function parameters; higher-order functions (map, filter) code |
October 10 |
Functions as values, lambdas code |
October 12 |
Higher-order functions; intro to environments and execution code |
October 14 |
Closures and environments code |
October 17 |
Closures and environments (trace) Board pix: defs env more env |
October 19 | More examples closures, environments |
October 21 |
Lazy evaluation, streams, and memos slides notes lazy.rkt code |
October 24 | Promises, streams, and memos |
October 26 |
Racket structs, implementing interpreters slides code |
October 28 |
Interpreters, hw5 more code |
October 31 |
MUPL/hw5 (concl.); Ruby intro slides |
November 2 |
Ruby intro (cont.); code: silly.rb, Rat.rb terminal output |
November 4 |
Ruby intro (concl.); containers, blocks, and procs slides terminal output |
November 9 |
Ruby: duck typing, inheritance, mixins, and modules slides; code: Points.rb inherit.rb |
November 14 |
Parsers, scanners, grammars, and derivations slides |
November 16 | Regular expressions and scanners |
November 18 | Scanners (concl.) |
November 21 |
Scanners (concl.) Grammars and parsing slides |
November 23 | Grammars, ambiguity |
November 28 |
LL grammars and top-down parsing; grammar hacking slides |
November 30 | Grammars and parsing (concl.) |
December 2 |
Memory management: reference counting overview lecture notes |
December 5 | Memory management (cont.): garbage collection |
December 7 | Garbage collection (concl.) |
December 9 | Course wrapup |