Programming Languages (CS302 2006S)

Front Door

Welcome to the Spring 2006 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.

I've taught CSC302 (and a course like it at Dartmouth) for a number of years. This year, I'm making some significant changes in the course. I've dropped some topics I've traditionally taught and added some new topics. Perhaps most importantly, I've re-emphasized primary readings (rather than textbooks) and I've decided to incorporate more readings from the world of practice, rather than just the languages community. (The central example of the latter is Bruce Tate's Beyond Java, but I'm also incorporating some essays from Paul Graham's Hackers & Painters and associated stuff available on the Web.) Expect the syllabus to change regularly as I figure out what I want to emphasize and deemphasize.

You may also find it useful to read the class faq.

Meets: MWF 11:00-11:50 in Science 2435.

Instructor: Samuel A. Rebelsky, Science 2427. Office hours MTuTh 1:15-2:05

Regular Work: Because you will often be reading primary materials, rather than distillations of those materials, I will expect you to read those materials carefully and to reflect on them. For each reading, you will send me a one-paragraph reflection on some aspect of the reading. You will also have a weekly assignment on general language issues.

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).


Tate, Bruce (2005). Beyond Java. Sebastapol, CA: O'Reilly and Associates. ISBN: 0-596-10094-9

As I mention above, I'm restructuring the class to give you a bit more of a sense of what real programmers are saying about languages. Tate's book gives a good view of why Java was successful, why some better languages were less successful, and what might lead other languages to success or failure.

We will also use a variety of readings from the literature, which I will distribute to you as appropriate.


At times I will post your work or notes about you in the course web. I tend to leave everything available for past and future generations. If you would like the references to you deleted, please notify me after the semester has ended.

Disclaimer: 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 Thu May 11 08:16:34 2006.
The source to the document was last modified on Thu May 11 08:16:32 2006.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Check with Bobby

Samuel A. Rebelsky,