λ 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
  • compositional programming
  • iteration by tail recursion 1
01 March
  • iteration by tail recursion 2
02 March
  • start intro to SML
  • (Fri) PS4 due
  • (Fri) PS5 out; compositional programming, tail recursion
06 March
  • Guest lecturer today (lyn away)
  • finish intro to SML
  • start lists in SML
08 March
  • Guest lecturer today (lyn away)
  • finish lists in SML
09 March
  • Guest lecturer today (lyn away)
  • sum-of-product (SOP) datatypes 1
  • (Fri) PS5 due
  • (Fri) PS6 out; s-expressions, Postfix, intro to SML
13 March
  • sum-of-product (SOP) datatypes 2
15 March
  • modules and abstract data types (ADTs) 1
16 March
  • modules and abstract data types (ADTs) 2
  • (Fri) PS6 due
  • (Fri) PS7 out; sum-of-product datatypes, modules and abstract data types
20 March
  • tree-shaped data with S-expressions
  • PostFix and intro to metaprogramming 1
  • PostFix and intro to metaprogramming 2
  • metaprogramming and language derivations
22 March
  • PostFix and Sexp in SML
23 March
  • Intex; an expression-based language
  • (Fri) PS7 due
27 March Spring Break 29 March Spring Break 30 March Spring Break
03 April
  • Intex to PostFix translator
  • PS8 out; Intex and Bindex
05 April
  • Bindex; local naming
06 April
  • extending Bindex
10 April
  • Valex; dynamic typechecking and desugaring
12 April
  • environments and closures
13 April
  • HOFL; dynamic vs static scope
  • (Fri) PS8 due
  • (Fri) PS9 out; Valex, closures, HOFL
17 April Patriot's Day 19 April
  • HOFLEC; state and closures
20 April Monday Schedule
  • Object-oriented programming (OOP) with closures
24 April
  • laziness and memoization
26 April Ruhlman Conference 27 April
  • parameter passing
  • (Fri) PS9 due
  • (Fri) PS10 out; state and closures, laziness, parameter passing
01 May
  • continuations
03 May
  • non-local exits and exceptions
04 May
  • asynchronous programming in JavaScript
  • PS10 due;
  • Optional extra-credit PS11; continuations, exceptions, asynchronous programming
08 May Reading Period 10 May Final Exams 11 May Final Exams
15 May Final Exams 17 May 18 May