λ CS 251 : Principles of Programming Languages .

Staff / Hours

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

Tutor Drop-ins:

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.

MonWedThu
23 January 25 January
  • 251 class starts today
  • start big ideas ([slides])
  • administrivia (see syllabus)
  • quick interactive session with Racket
  • PS0 out; get to know you, study administrivia, install Racket
  • Assign: PS0 Introductions
26 January
30 January
  • finish big ideas; pragmatics, dimensions ([slides])
  • App Inventor example
  • start Racket expressions and declarations; big-step semantics ([slides])
01 February
  • finish Racket expressions and declarations; big-step semantics with environment, small-step semantics([slides])
02 February
06 February
  • more substitution model; recursion [slides]
08 February
  • function wrap-up; tree recursion, define syntactic sugar [slides]
  • cons cells and lists [slides]
09 February
  • SNOW DAY
  • list recursion [slides] (study slides 16 through 42 at home due to snowstorm)
13 February
  • list recursion examples [slides]
15 February 16 February
20 February President's Day
  • No class on Mon. Feb 20; these materials are for Tue Feb 21 (Mon. schedule)
  • lexical contours, scope, let*, letrec [slides]
  • start first-class functions [slides]
22 February
  • finish first-class functions [slides]
23 February
  • higher-order list operations [slides]
  • PS3 due
  • PS4 out; first-class functions and higher-order list operations
  • Assign: PS4 First-Class Fun
27 February 01 March 02 March
06 March
  • MR, Meera, and Angela teach class (Lyn away)
  • tail recursion/iteration wrap up; iterate and genlist [slides] [slides w/solns]
08 March 09 March
13 March 15 March 16 March
20 March
  • SML abstract data types; rational numbers [slides]
22 March
  • SML abstract data types; sets-as-lists [slides]
23 March
27 March Spring Break 29 March Spring Break 30 March Spring Break
03 April 05 April 06 April
10 April 12 April
  • PostFix interpretation in SML [slides]
  • Flesh out PostFixStarter.sml
13 April
  • S-expressions in SML PostFix interpreter [slides]
  • PS5 and PS6 hardcopy solns handed out
  • Introduction to Intex, an integer expression language (through eval function) [slides]
17 April Patriot's Day 19 April
  • More Intex; static analysis (argument checking); Intex to PostFix translator [slides]
20 April Monday Schedule
  • metaprogramming and implementation derivations [slides]
  • PS7 due
24 April
  • Introduction to Bindex; local naming; Bindex syntax and free variables [slides]
  • PS8 out (Tue) metaprogramming derivations; PostFix in Racket and SML; Intex and Bindex in SML
  • Assign: PS8 Open to Interpretation
26 April Ruhlman Conference 27 April
  • Bindex eval function; extending bindex to Sigmex [slides]
01 May
  • Valex; dynamic typechecking and desugaring
03 May
  • HOFL; environments and closures
04 May
  • HOFL; dynamic vs static scope
  • PS8 due
08 May Reading Period 10 May Final Exams 11 May Final Exams
15 May Final Exams 17 May 18 May