This hard copy is the version of your assignment that gets graded; if you fail to turn it in, you will receive no credit for the assignment.
In addition to correctness, we expect the following (and may adjust your grade accordingly):
We will be following the approach of Felleisen, Findler, Flatt, and Krishnamurthi in their How to Design Programs book. Specifically, check out Section 2.5.
At this point in time, you do not need to write contracts/purpose statements for any helper procedures you may write (although contracts are suggested). However, if it seems that people are running into lots of type problems later on, I will probably require contracts for ALL functions.
You should provide enough test cases to convince us that your program works as necessary. You may use as test cases the examples that are given to help describe the program's behavior (you don't have to). However, they may not cover all potential cases: it is your responsibility to ensure that no cases are omitted.
You will generally receive more credit for pointing out the situations where your code doesn't work than you will for trying to hide it.