λ CS 251 : Principles of Programming Languages .

Staff / Hours

Instructor: Lyn Turbak, SCI E126
Drop-in hours TBA (in Lyn's office = SCI E126): (see the drop-ins calendar for the most up-to-date info):

Tutors:: Hope Anderson, Ngina Kariuki, Sherry Xu, Yige Zhu

Tutor Drop-ins (start the week of Feb 04)
(see the drop-ins calendar for the most up-to-date info)

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. Future slide links may be to slides from Fall 2018; in many cases these will be unchanged or edited lightly for this semester.

MonWedThu
28 January
  • 251 class starts today
  • start big ideas; what is this course about?; PL paradigms and dimensions; why you want to take this course [slides 1-14, solns]
  • quick administrivia (see syllabus); more on Wed.
  • quick interactive session with Racket
  • PL parts overview; syntax, start dynamic semantics; first dynamic semantics exercise ([slides 15-19])
  • PS0 out; get to know you, study administrivia, install Racket
  • PS1 out; syntax, comparing languages, Racket, big-step vs. small-step semantics.
  • Assign: PS0 Introductions
  • Assign: PS1 Evaluating Languages
30 January
  • more PL parts; remaining dynamic semantics exercises [slides 20-21, solns]
  • course administrivia (see syllabus)
  • discussion of investigating a section afternoon CS251 section
  • PS0 due
31 January
04 February 06 February
  • continue Racket expressions and declarations; big-step semantics exercise; definitions, small--step semantics [slides 21-44, solns]
07 February
11 February
  • wrap up functions; recursion; order of growth in time and space [slides 16-26, solns]
  • PS1 hardcopy solutions distributed
13 February 14 February
18 February Presidents Day
  • (Monday schedule for Tue. Feb 19)
  • Finish divide/conquer/glue list recursion in Racket [slides 14-23, solns]
  • PS2 hardcopy solutions distributed
20 February 21 February
25 February
  • first-class functions, nameable, passable, returnable, storable, creatable in any context [slides, solns]
  • PS3 dueish
27 February 28 February
  • more higher-order list functions, foldr, foldr-ternop [slides 15-23, solns]
  • PS3 hardcopy solutions distributed
04 March 06 March 07 March
11 March
  • metaprogramming appetizer 1
  • processing s-expression trees; first metalanguage examples = processing Racket-expressions-as-s-expressions [slides 11-16, solns]
13 March 14 March
18 March 20 March 21 March Spring Break
  • No class today
25 March Spring Break
  • No class today
27 March Spring Break
  • No class today
28 March Spring Break
  • No class today
01 April
  • Review introduction to SML slides covered before break; new material includes tupled vs. curried arguments, higher-order functions, `sumUpTo/makeLinear' exercise [slides (w/blanks) 29-31, solns]
03 April 04 April
  • More list processing in SML; pattern matching on lists; list accumulation, `map`/`filter`/`foldr` and friends in SML [slides (w/blanks) 7-16, solns]
08 April 10 April
  • Finish SML sum-of-product datatypes; binary trees, binary search trees [slides 10-23 w/blanks, solns]
  • Discuss upcoming PS8 Problem 2 on 2-3 trees
  • PS6 hardcopy solutions distributed
  • PS7 dueish
11 April
15 April Patriots Day
  • No class today
17 April
  • Finish SML modules and abstract datatypes; sets [slides 23-31]
  • Discuss PS8 Problems 3 (FunSet) and 4 (Operation Tree Set)
  • PS7 hardcopy solutions distributed
18 April
  • Metaprogramming; interpreters, compilers, and language derivations; language derivations exercise [slides 1-19]
22 April 24 April 25 April
  • Finish PostFix in SML; s-expressions in SML [slides 14-24
  • Introduction to Intex; sum-of-product abstract syntax; intex interpreter; static arg checking [slides 1-16 w/blanks]
29 April 01 May Ruhlman Conference
  • No class today
02 May
06 May 08 May 09 May
  • HOFL = Valex + first-class functions; static vs. dynamic scope; environment model of evaluation; closures [handout]
  • PS9 hardcopy solutions available
  • PS10 dueish (Fri)
13 May Reading Period
  • PS10 hardcopy solutions available
15 May Final Exams 16 May Final Exams
20 May Final Exams
  • All leftover CS251 work due by end of day on Tue. May 21
22 May 23 May