CIS 500: Syllabus for WPE-I


Types and Programming Languages. Benjamin C. Pierce. MIT Press, 2002.

WPE-I Syllabus:

  1. Chapters 1-3, 8, 9, 11, and 15 of TAPL, excluding Section 15.6 (Coercion Semantics for Subtyping).
  2. Programming with dependent types.
  3. Semantics for imperative programs
  4. Working knowledge of the Coq proof assistant and its use in formalizing proofs about programming languages. (Study materials for this part of the syllabus will be made available as the semester progresses. Students who want to take the WPE exam without sitting in on the course can get these materials from the CIS500 web page. The first nine chapters of Interactive Theorem Proving and Program Development by Yves Bertot and Pierre Castéran [Springer, 2004] may be useful as a supplemental reference.)


This syllabus largely overlaps to the material that will be covered in class and homework assignments in CIS500. The WPE-I exam itself will be the same as the CIS500 final exam. A separate (non-curved) WPE-I grade of Pass or Fail will be given in addition to the normal (curved) final exam grade for CIS500.