[CS Dept logo]

Com Sci 221
Programming Languages
Autumn 2000

Homework Assignments

[back] Department of Computer Science
[] The University of Chicago



Copyright information

Last modified: Fri Dec 1 22:30:01 CST 2000


General Instructions

Submitting your work

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

If you would like to use another format, you must negotiate in advance. You may bring up a proposal on the class discussion.

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.

Quality of work

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.

Autumn 2000 Assignments