To submit homework assignments, prepare two files, one for the written component and one for the programming component. Each must be submitted separately. Type
~w4187/bin/submithw -p programfile
and
~w4187/bin/submithw -w writtenfile
to submit the two pieces.

This mechanism has been tested on the CLIC machines and on cluster.cs.columbia.edu. No guarantees if you submit from anywhere else!

The script spits out a mysterious hex number and a filename. The hex number is the MD5 checksum of your input file; the filename is the actual file used to store the submitted assignment. Note that the directories involved are read-protected but world-writable; this prevents anyone else from overwriting your files unless they know the filename. The filename contains your username, the date and time, a random string (courtesy of /dev/urandom), and whatever suffixes you used.

ll homework assignments must be submitted as a single "tar" file. The filename MUST be of the form UNI.#.tar or UNI.#.tgz, where "UNI" is your UNI and "#" is the number of the homework assignment. Thus, my filename for the first homework assignment would be "smb2132.1.tar". Use .tgz if you've gzip'd the file -- I doubt that that's necessary, but if you're on a slow link you may wish to do that.

The tar file MUST unpack to create a single top-level directory whose name is again "UNI.#". Your programs and documents are in that directory; any subdirectories you create are up to you.

There must be a Makefile, a README, plus any program and test data. The Makefile must have targets "build" (which has to be the default), "test" (which runs the program with your test data), "exec", which will be used to run the program with our test data, and "clean". Any command-line arguments (which must be documented) are supplied by saying ARG="..." on the "make" command. If you hae more than one test set, "make test" must invoke them all. "make clean" should delete any .o files, executables, core dumps, test output, etc. Run "make clean" before submitting the assignment.

A sample homework assignment is in http://www.cs.columbia.edu/~smb/classes/f08/smb2132.0.tar

Using VMware

Some assignments require VMware. You can find instructions here.