MAT 482: Computer Science Seminar
Principles of Programming Languages
Spring, 1997

Tue/Thu, 2:30-3:45 pm
Chambers 301


Course Description


Instructor:
Stephen L. Davis; click here for my weekly schedule.

Texts:
[EoPL] Friedman, Wand & Haynes, Essentials of Programming Languages, McGraw-Hill, 1992
[LS] Friedman & Felleisen, The Little Schemer, 4th ed., MIT Press, 1996

Overview:

This course is a study of the organization and structure of modern programming languages with emphasis on semantic issues. Interpreters are used to illustrate and encounter essential concepts in programming languages. The underlying language for these efforts will be Scheme, though the language elements interpreted by our programs may be very un-Scheme-like. The first one-third of the semester will cover a quick recollection of Scheme programming and an introduction to basic programming language concepts. In Chapter 5 we use this background to construct an interpreter for a simple language which supports assignment and which supports procedures as first class objects. This interpreter serves as the basis for the discussion in the succeeding material.

Scheme:

We will be using the MacGambit implementation of Scheme for the Macintosh. This implementation is public domain and you are encouraged to get a copy for your local Macintosh. There are some extensions to this implementation which will be provided.

Evaluation:

The timeline lists two Reviews; these will be supplemented with regular assignments, much of which will involve the production of code. The course will conclude with a final, or comprehensive, event. I am open to suggestions as to the form this event will take. A recipe for your evaluation is roughly: I grade on a "pointless" letter scale (A = awesome; B = bon; C = credible; D = deficient; E = euphemism for failing; F = failing; G = God-awful bad). My own internal sense of reckoning serves as the computational engine for combining these assessments into your final grade.

Class Policies:

Each member of the class is a valuable resource for others in the class. Absences and tardiness diminish the quality of the course; come to class and come on time. Assignments will be a regular feature, with submission of your efforts coming on roughly a weekly basis. Be sure to turn homework in on time. Reviews taken "off schedule" are extremely unusual and always arranged for in advance.

It is expected that you will at all times endeavor to honestly represent any work you turn in. This includes full and explicit attribution of assistance. Collaboration on some assignments may be restricted. If you have any question concerning the rules governing an assignment, do not hesitate to seek clarification.

Schedule Guesstimate:

(volatile!)
Date Section Event
Jan 14, 16 intros [LS] 1-3
Jan 21, 23 [LS] 4-6 [LS] 7-10 Scheme Writ
Jan 28, 30 [EoPL]1 2.1,2.2
Feb 4, 6 3.1-3.3 ch 2+
Feb 11, 13 ch 3+4.5,4.6
Feb 18, 20 Review5.1,5.2
Feb 25, 27 5.3,5.4 (SIGCSE)
Mar 4, 6 no class no class Spring Break
Mar 11, 13 5.5 (MAA SE Sec Mtg)
Mar 18, 20 ch 5+8.1,8.2
Mar 25, 27 8.3,8.58.4,8.7
Apr 1, 3 no class 8.8
Apr 8, 10 9.19.2,9.3
Apr 15, 17 Review10.1
Apr 22, 24 10.2ch 10+
Apr 29, May 1 ch 6ch 6+,7.1
May 6 ch 7+
May 8-14 Final Examinations