To submit homework assignments, prepare two files, one for the written component and one for the programming component. Each must be submitted via Courseworks.

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

Make sure you read the guidelines before submission!

Using the Google Cloud

All assignments must run on a Google Cloud machine. You have each been sent a coupon code. The setup instructions are here.