Except as noted in the specification of an assignment, or perhaps for the last assignment of a semester, I will accept submissions up to one class day late, with a 25% penalty on those parts that are late. Anything submitted after this does not count. For example, a 100-point assignment that was turned in half on the due date and half at the next class meeting would receive a penalty of half of 25%. If there were no other deductions, it would get an 87. I may not accept late submissions if they are not turned in by the beginning of class. Late submissions may not be graded as promptly as work turned in on time.
It never hurts to turn in an assignment on the due date, even if it isn't fully correct. In general the grade that you get will be the better of the grade for the version turned in on time (partial credit with no penalty applied) and the grade for the late version (with the penalty applied). If I return a hard copy of an earlier version on the day that you turn in a later version, you need to resubmit the hard copy of the earlier version on that day -- I will need it to complete the grading.
In any case, your source code should consist entirely of plain text files (which need
not have a txt extension) that include your name and the assignment
number.
For both soft and hard copies, turn in only files that you have created or modified. In particular, do not turn in unmodified library files or files that I have provided and you haven't changed. Do not turn in soft copies of your output unless you were explicitly instructed to. Do not turn in any object code or any HTML files generated by Javadoc unless I have asked you to do so. Do not turn in files for other assignments.
For both soft and hard copies, proper indenting and use of extra blank lines can make a big difference in readability. Do not edit your output, even to make it look nicer. Do not edit the test program unless your program will not compile or run otherwise -- even if you think the output looks better with your changes. You may of course use your own personal version of the test program for debugging purposes.
Small penalties (no more than 5% of the maximum grade for each violation) will apply in cases of failure to meet the specifications for submission (e.g., excess soft copy files, or no hard copy when one is required).
If your solution consists of more than one file, attach to your message a *.ZIP file (not a *.RAR file) that contains all of your source code files. The name of this zipped file is to be your last name (family name). Unless you are using an explicit Java package (or analogous construct in another language), do not use folders or subdirectories. If you are using an explicit Java package, use a folder whose name matches the package name.
If any part of a submission is to be sent by email, then be careful about emailing me a question about the corresponding assignment. In particular, if the subject line of your message suggests that it is a submission of an assignment, I may not answer it promptly. For the same reason, please do not include any questions with a submission. I usually delete email messages containing a submission once I have downloaded, compiled, and run the code.
Sometimes deductions for compiler or run-time errors will be less than suggested above, if it is easy for me to determine the cause of the error. Unfortunately, I don't have time to debug every program that is turned in. It is much easier for me to determine the cause of an error in a well-documented program than in a poorly-documented program. You may also reduce the deduction if you can show me (e.g., by submitting a revised version within one class day of the due date) that the error was small. It will be easier for you to get this partial credit if you make clear on the new version what changes you made and why.
In many cases it will be to your advantage to work on removing compiler errors, or in adding documentation, rather than in making improvements elsewhere in your program.
I reserve the right to make deductions in programming assignments for poor programming style, even when the specifications for the assignment are not violated. Normally these deductions are only a point or two, and are related to issues like poor user interface, poor layout of output, excessive line length, uninformative error messages, violation of coding style guidelines (see below), or gross inefficiency. They are more likely to be relevant in upper-division courses, where students can be expected to have a better-developed sense of programming style.
Do not modify or delete the test cases unless your program will not run with the original test cases. In this case you should document that you have changed the test cases, and you should expect to receive a significant deduction. You may add new test cases to the end of my test cases; please document them if you do. Note that the given test cases are not an exhaustive test; you can still receive deductions for errors even if you handle all the test cases correctly.