Welcome to the Spring 2005 session of Grinnell College's CSC 302, Programming Language Concepts. The course is described fairly well in the official blurb. My take on this course is that we'll be expanding your knowledge of the programming language paradigms while investigating design issues in programming languages. While we will touch on (and use) a number of languages, most of the emphasis will be on higher-level issues.
This is a transitional session of CSC302. In every semester, we include some formal aspect of languages. In the past, we have alternated between work on denotational semantics and work on what we call "Gries-Style Formalism" (after David Gries, the author The Science of Programming, which we use for formal aspects). Gries now appears in CSC201, so in the future, we will not use that book in CSC302. However, because many of you have not worked with these formalisms, we will cover them this semester.
This is also an experimental session of CSC302. Rather than relying on a textbook, I will have you read papers from journals and conference proceedings. We should cover much the same material that we normally cover, but in a different way.
You may also find it useful to read the class faq.
Meets: MWF 9:00-9:50 in Science 2435.
Instructor: Samuel A. Rebelsky, Science 2427. Office hours MWTh 1:15-2:05
Regular Work: You will have a weekly assignment for the general languages stuff (due Mondays) and a weekly assignment for the Gries-style stuff (due Fridays). You are also expected to keep up with readings.
Grading (subject to change):
My experience shows that students who turn in work late learn significantly less than students who turn material in on time. (I'm not sure about cause and effect.) Hence, I strongly discourage late assignments. Unless prior arrangements have been made, assignments are due within five minutes of the start of class. After that they are considered late. Late assignments are penalized one letter grade per day late (or fraction thereof).
Gries, David (1998). The Science of Programming. New York, NY: Springer-Verlag. ISBN: 0-387-96480-0.
This is the classic text on program verification and our core resource for discussions of program correctness.
We will also use a variety of readings from
the literature, which
I will distribute to you as appropriate.
I usually create these pages
on the fly, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Fri May 13 13:40:44 2005.
The source to the document was last modified on Fri May 13 13:40:40 2005.
This document may be found at