λ CS 251 : Principles of Programming Languages .

Staff / Hours

Instructor: Lyn Turbak, SCI E126
Drop-in hours (SCI E126):

Tutor Drop-in:

Schedule (jump to now)

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.

TueWedFri
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
  • 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
  • Thanksgiving
24 November Thanksgiving Break
  • Thanksgiving
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