CSE P 505: Programming Languages

(part of the Professional Masters Program)

Autumn 2003


Instructor: Craig Chambers (chambers@cs) [anonymous feedback]

TA: Andrei Alexandrescu (andrei@cs)

Course Description

This course will study the main principles underlying the design of programming languages.  The first half of the course will focus on functional programming languages, as these tend to have the closest link to fundamental principles.  We will use the ML programming language as a practical example of these design principles, learning the language and writing some interesting programs in it.  We will complement this practical study with theoretical study of various lambda calculi and their formal semantics.  The second half of the course will study object-oriented languages, including learning and programming in an advanced practical OO language (such as Cecil) and studying the formal semantics of OO languages via lambda calculus extensions. 


Course Handouts

Mailing List and Threaded Archives

We will be using a mailing list, managed by Mailman, for administrative and instructional purposes.  Please sign yourself up ASAP.

To post to the mailing list, send email to csep505@cs.washington.edu.  (Not to cse505@cs.washington.edu, without the 'p', as that's a totally different class!)

You can add yourself to the mailing list or browse a threaded archive of the mailing list using the following web page: http://mailman.cs.washington.edu/mailman/listinfo/csep505

Note: Mailman has a badly designed user interface. In order to access the archives, you need your list password, which is not the same as your CSE password. In order to get your password, you need to go to the list info page, then go to the bottom, and use the "unsubscribe or edit options" form. (Who's the genius who thought that up?) On the resulting page, there's an button for sending you a password reminder.

ML Resources

Self Resources

Cecil Resources

Various Programming Language Resources