CSC302 2011S Programming Languages

Front Door

Questions? Ask them on Piazzza.

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

I've taught courses in programming languages for a number of years. A few years ago, I revamped the course to focus on readings from the primary literature, rather than synthesized ideas in textbooks. We will continue that approach for the second half of this course. In the first half of the course, we're going to try something a bit different - We will explore language design issues by experimenting with a variety of languages. (When I first taught this course, I denigrated the language a week approach, but I now see some good benefit to that idea.) 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.

Goals (draft): By the time you complete this course, you should be able to

Meets: MWF 9:00-9:50 in Science 3819.

Instructor: Samuel A. Rebelsky, Science 3824. Office hours TBD.

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 submit question, reflection, or note on some aspect of the reading by 9:00 p.m. the night before we are scheduled to discuss the reading in class. You will also have regular programming assignments.

Grading (subject to change):

Late Assignments: 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. Late assignments are penalized one letter grade per day late (or fraction thereof).


Rebelsky, Samuel (Ed.) (2011). Readings in Programming Languages. An anthology set up for this class. Expect to see it around the middle of the semester.

Tate, Bruce (2010). Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages. Raleigh, NC: The Pragmatic Bookshelf.

Attendance Policy: Because this class emphasizes lab and discussn and because I know students benefit from the presence of their colleagues, I expect you to attend every class period. In my experience, students who do not regularly attend class cause significant difficulties not only for themselves, but also for their classmates and for me. Hence, I have a strict attendance policy: Students with more than two unexecused absences will receive a one-letter penalty on their final grade.

Of course, I realize that there a variety of legitimate reasons that you will be unable to attend class, including, but not limited to, academic events, athletic events, illness, and family emergencies. Whenever possible, you should contact me in advance if you will be unable to attend class. Otherwise, you should notify me as soon as possible after class. If you must miss a class because of illness, I want you, rather than Health Services, to notify me.

In rare instances, I may allow a student to do a significant service to the class (e.g., acting as TA, providing instructions for a difficult task, grading an assignment) to make up a missed day.

Extra Credit: I offer a number of forms of extra credit during the semester. Here are some of the most common ones. Throughout the term, I may suggest other forms of extra credit.

Good-Faith Grade Guarantee:

Students who make a good faith effort in this class will pass the class, with at least a C. A good-faith effort includes missing no more than two classes, turning in every homework assignment and reflections on at least 90% of the readings, and spending the requisite time on each examination.


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.



Long ago and far away [Samuel A. Rebelsky]

  • Created.

Saturday, 22 January 2011 [Samuel A. Rebelsky]

  • Updated for new version of CSC302.

Sunday, 23 January 2011 [Samuel A. Rebelsky]

  • Added history section.
  • Rearranged slightly.
  • Checked links.
  • Other modifications.

Sunday, 30 January 2011 [Samuel A. Rebelsky]

  • Fixed the time for reading questions.
  • Fixed the late work section.

Monday, 7 March 2011 [Samuel A. Rebelsky]


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 19 09:45:23 2011.
The source to the document was last modified on Thu May 19 08:59:29 2011.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,