How Scheme Homework Grades are Determined
The exact number of points available for each assignment (and each problem) will be determined based on their relative difficulty. The following instructions will be used in grading each problem.
Most homework problems will ask you to develop a program that solves a particular problem. Roughly speaking, the overall grade that you get for such a problem will be:
- 40% on following the process and the documentation guidelines described by the design recipe. This includes things like data definitions, templates, contract, purpose, examples, and tests.
- 30% on code style. By style we primarily mean that your code follows closely what is dictated by the recipe. But style also includes presentation (correct indentation, choosing good names for variables) and design (using reasonable auxiliary functions, avoiding code duplication, defining helpful constants).
- 30% on correctness. If your program is correct, you will get all of these points. If not, you may get partial credit depending on how many of our unit tests your program passes. If you make a serious mistake, you will probably receive zero correctness points.
If your program returns an incorrect answer, please note this in your comments. (Do not elide that test case from your homework, and hope we don't notice!) It is better to state what bugs your function has, than to claim the code is correct when it's not; we will grade accordingly.
Some problems will ask students to modify code already presented in the book. In such cases, it doesn't make sense to follow the design recipe completely. However, tests (perhaps lifted out of the text as well) should be provided to insure that the new function has correct behavior. If the contract of the modified function has changed, the comments should reflect that. More generally, the usual problem-solving criteria will be used, but only as they apply to the part of the program that was modified. Other function definitions and comments lifted from the text can remain untouched.
Some problems ask students to demonstrate the step-by-step process of reduction from an expression to a value. Where possible, this should be answered with a sequence of runnable Scheme expressions, each of which resolve to the same result. In some cases, you may need to comment out your duplicated code. In these problems, the solution is correct if it follows the definitions outlined in the text, and it doesn't skip important steps (everything is "important" unless the instructions say otherwise). Deductions will be made based on how far "off track" a reduction is.
Some problems require a free response. These can be provided in comments, and are expected to carefully answer the question. Grades will be determined by the correctness of your answer and the completeness of your reasoning.
Many problems ask multiple questions or split the problem into multiple subproblems. In this case, each subproblem is allocated a certain number of points and graded separately. It's important to answer all the questions that a problem asks, not just the first one.
!! Access Permissions
- Set ALLOWTOPICCHANGE = Main.TeachersComp211Group