Submitting Code

All code for the projects must be submitted electronically, from the USNA cs linux environment. There are specific requirements for commenting and file names for all code.

The submit program

The program you will use to submit is located at /home/roche/335/submit. This program is accessible from the usna CS linux environment. You can use it from the MI 302 lab or log into one of the machines remotely; see this list of machines for reference. To limit your typing, it might be easy to make an alias or sybmolic link to the submit program.

When you run submit with no arguments, it will display something like

Open submission directories:
This means that there is one directory open for submission, called "proj1". Unsurprisingly, this corresponds to Project 1. To submit your file or files for this project, you make a directory in your account with this name, for example by typing mkdir proj1, and then put any files you want to submit in there. (It is probably easiest if you make this directory when you start on the project, and just keep your files for this project in there.)

Once you have your local directory, and you confirm that it is open for submission, you type

/home/roche/335/submit proj1
(for example) to submit your files. You will see something like
Submitting proj1 for user roche to Dr. Roche..
Submission successful.
You can see that there is one file that was submitted, called hi.txt. Note the last line, telling me that it was successful. If you don't see this line, then something went wrong.

All this does is put all your files in a place where I can see them, with a timestamp and your username. You are free to submit the same assignment repeatedly, and I will only look at the most recent submission for grading purposes.

Commenting requirements

Every file you submit should start with comment lines indicating:

Furthermore, you must include further comments to make it obvious what your code is doing. "Obvious" means obvious to your instructor or one of your classmates. A good rule of thumb is to explain what every function and class you write is for. Some of this is accomplished by choosing good variable names, but a little more explanation is usually required. When in doubt, just write the comment! You can always run things by your instructor for verification that your level of documentation is sufficient.