CS 410/520 Dependently Typed Programming, Home Page, Spring Term 2010

Instructor: Tim Sheard
Office: FAB 120-04
phone: 503-725-2410
office hours: Thursday 2:00-4:00 pm (might be changed)
course meeting time: Monday & Wednesday 14:00-15:50 pm
course meeting place: CH 359
lab meeting place: CS Unix Lab, FAB 88-10

The Daily Record lists what assignments are due, what assignments are assigned, what the class topics are, and all other important information.Announcements are made here. Links to everything we do in class are kept here. This information is constantly updated. You should bookmark the daily record page and check it every day.

This course is a graduate CS 520 (CRN 64271) and senior CS 410 (CRN 64270) seminar about dependently types programing. In this course we will use the Omega language which supports a simple form of dependently typed programming which is very similar to Haskell.

Here are some of the topics we might cover.

  1. The Curry-Howard isomorphism.
  2. Tagless typed interpreters.
  3. Data-generic programming (i.e. Maps at all types, generic show, generic marshalling).
  4. Size generic programming (i.e. List based maps for 1,2,3, ... lists).
  5. Typed meta-programming (i.e. programs that write programs).
  6. Logical relations as witness types.
  7. Programming at the type level.
  8. Types and hardware descriptions.
  9. Programming language meta-theory (Subject reduction).

Here are links to some of the materials we will use.

  1. Omega users manual
  2. Programming in Omega
  3. Generic Programming in Omega.

Class room policy regarding the flu.

My files on my H drive.