CSE P505: Programming Languages, Autumn 2016

Course Info

Course Information

Lecture: Thursday 6:30-9:20PM, Johnson Hall (JHN) Room 175

Course Email List (mandatory): Please ensure you receive email sent to the course mailing list regularly, roughly at least once a day. Any important announcements will be sent to this list.

Course staff: (For most questions, email us both.)
  Instructor: Dan Grossman, djg@cs.washington.edu (not @u...)
  TA: John Toman, jtoman@cs.washington.edu

Course Discussion Board (optional but encouraged)

Anonymous Feedback (goes only to the instructor)

Course Materials

Material in the future naturally subject to change in terms of coverage or schedule

  1. 1. Sep 29: Course Introduction; OCaml Tutorial
      slides-pptx   slides-pdf   slides-pdf-6up   lec1.ml   foo.ml   foo.mli   bar.ml

  2. 2. Oct 6: Function Programming Idioms; Syntax and Large-Step Semantics
      slides-pptx   slides-pdf   slides-pdf-6up   lec2idioms.ml   imp_interpret_large.ml

  3. 3. Oct 13: Small-Step Semantics, Translational Semantics, State-Passing, Intro to Lambda Calculus
      slides-pptx   slides-pdf   slides-pdf-6up   imp_interpret_small.ml   imp_translate.ml   state_monad.ml   state_monad.fs

  4. 4. Oct 20: Untyped Lambda-Calculus, Formal Operational Semantics, Substitution
    We didn't get to the discussion of environment-based semantics; will do those last few slides at the beginning of Oct 27's class
      slides-pptx   slides-pdf   slides-pdf-6up   imp_formal.pdf   lambda_calculus.ml

  5. 5. Oct 27: Continuations; Types
      slides-pptx   slides-pdf   slides-pdf-6up   context_semantics.ml   cps_examples.ml

  6. 6. Nov 3: Types, Types, Types
      slides-pptx   slides-pdf   slides-pdf-6up   curry-howard-on-one-slide     Optional: stlc_soundness_proof.pdf

  7. 7. Nov 10: Subtypes, Type Variables
      slides-pptx   slides-pdf   slides-pdf-6up   inference_examples.ml
    Note: type inference was done on November 17 and December 1

  8. 8. Nov 17: Haskell, Laziness, IO Monad
      slides-pptx   slides-pdf   slides-pdf-6up   lec8.hs

  9. 9. Dec 1: Haskell Typeclasses and Monads
      slides-pptx   slides-pdf   slides-pdf-6up   lec9.hs

  10. 10. Dec 8: Object-Oriented Programming; Course Wrap-Up
      slides-pptx   slides-pdf   slides-pdf-6up


Homework Assignments

Beginning-Of-Course Survey: on-line survey worth 0 points, "due" Tuesday October 4

Dropbox for homework turn-in


Information about the final exam

Our exam:
As given out:   exam.pdf   exam.ml   exam.fs   exam.hs
Sample solutions:   examSolved.pdf   examSolved.ml   examSolved.hs


Software Installation and Use

The first link below is a narrative on what you need for doing homeworks in either OCaml or F# and relevant advice on known-to-work configurations. Below that is a list of relevant links without explanation, just so they are in one place if you want to find them later without rereading the narrative.


Links to Other Resources

Additional suggestions welcome. Will add more as we think of them.

Valid CSS! Valid XHTML 1.1