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.
![]() | 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. |
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.
| Week | Dates | Topic | Assignment |
| 1 | 09/02/2008, 09/04/2008 | Why Programming Languages? | Scheme Syntax |
| 2 | 09/09/2008, 09/11/2008 | Introduction to Scheme | TSPL Chapters 1, 2 |
| 3 | 09/16/2008, 09/18/2008 | More Scheme: Recursion, Continuations, and Procedures | TSPL Chapters 3, 4 |
| 4 | 09/23/2008, 09/25/2008 | Inductive Sets of Data | EOPL Chapter 1 |
| 5 | 09/30/2008, 10/02/2008 | Data Abstraction | EOPL Chapter 2 |
| 6 | 10/07/2008, 10/09/2008 | Expressions; our first language, LET | EOPL Chapter 3 |
| Friday, September 19 Final day to drop HC or BMC class without penalty. | |||
| 7 | 10/14/2008, 10/16/2008 | Fall Break | No classes |
| 8 | 10/21/2008, 10/23/2008 | EXPLICIT-REFS; a second language | EOPL Chapter 4 |
| 9 | 10/28/2008, 10/30/2008 | Continuation-Passing Interpreters | EOPL 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/2008 | No class on Thursday | |
| 14 | 12/02/2008, 12/04/2008 | ||
| 15 | 12/09/2008, 12/11/2008 | Thursday: last day of classes--All written work due 5:00 pm (including papers and lab notes). | |
Other dates of interest:
Final grades will be calculated as a weighted average of all grades according to the following weights:
Midterm Exam: 25%