Last modified: Fri Dec 1 22:30:01 CST 2000
All homework assignments must be submitted by e-mail to
odonnell@cs.uchicago.edu
before 1:00 PM on the due
date. You may submit an appropriate and agreeable combination of
gv
command on a
Unix system.If you use more than one file, you must make it very clear where I
should start looking. If you organize everything through
HTML, then I will look first at a file named
index.html
. If you use some other method, I will look
first at a plain ASCII file named REAME
.
The subject line on the mail containing your homework submission
must be CS221 Assignment #<n>
. All files
(even if ``all'' is just one) must be bundled into one mail message
using the Unix shar
command. The body of the
mail message must consist of a single shar
archive:
do not use Mime attachments, uuencode
,
proprietary Microsoft formats, .... Unfortunately,
many mailers today make weird encodings of message bodies, and even
replicate bodies in multiple encodings, as a default behavior. It is
your responsibility to make sure that your submissions come through
unpolluted. If you are at at all unsure, I suggest that you send a
test message to yourself, and receive it on a CS Department
Unix system, using the mail
command, and then unpack
it with the unshar
command, to make sure that things work
right.
Read the Lab Technique instructions for more information on the use of shar archives.
Remember that all homework will be judged, not as mere evidence that you have written and executed certain programs, but as an insightful presentation of interesting ideas, using programs and their executions as part of the presentation.
In particular, the programming portions of assignments always ask for ``procedures'', rather than ``programs.'' By ``procedure,'' I mean a fragment of code that may be used repeatedly in different programming contexts to solve a given problem. In some programming languages, such procedures can stand alone. In others, they must be surrounded by additional code for input, output, and perhaps other tasks, in order to execute meaningfully. It is your responsibility to embed your procedures in sufficient additional code to allow you to run meaningful test cases, but also to make it clear what portion of your code is the ``procedure'' asked for in the problem, and what portion is supporting code.
It is also your responsibility to execute your procedures on sensible test cases that demonstrate the interesting qualities of the procedures. In all of the homeworks for this course, the number of test cases should be very small. Look for the 2 to 5 examples that illustrate the appropriate concepts clearly. The choice of examples may depend on the way you have written your procedures, as well as on the problem that you are solving. Strive for concise clarity, not volume or cuteness.