Here is a tentative calendar for the semester. The future and recent past, as recorded here, are subject to revision at any time. See the long-term schedule on the syllabus for the big picture.
Tue | Wed | Fri |
---|
05 September - 251 class starts today
- start big ideas; syntax, dynamic and static semantics ([slides])
- administrivia (see syllabus)
- quick interactive session with Racket
- PS0 out; get to know you, study administrivia, install Racket
- Assign: PS0 Introductions
| 06 September - discussion of dynamic and static semantics examples ([slides])
- PS0 due
- PS1 out; syntax, comparing languages, Racket, big-step vs. small-step semantics.
- Assign: PS1 Evaluating Languages
| 08 September - finish big ideas; pragmatics, dimensions ([slides])
- administrivia
- start Racket expressions and declarations; big-step semantics ([slides])
|
12 September - finish Racket expressions and declarations; big-step semantics exercise; start small-step semantics ([slides])
| 13 September - small-step semantics exercise ([slides])
- start functions and substitution model ([slides])
- PS1 due (Thu)
- PS2 out (Wed); semantics, Racket recursion, Racket lambda semantics and stack depth
- Assign: PS2 Antics with Semantics
| 15 September - wrap up functions; linear and logarithmic recursion ([slides])
|
19 September - discussion of PS02 solo problem; syntactic sugar with and, or, define; runtime vs. stack depth in recursion([slides])
- start cons cells and pairs ([slides])
| 20 September - pairs, lists, and start divide-conquer-glue list recursion ([slides])
| 22 September |
26 September - local binding (let), lexical contours, scope, let*, letrec ([slides])
| 27 September | 29 September - first-class functions ([slides])
|
03 October - higher-order list operations; map, filter, foldr ([slides])
| 04 October | 06 October |
10 October Fall Break | 11 October - PS3 & PS4 problem set party in class! Jane will be there. (Lyn is away at conference)
- PS4 out; first-class functions and higher-order list operations
- Assign: PS4 First-Class Fun
| 13 October |
17 October | 18 October - finish tree-shaped data with S-expressions ([slides])
- PS4 due
| 20 October |
24 October | 25 October | 27 October |
31 October Tanner Conference | 01 November | 03 November |
07 November | 08 November | 10 November |
14 November - Modules and abstract datatypes 1; mathlib, rational numbers [slides]
| 15 November | 17 November - Modules and abstract datatypes 3; sets-as-lists implementation, other set representations [slides]
- Brief overview of metaprogramming [slides]
|
21 November - Metaprogramming; interpreters, compilers, and language derivations [slides]
- PS7 due
- PS8 out (Monday) ; ADTs, modules, sets, metaprogramming
- Assign: PS8 Set Yourself Free
| 22 November Thanksgiving Break | 24 November Thanksgiving Break |
28 November - Metaprogramming wrap-up [slides]
- PostFix intepreter in SML [slides]
| 29 November - More PostFix in SML [slides]
- Sexp representations of PostFix programs in SML [slides]
- Introduction to Intex; Intex intepreter [slides]
| 01 December - Intex intepreter review; static argument checkging; Intex to Postfix compiler [slides]
- PS8 due
- PS9 out (Sun.); PostFix-in-SML, Intex, Bindex, Valex
- Assign: PS9 Open to Interpretation
|
05 December | 06 December | 08 December - Valex; multiple values, conditionals, dynamic typing, and desugaring [slides]
|
12 December | 13 December Reading Period | 15 December Final Exams |
19 December Final Exams | 20 December Final Exams | 22 December |