CS1004: Homework Submission Instructions
[ Announcements | Course Info | Schedule & Homeworks | Resources | Webboard & Grades ]

Homework structure

There are two parts to every homework: a written part, and a programming part.  Both parts are due at the same time, typically at 11am on every other Tuesday for both sections (see the top of the homework for the exact deadline).  For late policy, see the course information page.  If you submit different portions at different times, we'll use the last part of the submission to determine the entire homework's lateness.

Written part

The written part usually consists of a few short-answer questions. Make sure to explain your answers. Make sure to include your Columbia UNI and section number at the top.  (Don't put your SSN, for privacy's sake!)  You can submit the written portion in one of two ways:

  1. As a hardcopy (preferred); you're welcome to write it by hand.  You can hand in the hardcopy in one of three places:
  2. Electronically.  To submit it electronically, include it as part of your programming submission, and give it one of the following four names, including upper/lowercase semantics.  For instructions on how to actually submit the electronic part, see the next section.

    1. Written.doc if submitted in Word format;
    2. Written.pdf if submitted in PDF format;
    3. Written.html if submitted in HTML format;
    4. Written.txt if submitted in plaintext format.

    Be careful to name the file correctly, and don't mix the actual textual content of the written portion with the programming portion.  They're graded by different TAs, and you will probably lose points, as they may not notice the appropriate part of the submission.

Do not email the instructors or the TAs with your homework unless you have a specific problem with one of the above two methods (e.g., trouble accessing CUNIX, illness, etc.), and if so, make sure to explain the situation so that we can rectify it.

For late submissions, follow the same policy.  Note that both CEPSR and Mudd are closed evenings (after 5:30PM) and weekends, so plan accordingly, or contact us if a problem arises when using a late day.

Programming part

The programming part is to be completed and submitted electronically. You do not need to submit hardcopies. However, there are several guidelines you should follow when doing your homework.

  1. When submitting, make sure to include the source files (.java) and a README file. The README should contain your name, email address, section number, and should describe what your program does, how to run it, known issues, and anything else you feel should be documented.  It does not have to be too long; 4-10 sentences is generally appropriate.  (For HW#1, since you are not writing a program, just submit the README.)  You can use any text editor of your choice (e.g., pico, vi, emacs, Notepad) to create the README.  (Preferably, don't use Word, so we can read the READMEs directly on CUNIX.)
  2. Your .java source files, if any, should be well-commented. You don't have to be overly extensive -- saying "this is a variable" right before an int declaration, for example, is overkill -- but non-obvious segments of your code should be explained, and methods, variables, and classes should have a brief explanation before them.
  3. Your code should compile on cunix.  Please avoid submitting noncompiling code. While we may be able to give you partial credit, it's much harder for us to do if your code doesn't compile. If you can't finish the assignment in time, it is much better to submit some subset of the code that compiles and runs than to submit an entire program that doesn't compile or work. Also, if you program on a Windows machine, make sure to test your code from time to time on cunix, since we'll be grading it there.

Submitting electronically

Submitting your files electronically is relatively straightforward: gather all your files into a folder on cunix, type the following command (including the tilde): ~cs1004/bin/submit, and follow the instructions. If everything goes correctly, you'll receive email about it. Make sure you submit before the deadline, unless you're planning to use a late day.  The submission script automatically timestamps submissions, so to submit late, simply follow the same procedure.  You can submit multiple times; we only consider your last submission and ignore the rest.