This is

Meeting Time

Section 1:
Professor Lieberherr
Tuesdays, 6:00-9:00 pm, Room 70 DG


How to write interpreters in Java? The course will follow the traditional Northeastern approach of learning about programming languages by studying a series of increasingly more complex programming languages and their interpreters. In my version of the course we will not only use Scheme and Scheme tools but also Java and Java tools. This will facilitate technology transfer by showing how the same ideas, first expressed in Scheme, are expressed in a more widely used language and its tools.


Karl Lieberherr
308A WVH, 373-2077, Office hours: TBD


Goals and Themes:

To learn how a variety of programming language features and mechanisms may be understood by specifying them in a very-high-level language such as Scheme. A subsidiary theme will be the use of formal methods for program specification.


Data Structures or the equivalent, and some previous knowledge of Lisp or Scheme.

If you were assigned Lisp or Scheme as a deficiency in your admissions letter, you must have successfully completed the Scheme Proficiency Exam.

Some additional notes on how to prepare yourself for CSG111 are here.


The final grade is computed as a weighted average of 9 or 10 machine problems (50%), a midterm (25%), and a final exam (25%).

This course requires a lot of work: budget your time accordingly.


The mailing list for the class is Everyone should subscribe to this mailing list by completing the form at The list consists of the class members, me, and the TA, and is available for you to communicate with the class. Mail to this list is archived. When you write either to me or to the list, it is helpful if you use descriptive subject lines.

We will also be utilizing CCIS web forums in addition to the mailing list. Details will be supplied later.

If you ask me a question privately, I may post my reply to the class mailing list. If I do so, I will usually attempt to anonymize your question, so that you will not be discouraged from asking questions. On the other hand, if you say something clever and interesting, or if you point out an error that the class should be aware of, I will give you credit where credit is due.

During the course of the term, I may post my gradebook publicly so that we can correct any errors. If I do this, I will not post your name. I will post your grades indexed by the last 4 digits of your SSN or NUID (whichever is on the roster the registrar gives me). The list will be sorted numerically, and I will obfuscate the URL so that it will not be cached on Google. If you object to your inclusion in this list, please let me know and I will issue you a private 4-digit ID for this purpose.

Last modified: Oct. 2007