CSE307 Home Page (Fall 2008)

Welcome to the CSE307 (Principles of Programming Languages) home page for Fall 2008. This page will be the main source of course information throughout the semester.


Important Course News and Messages

Please check this page regularly for new messages. The newest messages will always appear first.

Final Exam grade sheets are now available.
These are now available under the Personalized Course Information Area.

The final exam was graded on a 120-point scale. The highest score actually achieved was 98. There were 3 scores lower than 25. The statistics are as follows:

FINAL (whole class ) Valid 29; Mean 52.00; Std. Dev. 21.15 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 6 grade sheets are now available.
These are now available under the Personalized Course Information Area. If you have a question or complaint about your grade, please first contact the TA by E-mail and discuss it. If you are unable to reach agreement, contact me and I will render my decision.

Homework 6 was graded on an 11-point scale. The statistics are as follows:

HW6 (whole class ) Valid 10; Mean 5.00; Std. Dev. 3.20 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 4 and 5 grade sheets are now available.
These are now available under the Personalized Course Information Area. If you have a question or complaint about your grade, please first contact the TA by E-mail and discuss it. If you are unable to reach agreement, contact me and I will render my decision.

Homework 4 was graded on a 19-point scale. Homework 5 was graded on a 10-point scale. The statistics are as follows:

HW4 (whole class ) Valid 16; Mean 9.06; Std. Dev. 6.64 HW5 (whole class ) Valid 14; Mean 4.21; Std. Dev. 2.55 In the above, "Valid" means the number of nonzero scores in the applicable category.

Final Exam Time/Place.
The Final Exam will be held on Tuesday, December 23, from 11:00AM to 1:30PM, in Heavy Engineering 201.

Homework 3 grade sheets are now available.
These are now available under the Personalized Course Information Area. If you have a question or complaint about your grade, please first contact the TA by E-mail and discuss it. If you are unable to reach agreement, contact me and I will render my decision.

Homework 2 was graded on a 15-point scale. The statistics are as follows:

HW3 (whole class ) Valid 28; Mean 13.54; Std. Dev. 2.15 In the above, "Valid" means the number of nonzero scores in the applicable category.

Exam 2 grade sheets are now available.
These are now available under the Personalized Course Information Area. Exam 2 was graded on a 67-point scale (see below). The maximum grade on Exam 2 was 65 points. The minimum grade was 6 points. There were three scores higher than 39. There were three scores lower than 18. The statistics are as follows: EXAM2 (whole class ) Valid 29; Mean 29.48; Std. Dev. 11.98 In the above, "Valid" means the number of nonzero scores in the applicable category.

Problem 6, part 3 turned out not to make any sense. There is a version of it that would make sense, but that is not what I put on the exam. Nobody seemed to really notice during the exam how nonsensical the question was. Anyway, I decided to collapse the grading scale for this part of the problem from 5 points to 2 points, and I gave people who did some nontrivial writing for this problem two points to compensate them for time spent. Note that a majority of students in the class did not write anything for this part.

I put here some notes on a couple of the problems on the exam.

Homework 5 Solution.
I posted here my solution to HW5, in the form of a language Refs that extends Types with references and dynamic storage allocation and a compiler that fully implements these, as well as the record and array data structures from Types.

Homework 4 due date extended by 1 day.
At the beginning of class today (Nov. 6) I was asked for a 1-day extension on the HW4 due date. I agreed, but noted that HW5 will be issued more or less on schedule, probably by about midday tomorrow.

Homework 2 grade sheets are now available.
These are now available under the Personalized Course Information Area. If you have a question or complaint about your grade, please first contact the TA by E-mail and discuss it. If you are unable to reach agreement, contact me and I will render my decision.

Homework 2 was graded on a ten-point scale. The maximum grade on Homework 1 was 10 points. The statistics are as follows:

HW2 (whole class ) Valid 20; Mean 7.55; Std. Dev. 3.28 In the above, "Valid" means the number of nonzero scores in the applicable category.

Bjarne Stroustrup to give CS Distinguished Lecture:
On Monday, October 27, 2008, at 2:15PM in CS 2311, Prof. Bjarne Stroustrup of Texas A&M University (and formerly of Bell Laboratories) will be the CS Department Distinguished Lecturer. He will speak on "C++0x: An Overview" (see abstract below). Prof. Stroustrup is well-known as the designer and original implementer of the C++ programming language. He should have some interesting things to say about programming languages and their design. Space tends to be limited, so come early to claim your seat!

C++0x: An Overview

A good programming language is far more than a simple collection of features. My ideal is to provide a set of facilities that smoothly work together to support design and programming styles of a generality beyond my imagination. Here, I briefly outline rules of thumb (guidelines, principles), with examples, that are being applied in the design of C++0x. Then, I present the state of the standards process (we are aiming for C++09) and give two examples: concepts and generalized initialization. Since there are far more proposals than could be presented in an hour, I'll take questions. According to plan the complete specification will have been voted on October 20.    Bio    Homepage

Patch for XEmacs "SML-mode" under Cygwin:
The "SML-mode" distributed with XEmacs doesn't work right under Cygwin because when you try to send the contents of a buffer or selected region to the SML process a temporary file was created using a Cygwin-style path name, but this is not translated to a Windows-style path before creating the "use" command to send to the SML-process. I created a quick Cygwin-only patch to solve this problem. Here are the instructions:
  1. Apply these diffs to the following (Emacs LISP code) file: /usr/share/xemacs/xemacs-packages/lisp/sml-mode/sml-proc.el (If you use XEmacs to edit the file, note that you might have to type CTRL-X, CTRL-Q to make the buffer modifiable.)

  2. Start XEmacs and visit the above file (now modified).

  3. Enter the XEmacs command: M-x byte-compile-file and confirm as requested.

  4. Close XEmacs, restart it, and then try visiting a file with a .sml extension. It should now be possible to use, e.g., CTRL-C, CTRL-B to send the contents of the buffer to the SML process.

PDF version of Harper's SML tutorial.
It has come to my attention that a number of people in the class did not read Harper's tutorial, perhaps because they didn't know how to view a Postscript file. I have placed an automatically generated PDF version of this document here. Please be aware that sometimes an automatically converted file like this does not render the same way that the original one did.

Exam 1 grade sheets are now available.
These are now available under the Personalized Course Information Area. Exam 1 was graded on a 50-point scale. The maximum grade on Exam 1 was 44 points. The minimum grade was 10 points. The statistics are as follows: EXAM1 (whole class ) Valid 31; Mean 25.39; Std. Dev. 10.26 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 1 grade sheets are now available.
These are now available under the Personalized Course Information Area. If you have a question or complaint about your grade, please first contact the TA by E-mail and discuss it. If you are unable to reach agreement, contact me and I will render my decision.

Homework 1 was graded on a twelve-point scale. The maximum grade on Homework 1 was 12 points. The statistics are as follows:

HW1 (whole class ) Valid 30; Mean 8.03; Std. Dev. 3.61 In the above, "Valid" means the number of nonzero scores in the applicable category.

Solution for HW2:
Here is my solution to the HW2 rendering problem. In looking over what people submitted, I get the impression that everybody has forgotten good coding practices, such as avoiding excessively complicated expressions and repetition of code. Just because you are programming in an unfamiliar language doesn't mean you should make things even worse for yourself by throwing good practices out the window!

Study questions:
In class some of you asked for a practice exam. I usually don't supply these, because (1) I don't believe in the value of studying to a particular set of questions, and (2) I don't usually have a large set of ready-made questions and I don't want to make up two exams. However, what I did was to take the ML questions I used on last semester's exams and put them here. Note that ML will not be the only topic covered on the exam, since the lectures and readings covered other topics as well.

Emailing me:
I have had reports of email to me getting bounced by my spam filters. I apologize for this, but I can't turn off my spam filters or else I will receive over seven hundred messages daily that are currently being blocked. The best I can do is to give some advice about getting mail to me:

SML Code Examples:
Some people asked in class about examples of "real" SML code. I put online two pieces of code that I wrote.
Personalized Course Information Area:
If you are taking the course, please visit the Personalized Course Information Area, register a user ID there, and fill out the Academic Dishonesty Form.

I will be using this system to manage assignment handin and distribute grades.

  • Course sign-up questionnaire (please fill out and return to Prof. Stark).
  • Homework assignments:


  • Eugene W. Stark