λ CS 251 : Principles of Programming Languages .

Staff / Hours

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

Tutor:
MR Ngo: drop-ins Wed. 7-9pm in micro-focus

Schedule (jump to now)

The future and recent past, as recorded here, are subject to revision at any time.

TueWedFri
30 August 31 August 02 September
06 September
  • administrivia (see syllabus)
  • finish big ideas (slides [1 up] [4 up], notes)
  • App Inventor example
  • introductory interactive session with Racket
  • motivation for studying computability in a PL context
07 September
  • start computability, the halting problem, and program analysis (slides [4 up], notes)
09 September
  • finish computability, the halting problem, and program analysis (slides [4 up], notes)
  • start Racket expressions and declarations (slides [4 up])
  • PS1 Problems 1-3 & 5 due today (grace period until Sat@6pm); PS1 Problem 4 due Mon evening.
  • Assign: Antics with Semantics
13 September
  • finish Racket expressions and declarations (slides [4 up])
14 September
  • No quiz today
  • start Racket functions (slides [4 up])
16 September
  • finish Racket functions (slides [4 up])
  • start Racket list processing (slides [4 up])
  • P1 solution hardcopies handed out
  • PS2 due (except Problem 5, due on Mon. Sep. 20)
  • PS3 posted Mon. Sep. 19, due Wed. Sep 28
  • Assign: Racket List Recursion
20 September
  • Racket pairs, lists, and list recursion (slides [4 up])
21 September 23 September
  • Defining `snoc`, `my-append`, `append-all`, and `my-reverse` with divide/conquer/glue [Solutions]
  • Local Binding with `let` (slides [4 up])
27 September
  • Start first-class functions and higher-order list operations in Racket (slides [4 up])
28 September
  • No quiz today
  • Finish first-class functions and higher-order list operations in Racket (slides [4 up])
  • PS3 due
30 September Inauguration
  • No class
  • PS4 out Sat. Oct 1, due Fri. Oct 7; first-class functions and higher-order list operations
  • Assign: First-Class Fun
04 October
  • Finish genlist (slides [4 up])
  • genlist-starter.rkt
  • Introduction to function composition operator and identity function
05 October 07 October
11 October Fall Break
  • No class
12 October 14 October
18 October
  • More iteration via tail recursion; foldl [slides 1 -- 26]
19 October
  • more foldl; iterate and iterate-apply (half the class at GHC) [slides 1 -- 26]
21 October
  • work on PS5 in class (half the class at GHC)
  • PS5 out today, due Fri. Oct 28; compositional programming, iteration
  • Assign: Iterate Until Done
25 October
  • S-expressions; Tree manipulation in Racket
  • Begin Postfix interpreter in Racket
26 October 28 October
01 November
  • Postfix wrapup (displaying interpreter state; better ways of handling arithops and relops; treating exec as a stack transformer)
02 November 04 November
08 November 09 November
  • Watch Clinton's concession speech and other news on CNN
11 November
15 November 16 November 18 November
22 November
  • Modules and ADTS in SML; Rational number signatures and implementations [slides 1-22]
23 November Thanksgiving Break 25 November Thanksgiving Break
  • PS7 out (due Fri. Dec 2); SML sum-of-products, modules, adts
  • Assign: Set Yourself Free
29 November 30 November
  • Finish Postfix interpreter in SML; S-exrpressions in SML [slides 5 -- 23]
02 December
  • Metaprogramming; interpretation/compilation derivations and metacicularity [slides]
  • Intex interpreter in SML [slides 1 -- 8]
06 December
  • More Intex; static analysis and Intex-to-PostFix compiler [slides 9 -- 19]
  • Start Bindex interpreter in SML; environments
  • PS7 due Mon Dec. 5
  • PS8 out Mon Dec. 5 (due Mon. Dec 12)
07 December
  • wrap up Bindex
  • environments and closures; static vs dynamic scope
09 December
  • environments and closures with state

Long-term schedule on the syllabus