| September 24 |
Introduction, Racket intro
|
| September 26 |
Racket intro; Lists lec2.rkt code Scheme basics (notes)
|
| September 28 |
Lists and functions lec3.rkt code
|
| October 1 |
Lists, functions, tail recursion lec4.rkt code Recursion patterns (notes)
|
| October 3 |
Iteration patterns, function parameters lec5.rkt code
|
| October 5 |
Higher-order functions, lambda lec6.rkt code
|
| October 8 |
Lambdas, closures, nested scopes lec7.rkt code
|
| October 10 |
Lambdas and closures lec8.rkt code
|
| October 12 |
Environments and execution. Whiteboard pix: environments closures
|
| October 15 |
Environments and closures. Whiteboard pix: nested let curried plus
|
| October 17 |
Examples with closures as parameters
|
| October 19 |
Lazy evaluation, streams, and memos slides notes code
|
| October 22 |
Racket structs, implementing programmings, interpreters slides
|
| October 24 |
Interpreters (concl.), HW5
|
| October 26 |
HW5 wrapup, Memory management
|
| October 29 |
Reference counting, GC overview
|
| October 31 |
Mark/sweep garbage collection
|
| November 2 |
Compacting and generational collectors
|
| November 7 |
Ruby intro slides Rat.rb
|
| November 9 |
Ruby containers, blocks, and procs slides demo
|
| November 14 |
Ruby: duck typing, inheritance, mixins, modules duck slides inheritance slides points.rb inherit.rb
|
| November 16 |
Ruby wrapup; Parsers, scanners, grammars intro
|
| November 19 |
Grammars, derivations, regular expressions slides
|
| November 21 |
Regular expressions and scanners (concl)
|
| November 26 |
Parsers, context-free grammars, ambiguity slides
|
| November 28 |
LL grammars and top-down parsing slides
|
| November 30 |
Parsing & grammar hacking
|
| December 3 |
Multiple inheritance etc. slides
|
| December 5 |
Late binding and dynamic dispatch slides objects.rkt
|
| December 7 |
Wrapup and review
|