CS152: Programming Languages

Spring 2011

Course Information

  1. Lecture: Tuesday, Thursday 10:00-11:30, Building 60 Oxford, Room 330
  2. Syllabus
  3. Policies for Assignments
  4. In Lieu of a Required Textbook
  1. Instructor: Dan Grossman, grossman followed by @ and then seas.harvard.edu, Maxwell Dworkin 233
       Office hours: Wednesdays 10:30-11:30AM and by appointment and just come by
  2. Teaching Fellow: Paul Govereau, govereau followed by @ and then cs.harvard.edu, Maxwell Dworkin 309
       Office hours: Tuesdays 7:00-9:00PM in the CS50 lounge on the ground floor of Maxwell Dworkin

Homework

  1. "Homework 0" (worth 0 points), "due" Friday, January 28th

  2. Homework 1, due Thursday February 10, 10:00AM   hw1.pdf   hw1.tar
  3. Homework 2, due Thursday February 24, 10:00AM   hw2.pdf   hw2.tar
  4. Homework 3, due Tuesday March 22, 10:00AM   hw3.pdf   hw3.tar
  5. Homework 4, due Thursday March 31, 10:00AM   hw4.pdf   hw4_problem3.tar   hw4_problem5.tar
  6. Homework 5, due Thursday April 14, 10:00AM   hw5.pdf   hw5_problem1.tar   hw5_problem3.tar
  7. Homework 6, due Tuesday April 26, 10:00AM   hw6.pdf   hw6.tar

  8. Technical-Perspective Paper   Deadlines: April 19, April 28, May 3

Class Materials

  1. 1. Jan 25: Course Introduction and barely begin Caml Tutorial   1up-slides   6up-slides
  2. 2. Jan 27: Caml Tutorial   camlTutorial.tar
  3. 3. Feb 1: (Finish Tutorial); Syntax   1up-slides   6up-slides
  4. 4. Feb 3: Operational Semantics   1up-slides   6up-slides   reference-sheet   live-proofs-etc
  5. 5. Feb 8: Proofs   1up-slides   6up-slides   proofs
  6. 6. Feb 10: Pseudo-Denotational Semantics   1up-slides   6up-slides   code
  7. 6. Feb 10: Little Trusted Languages; Equivalence   1up-slides   6up-slides   full proofs
    6. Feb 10: (we finished slide 9 of lecture 6)
  8. 7. Feb 15: Lambda Calculus   1up-slides   6up-slides
    7. Feb 15: (we finished slide 13 of lecture 7)
  9. 8. Feb 17: Reduction Strategies; Substitution   1up-slides   6up-slides
    8. Feb 17: (we finished slide 10 of lecture 8)
  10. 9. Feb 22: Simply-Typed Lambda Calculus   1up-slides   6up-slides
  11. 10. Feb 24: Type-Safety Proof   1up-slides   6up-slides   proof
    10. Feb 24: (we got a little ahead and finished slide 6 of lecture 11)
  12. 11. Mar 1: STLC Extensions and Related Topics   1up-slides   6up-slides
  13. X. Mar 3: Midterm
  14. 12. Mar 8: Curry-Howard Isomorphism   1up-slides   6up-slides
    12. Mar 8: (we got a little ahead and finished slide 8 of lecture 13)
  15. 13. Mar 10: Subtyping   1up-slides   6up-slides
  16. X. Spring Break
  17. 14. Mar 22: Evaluation Contexts, Continuations, Lambda Interpreters, CPS   1up-slides   6up-slides   interpreter code   tail-calls code
    14. Mar 22: (we finished slide 16 and the third interpreter version)
  18. 15. Mar 24: Parametric Polymorphism   1up-slides   6up-slides
    15. Mar 24: (we finished slide 9 of lecture 15)
  19. 16. Mar 29: Recursive Types   1up-slides   6up-slides   example typing
    15. Mar 24: (we finished slide 7 of lecture 16)
  20. 17. Mar 31: Existential Types; Type-and-Effect Systems   1up-slides   6up-slides   ML code
  21. 18. Apr 5: Type Inference (guest lecture by Greg Morrisett)   ML code
  22. 19. Apr 7: Shared-Memory Concurrency and Parallelism   1up-slides   6up-slides   ML code
    19. Apr 7: (we finished slide 13 and all the ML code)
  23. 20. Apr 12: Synchronous Message-Passing and Concurrent ML   1up-slides   6up-slides   lec20.ml   lec20.mli
    20. Apr 12: (we finished slide 8 of lecture 20)
  24. 21. Apr 14: Object-Oriented Programming   1up-slides   6up-slides
    21. Apr 14: (we finished slide 19 of lecture 21)
  25. 22. Apr 19: Haskell: Laziness and the IO Monad (guest lecture by Kathleen Fisher)   HaskellOverview.pptx   IntroToHaskell.hs   IOMonad.hs
  26. 23. Apr 21: Advanced Concepts in OOP   1up-slides   6up-slides
  27. 24. Apr 26: Double Feature
    24. Apr 26: Bounded Polymorphism; Classless OOP   1up-slides   6up-slides
    24. Apr 26: Course Victory Lap   1up-slides   6up-slides

Exams

Midterm: Thursday, March 3, in class
 Reference sheet from the midterm
 Sample midterms:  2009  unsolved   solved  2008  unsolved   solved  2007  unsolved   solved  2006  unsolved   solved  2005  unsolved   solved

Final: Saturday, May 7th, 9:00AM, Maxwell Dworkin G-125
 First three pages of the final
 Important Caveats About Sample Finals
 Sample finals:  2009  unsolved   solved  2008  unsolved   solved  2007  unsolved   solved  2006  unsolved   solved  2005  unsolved   solved

Caml Information

For many free and useful Caml resources, see the CS51 Resources page.

For installing OCaml and the associated tools you need, read this in conjunction with (mostly) following the CS51 installation notes.

Valid CSS! Valid XHTML 1.1