CS312 Assignments

Picking Up Problem Sets:  Normally, problem set submission is online.

Regrade Policy: 

As a rule, you will be requested to submit regrades request on paper. Attach a filled-out regrade request form ("the yellow sheet") to your graded paper, and make sure to explain in detail what you did, and why do you believe there is grading error. Then find the person who graded the problem you want get more points for (each grader initials the problems they grade - use these as a means of identification).

Regrade request forms are available from the undergraduate office in 303 Upson Hall.

If your argument is accepted, the person who originally graded your paper will correct your grade. If you are not happy with the outcome, you should talk to professor Zabih. Keep in mind, however, that he will usually consult with the original grader before deciding, so trying to see him "just to see if I get lucky" is not a good idea, and it wastes everybody's time.

Grading errors are not unidirectional. Submitting your paper for regrade subjects the problem(s) you have indicated, but sometimes the entire paper, to a fresh examination. As a result further grading errors and/or inconsistencies might surface, and these might sometimes lead to a new grade that is actually lower than the initial one.

We will consider that a regrade request is timely if it has been submitted at latest on the day the next homework is due (if it is a homework regrade) or within a week after an exam has been returned (if it is an exam regrade). We usually grade homeworks on the day following the submission deadline; regrade requests for homework n submitted after we graded homework n+1 will be considered late. We will be very reluctant to consider, and typically will reject, regrade requests that have been submitted late.

As a matter of course policy, you will receive 0 points for code that does not compile. For problem set 1 only, we will, however, accept regrade requests for such code (make sure you explain exactly why your code did not compile!). We will occasionally accept regrade requests for non-compiles even for later problem sets, but proving that you were very careful in submitting essentially correct code and/or that some exceptional event prevented your correct submission is a burden that falls on you.

Grading Conventions: Submit each problem on a separate sheet of paper.  The grade for each problem is written at the top of the paper next to the big number one.  A circled S denotes a violation of a style rule; see the style guide.

Downloading Files: To download files, click on the links below. You can also download them from the CMS, however if you are not registered for CS 312 in the CMS you will not be able to download the files. Please contact the course staff if you can't download the file.

Submitting Files: The CMS, located at http://cms.csuglab.cornell.edu/ will be used to submit the files. If you do not see CS 312 as one of your courses in the system, please contact the course staff to be added. To submit the files, click the submit button for the appropriate assignment. On the next page, use the browse button to select the files you would like to submit, and hit upload to submit the files. You may submit as many times as you wish, but only your last submission will be used for grading. For later assignments you will have to use the 'groups' link to create and manage a group.


Problem Set 1: An Introduction to SML. Minor revisions to problems 4(e) and 8 posted on September 4. 
File: ps1.zip

Problem Set 2: Even more SML. Released on Wednesday, September 10.
File: ps2.zip

Problem Set 3: Mini-ML Released on Wednesday, September 25.
File: ps3.zip

Problem Set 4: Optimizing ML Programs Released on Wednesday, October 8.
File: ps4.zip
Frequently asked questions

Test Cases

Problem Set 5
Analyzing ML Programs: Callgraphs
Released on Monday, November 3
Analyzing ML Programs: Common Subexpression Elimination Released on Tuesday, November 11
File: ps5.zip
Call Graph examples
CSE examples
Frequently asked questions about PS5A
Frequently asked questions about PS5B