Next: Ethics Up: Computer Science 172 Introduction Previous: Grading

Program standards

Every program must contain, in the first few lines, a comment indicating the name(s) of the student(s) working on it, the course number (CSC 172), and which assignment it is. Programs not containing this information, clearly visible, will get a zero. If you're turning in homework by e-mail, please put this same information in the Subject: line as well.

Every program must be accompanied by a session log (I'll show you how to do this) showing how the program works on test cases. Programs with inadequate or poorly-chosen test cases will lose points; programs turned in with no test runs at all will lose lots of points.

Every program must be adequately and accurately commented. BlueJ gives you some sample comments when you create a new class, but these comments are presumably not correct for your program, so I expect you to replace them with correct comments. Each class should have at least a sentence indicating what it represents, and each method should have at least a sentence indicating what it does. Local and instance variables may or may not need individual documentation, depending on how complicated their purpose is. Follow the ``javadoc'' guidelines.

Having done my share of programming, I know that sometimes you hit a brick wall and cannot get the thing to work for love or money. If this happens, turn in the program together with a concise description of how the program fails, what you've tried in your attempts to fix it, and how those attempts didn't succeed. You won't get full credit, but if I'm convinced that you're working on it diligently, you'll get some partial credit. Note that ``how the program fails'' does not mean saying ``I got an error message''; you need to tell me which error message you got, when you saw it, and what you think the error message means. Similarly, if the program fails by producing wrong answers, you need to tell me when it produces wrong answers (are they all wrong, or just in a few cases?), how they are wrong (e.g. are all the numbers consistently higher than you expected, are they the negatives of the correct answers, or are they all over the place with no apparent pattern?), and your speculations on how such an error might have arisen. I'm requiring all this not because I'm mean and horrible, but because by the time you've written all this down, you may have enough information to actually fix the problem, which is much better than turning it in incomplete.

I also expect you to keep track of the time you spend on various aspects of programming, how many and what kinds of defects you encounter, etc. For each assignment, I'll tell you which tracking information is required. The easiest way to turn in this information is through a collection of on-line PSP forms, which I'll show you how to use. Indeed, I recommend that while you're programming, you have a Web browser running the forms in the background, so you can easily record each defect and each block of time before you forget about it. Failure to turn in this tracking information will lower your grade for that assignment.


Next: Ethics Up: Computer Science 172 Introduction Previous: Grading
Stephen Bloch
Email: sbloch@adelphi.edu