CS245: Principles of Programming Languages, Bryn Mawr College

Douglas Blank
Fall 2008

Overview

An introduction to a wide range of topics relating to programming languages with an emphasis on abstraction and design. Design issues relevant to the implementation of programming languages are discussed, including a review and in-depth treatment of mechanisms for sequence control, the run-time structure of programming languages and programming in the large. The course has a strong lab component where students get to construct large programs in at least three different imperative programming languages.

General Information

Instructor: Douglas Blank, 248 Park Science Building, 526-6501
Email: dblank (at) cs (dot) brynmawr (dot) edu
Web: cs.brynmawr.edu/~dblank
Office hours: TBA
Lectures: Tues and Thursdays
Lab: Park Science Building, room 231
Lab Assistants: TBA

Texts

The Scheme Programming Language, R. Kent Dybvig. Third Edition, 2003. MIT Press.
Essentials of Programming Languages, Daniel P. Friedman and Mitch Wand. Third Edition, 2008. MIT Press.

Software

We will use the program Petite Scheme, a freely available version of Chez Scheme. We will also use a new version of Scheme, called Pyjama Scheme, and C#. These are all available on the Computer Science Linux machines. You will get an account if you don't have one already.

Schedule

WeekDatesTopicAssignment
1 09/02/2008, 09/04/2008Why Programming Languages?Scheme Syntax
2 09/09/2008, 09/11/2008Introduction to SchemeTSPL Chapters 1, 2
3 09/16/2008, 09/18/2008More Scheme: Recursion, Continuations, and ProceduresTSPL Chapters 3, 4
4 09/23/2008, 09/25/2008Inductive Sets of DataEOPL Chapter 1
5 09/30/2008, 10/02/2008Data AbstractionEOPL Chapter 2
6 10/07/2008, 10/09/2008Expressions; our first language, LETEOPL Chapter 3
Friday, September 19 Final day to drop HC or BMC class without penalty.
7 10/14/2008, 10/16/2008Fall BreakNo classes
8 10/21/2008, 10/23/2008EXPLICIT-REFS; a second languageEOPL Chapter 4
9 10/28/2008, 10/30/2008Continuation-Passing InterpretersEOPL Chapter 5
10 11/04/2008, 11/06/2008
11 11/11/2008, 11/13/2008
12 11/18/2008, 11/20/2008
13 11/25/2008, 11/27/2008No class on Thursday
14 12/02/2008, 12/04/2008
15 12/09/2008, 12/11/2008Thursday: last day of classes--All written work due 5:00 pm (including papers and lab notes).

Other dates of interest:

Grading

Final grades will be calculated as a weighted average of all grades according to the following weights:

Midterm Exam: 25%
Final Exam: 25%
Labs: 25%
Project: 25%

dblank (at) cs (dot) brynmawr (dot) edu