CSE307 Home Page (Spring 2010)

Welcome to the CSE307 (Principles of Programming Languages) home page for Spring 2010. 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 100-point scale. The maximum grade achieved by a CSE307 student was 77 points. The maximum grade achieved by a CSE587 student was 82 points. The minimum grade was 9 points. The statistics are as follows: FINAL (section CSE307) Valid 22; Mean 45.50; Std. Dev. 20.33 FINAL (section CSE587) Valid 4; Mean 69.75; Std. Dev. 12.23 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 4, 5, and 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 4 was graded on a ten-point scale. Homework 5 was graded on a fifteen-point scale. Homework 6 was graded on a ten-point scale. The statistics are as follows:

HW4 (section CSE307) Valid 11; Mean 5.27; Std. Dev. 3.26 HW4 (section CSE587) Valid 4; Mean 9.25; Std. Dev. 1.50 HW5 (section CSE307) Valid 11; Mean 4.09; Std. Dev. 3.02 HW5 (section CSE587) Valid 2; Mean 8.50; Std. Dev. 7.78 HW6 (section CSE307) Valid 7; Mean 4.86; Std. Dev. 2.79 HW6 (section CSE587) Valid 4; Mean 8.50; Std. Dev. 0.58 In the above, "Valid" means the number of nonzero scores in the applicable category.

Final Exam Location
The final examination will be held on Friday May 14, 11:15AM-1:45PM, in the normal classroom (Library 4330). You don't need any equipment other than writing implements and your USB ID.

Exam 2 grade sheets are now available.
These are now available under the Personalized Course Information Area. Exam 2 was graded on a 71-point scale. The maximum grade on Exam 2 was 56 points. The minimum grade was 12 points. The statistics are as follows: EXAM2 (section CSE307) Valid 22; Mean 30.64; Std. Dev. 12.05 EXAM2 (section CSE587) Valid 4; Mean 44.25; Std. Dev. 2.87 In the above, "Valid" means the number of nonzero scores in the applicable category.

Solutions to Midterm Problem 6 and 7
See here for solutions to the last two problems on the midterm. The problems were supposed to check your understanding of how to do recursive traversal of abstract syntax trees while maintaining a symbol table or compile-time referencing environment, as well as your understanding of how a corresponding run-time referencing environment can be maintained on the V-machine. I'm sorry to find that only a few people appear to actually have studied carefully the SIMPLE and PROCS compilers that I gave out.

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 3 was graded on a twelve-point scale. The statistics are as follows:

HW3 (section CSE307) Valid 12; Mean 6.75; Std. Dev. 3.14 HW3 (section CSE587) Valid 4; Mean 11.75; Std. Dev. 0.50 In the above, "Valid" means the number of nonzero scores in the applicable category.

Final exam date. The course syllabus had an error concerning the final examination date. The final examination will be given on Friday, May 14, from 11:15AM to 1:45PM, in accordance with the University final examination schedule, not on Thursday, May 13, as was previously stated.

Exam 1 grade sheets are now available.
These are now available under the Personalized Course Information Area. Exam 1 was graded on a 60-point scale. The maximum grade on Exam 1 was 53 points. The minimum grade was 6 points. The statistics are as follows: EXAM1 (section CSE307) Valid 23; Mean 33.65; Std. Dev. 14.28 EXAM1 (section CSE587) Valid 4; Mean 34.50; Std. Dev. 8.58 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 1 and 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 1 was graded on a twenty-point scale. Homework 2 was graded on a twelve-point scale. The statistics are as follows:

HW1 (section CSE307) Valid 15; Mean 16.33; Std. Dev. 3.68 HW1 (section CSE587) Valid 4; Mean 17.75; Std. Dev. 1.71 HW2 (section CSE307) Valid 13; Mean 8.62; Std. Dev. 2.29 HW2 (section CSE587) Valid 4; Mean 10.00; Std. Dev. 0.00 In the above, "Valid" means the number of nonzero scores in the applicable category.

Homework 2 Solution: I have put here a solution to the Homework 2 exercise.

By the way, the need to use good programming style also applies when you are programming in ML -- perhaps even more so because there is more freedom in how to express your algorithm. Many people seemed to throw out the window the idea of making their code look simple, avoiding redundant code, keeping line lengths reasonable, etc.

Real-world uses of ML: You might want to have a look at the following web page:

A Case for ML: A student in the class found this position paper that makes the case for using ML for compiler writing. Many of the points it makes are also reasons why I use ML for this class. Have a look.

Homework 1 Solutions: I have put here some solutions to the Homework 1 exercises.

Modifying SML Print "Width" and "Depth: The SML system will only print a certain number of elements of a list or tuple before giving up and printing an elipsis (...) for the rest. This can be modified by issuing the command: Control.Print.printLength := 100; after which the system will print up to 100 elements of a list or tuple before giving up. There is a similar notion of "print depth", which controls how deeply into an object (such as a tree) printing will go. You can modify this by assigning to the variable Control.Print.printDepth similarly to the above.

TA Office Hours: The TA has had an unexpected situation arise that will make it necessary for him to leave campus early today (Thursday, February 18). So he will hold his office hours from 11:00AM to 12:30PM today instead of the regularly scheduled hours.

Emailing me:
Due to vast amounts of spam mail, I am forced to use a fairly aggressive spam filter on my email. Because student email often comes from places like Gmail, as does a lot of spam email, students have sometimes had problems reaching me. What worked last semester is for me to have a special whitelisted mail alias specifically for this course, this semester. The email address for this semester is:

cse307s10@starkeffect.com

If you have problems reaching me, use the address above. Hopefully it will last the whole semester, but if a virus on somebody's PC gives this address to a spam bot, I will have to change it.

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.


Eugene W. Stark