Computer Science 342 studies functional programming
and the ideas behind modern programming languages.
To make the programming language ideas clear and precise, it uses
interpreters.

This material reflects the Spring 1999 offering of the course,
which has been in use for several years now.
(In the distant past, we used MacLennan's book
Principles of Programming Languages
(Holt, Reinhart and Winston, 1987),
but in Spring 1991
we switched to
Samuel N. Kamin's book
Programming Languages: An Interpreter-Based Approach
(1990, Addison-Wesley Publishing Co., Inc.)
in order to focus more on programming aspects.
With the use of both
Scheme
and C++ in our introductory curriculum,
we have now switched to
Daniel P. Friedman,
Mitchell Wand, and
Christopher T. Haynes's
bookEssentials of Programming Languages,
in order to focus more on programming language semantics
and meta-programming.)