CS105 -- Programming Languages
Fall, 2007
(last updated 9/17/2007)


Wayne Iba,
office: new Math and Computer Science Building,
phone: 565-6799
Office hours: see my main teaching page
Programming Languages: Application and Interpretation, (v.2007-04-26) Shriram Krishnamurthi. (2007). [required.  however, the book is available online in its entirety. we will use version 2007-04-26.]
Time and place: Tues. & Thurs., 1:15-3:05, Bauder Hall, 101.


Tentative class schedule.

This course is not about programming. However, you will become a significantly better programmer for having completed it. The course introduces the issues surrounding the design and implementation of programming languages. Mostly, we will use Scheme to implement interpreters for a variety of languages (including various subsets of Scheme itself). Because you will be writing interpreters that support the various features, you will intimately understand issues such as scope, lazy and eager evaluation, recursion, mutation, continuations, types, polymorphism, and much more.

The course will require a significant commitment from you. Plan for it. Start your readings and assignments early. You will be required to read the text. If you work the examples as you go through the text, your assignments will be manageable. You will typically be completing one assignment each week.

Eureka Course Link
Acknowledgments:  I may be borrowing extensively from courses Shriram has taught at Brown University.  I encourage you to make a link to his pages and use them as additional resources.