March | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
29 | 30 | 31
10:30-11:20 Lecture
zoom link Racket intro; Lists Racket basics (notes), function defs, demo1 transcript, demo2 transcript |
01 | 02 |
April | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
05 | 06
23:00 HW1 due (sample solution) (Racket warmup)
|
07
10:30-11:20 Lecture
zoom link let, let*; tail recursion; function parameters; higher-order functions (map, filter) code, Recursion patterns (notes) |
08 | 09 |
12 | 13
23:00 HW2 due (sample solution) (More Racket)
|
14
10:30-11:20 Lecture
zoom link Closures and environments code, diagrams: simple let, simple lambda, nested lambda |
15 | 16
10:30-11:20 Lecture
zoom link Closures and environments (trace) code, diagrams: currying, tail recursion |
19
10:30-11:20 Lecture
zoom link Map environment example; Mutation in Racket slides, notes, lazy.rkt code, map diagram |
20
23:00 HW3 due (Racket programming & testing)
|
21
10:30-11:20 Lecture
zoom link Thunks, eager vs lazy evaluation, promises (same code and notes as Monday) |
22 | 23 |
26 | 27
23:00 HW4 due (sample solution) (Streams and things)
|
28 | 29 | 30 |
May | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
03 | 04 | 05 | 06 | 07 |
10
10:30-11:20 Lecture
zoom link Ruby duck typing, inheritance, mixins, and modules slides; code: Points.rb inherit.rb |
11
23:00 HW5 due (mupl interpreter); starter code: hw5.rkt; starter tests: hw5tests.rkt
|
12 | 13 | 14 |
17 | 18
23:00 HW6 due (Ruby warmup)
|
19 | 20 | 21 |
24 | 25
23:00 HW7 due (calculator grammar) (part I sample solution) (Regular exps. and scanners)
|
26
10:30-11:20 Lecture
zoom link Memory management, garbage collection slides, diagrams: ref counting, cycles |
27 | 28 |
31
Memorial Day
|
01 | 02 | 03
23:00 HW8 due (part I sample solution) (Grammars and parser/ interpreter)
|
04 |