MAT 482: Computer Science Seminar
Principles of Programming Languages
Tue/Thu, 2:30-3:45 pm
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.
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.
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:
Stephen L. Davis; click here for my
[EoPL] Friedman, Wand & Haynes, Essentials of Programming Languages,
[LS] Friedman & Felleisen, The Little Schemer, 4th ed.,
MIT Press, 1996
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.
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.
- 4 parts reviews,
- 3 parts homework,
- 3 parts final event and
- a dash (up to 1 part) of other considerations
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.
| 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
| Feb 18, 20
| Feb 25, 27
| Mar 4, 6
|| no class || no class
|| Spring Break
| Mar 11, 13
||5.5|| (MAA SE Sec Mtg)
| Mar 18, 20
| Mar 25, 27
| Apr 1, 3
|| no class ||8.8
| Apr 8, 10
| Apr 15, 17
| Apr 22, 24
| Apr 29, May 1
||ch 6||ch 6+,7.1
| May 6
||ch 7+ ||
| May 8-14
|| Final Examinations