Programming Languages

CS 442/642 Waterloo

Synopsis and Overview

The lectures try to give an answer the following questions:
  • Where are various syntactic construct come from?
  • What do programs do (and how can we understand it)?
  • Prerequisites

    The lectures do not assume any prior knowledge of programming language theory. However, you must brush up your skills in the following areas:
  • Elementary math (sets, relations, induction, etc.).
  • Basic programming skills.

  • Book(s)

    Required: Structure of Typed Programming Languages. David A. Schmidt, MIT Press 1995.
    Optional: Types and Programming Languages. Benjamin Pierce, MIT Press 2002

    The lectures do not follow the textbook to the letter. Additional lecture notes will be made available for some of the advanced topics.


    CS 442: 20% 35% 45% N/A
    CS 642: 15% 30% 40% 15%

    Assignments will be collected in class on due date (often an electronic submission will be required). As the solutions may (and often will) be discussed on the due date in class, no late assignments can be accepted.

    To pass the course, a student must pass the final examination.

    Fine print: the usual university policies on academic honesty, fair use of computing facilities, etc., apply by default.