CS 3 Big Project information

This document provides information about your last assignment in CS3: the big project. Included are details about the check-offs, working with partners, and other things of importance.

Due Dates

There are four important dates in this assignment: three check-offs, and the final due date.

First Check-off. During lab on Thursday or Friday, April 21/22 (whenever you have lab), you must explain to your T.A. which project you are choosing to work on along with the following information: who, if anyone, you're working on it with; how you plan to split the project between members of your partnership if you're working with a partner; and which parts of the project you plan to have ready for the next progress check. If you do not do this during your lab, you will lose 20% of your total project score.

Second Check-off. By Thursday or Friday, April 28/29 (whenever you have lab), you must display significant progress on the project: some procedures coded and tested, with a fairly detailed plan for proceeding on the rest. (The individual project writeups have suggestions for what to provide.) If you do not do this during your lab, you will lose 40% of your total project score.

Third Check-off. In lab on Tuesday or Wednesday, May 3/4, you must show your t.a. an essentially complete program. Again, if you do not do this, you wil lose 40% of your total project score.

Final Due Date. Your completed project program is due at the end of the day on Thursday or Friday, May 5/6. There is no leeway here; you will be penalized for a late submission. Be sure to submit your finalproject directory.

With these check-offs, you can't stay home or wait until the last minute to start your project. Even if you submit a perfect project, if you miss these three deadlines, you will get no points.

Grading

The project is worth 40 points (scaled to 20 course points), which works out to 10% of the points on which your final grade will be based. Up to 20 points will be awarded for project correctness and adherence to specified requirements; up to 20 points will be awarded for displayed correctness (test cases), readability, and the general case you make that your program works correctly.

The project checkoffs mentioned above will also provide points, contributing toward a factor by which your project grade will be multiplied: the points your project earns will be multiplied by the fraction of the checkoff points you earned before being counted toward your course grade. (For example, if you earn 8 out of the 10 points for the three checkoffs, your project grade will be multiplied by 8/10 before being included in the course grade computation.) The first checkoff is worth 2 points, while the other two are each worth 4 points.

Readability includes comments, indenting, sequence of procedures in your file, appropriate use of Scheme (e.g. by avoiding the use of sentence/word procedures with lists), and choice of names for procedures and their placeholders. Some readability guidelines:

Procedures that deal with the same kind of structures should be together in your file, so that they are easy to find. Rather than using a cond with a zillion conditions, you should probably use assoc with a table or list-ref with a list. Use procedures for side effects only where necessary (e.g. to do output).

Your comments at the start of the program should include an overview of how all your procedures fit together. Each nontrivial procedure should be accompanied by a description of the procedure's purpose, a sample call, and the types and expected values for its inputs.

Appropriate test cases are described in each project writeup. Also test your component procedures in isolation, to provide more evidence that they will work together correctly. Students in the past have attempted to fake their tests. This is not all that difficult to catch, since you are submitting your program solutions; the penalty will be a 0 on the project. To avoid looking like you faked your tests, be sure to re-run your tests after you make any final changes to your code.

Working in a partnership

You are encouraged though not required to do the project in a partnership of two. A partnership should turn in only one solution (with both your names and logins in it). A partnership should also supply a file named partners.readme that describes the following:

One final concern

Turning in unacknowledged code not written by members of your partnership or supplied by us constitutes cheating. It will be penalized by a grade of F in CS 3 and referral to the Office of Student Conduct. We value the benefits you get from working on a large project and in a partnership—please take this seriously and do the work honestly.