General Homework Submission Requirements
Introduction
This document outlines the process you should follow when submitting a homework assignment for grading. These rules will simplify the grader's job by standardizing the form and appearance of submissions. Any of these rules can be overridden by a particular assignment but, if the assignment doesn't say otherwise, follow each of them.
Forms of Submission
When you are asked to submit a set of files, you must submit them in two forms: electronically and hard copy.
Electronically:
- Select the course (810:063, CS III, Fienup)
- Follow the instructions given to upload the required files The upload instructions are fairly simple and self explanatory as you use this site.
Hard copy:
- Print a hard copy of each file. Your print-out should fit on standard 8-1/2"x11" paper printed upright, with no line wrap.
- Arrange them in the order specified by the assignment. (Yes, the order of the files matters.)
- Staple them. (Paper clips, folded corners, and nothing at all are not acceptable. )
- Put the hardcopy in my dept mailbox (ITT 305) or slide it under my door (ITT 313) on or before the due date.
Documentation
Document each file with a header block that includes at least: the file's name, your name, your CNS userid, the name of the file's original creator (if not you), a brief description of the purpose of the code, and a modification history that lists the date of each change to the file with the changes made.
Here's an example:
# Fraction.py
# AUTHOR: Mark Fienup -- fienup@cns.uni.edu
# DATE: 1/18/2008
# DESCRIPTION: Fraction class that allows for exact irrational values.
Your block need not look exactly like this, but it should contain the same information.
For each class and function, include a documentation string as part of its definition as the second line.
Style
I do not require you to follow a lot of specific style rules, but I do ask you to follow several basic guidelines to improve the readability of your code:
- always use meaningful identifiers for variables, parameters, methods, classes, etc. For example, numScores is a better name than n, and numberOfScores is better yet.
- use blank lines to separate functions, methods, and class definitions from each other
- confusing code should be documented by using either: (1) a block comment on the line(s) before the code or (2) in-line at the end the line containing the code. Don't over comment by stating what the code does if it is obvious!
- at the end of all blocks of code, loops, function definitions, class definitions, etc. put a comment, e.g.,
"# end for "
- For each file, class, and function, include a documentation string as part of its definition as the second line.
- Use uppercase characters to begin the names of classes. Use lowercase characters to begin the names of methods and instances (unless they start with an underscore). Use embedded uppercase characters in all names as a way combine mulitiple words in the same name, such as in numberOfScores.