This page outlines our expectations for your assignments. Work done on all assignments must adhere to the academic honesty policy in CS 1101.
Unless otherwise noted on a particular assignment
When in doubt as to whether you can use a construct on an assignment, ask!
For the first few homework assigments, a detailed grading rubric will be provided before the homework assignment due date, so that you'll know what to expect in terms of grading.
This is a large class, and there are many homework assignments to be graded each week. The course staff has procedures in place to help reduce the time needed to complete the grading of assignments. These procedures rely on students following instructions for preparing the homework assignments (for example, naming your file as required, using the function names given in the assignment, etc.) If the graders need to handle your homework submission in a special way, you will lose points on that assignment.
The names and wpi ccc login names of both partners should appear in a comment at the beginning of each assignment.
Every program should be documented with
A signature, which is a comment documenting the type of the inputs and outputs of the program.
A purpose statement, which is a comment describing what the program computes.
A list of the test cases on which you ran the program.
Write your test cases as a series of calls to
Each test case should be documented with a brief comment describing the
situation being tested.
The graders will be checking the quality of your test cases (do you
have too few, too many, sufficient variety, etc).
Whenever your program consumes or produces a compound form of data (structures, lists, etc) you must write down a data definition and examples of the data. A data definition is a comment describing the structure of the data and the types of its pieces. The examples of data are Racket expressions that build instances of the data type you have defined.
You must name your functions with the names given in the homework assignment instructions. When defining a struct, you must define the fields in the order given in the assignment instructions. Failure to do so will result in the loss of points on an assignment, because we will not be able to run your program through our auto-grading software. Programs that cannot be auto-graded will lose 10% of the total number of points for the assignment.
You should use appropriate types for your data. For example, if the problem statement suggests boolean data, you should use booleans rather than 0 and 1.
Your programs should follow the templates for the types of data on which they operate (this point will become clearer in the second week of class when we discuss data templates).
You should use helper functions appropriately. In general, use helper functions to
Your code should be readable, with proper indentation and line breaks (lines that don't wrap around). DrRacket will do proper indentation for you automatically (but not line breaks). Again, consider that the graders have many assignments to grade each week; keep the graders happy by making your programs easy to read.
Unless otherwise noted, do not add error-handling to your code. Assume that each program is run on data that conforms to its signature. (Obviously, real-world programs do need to include error handling, but this course will not discuss DrRacket's exception mechanism, which is the proper way to handle errors.)
Your graded assignments will be marked with the identity of the grader who graded them. If you have a question about your grade, post a message on the "Grading Error" forum in InstructAssist. Your request will be handled by the person who graded your assignment. If you still have a concern after communicating with the grader, the instructor will look at your request. In both cases, be prepared to explain why you feel your solution deserves more points than it received.