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:
- As a hardcopy (preferred); you're welcome to write it by hand. You can hand in the hardcopy in one of
three places:
- In Janak's section, which starts at 11AM in 717 Hamilton (even
if you're in the other section);
- Under the door to Janak's office (608 CEPSR, i.e., the building
between Mudd and Pupin);
- In the CS department front office, located on the 4th floor of
Mudd. The receptionist should
have a folder for CS1004 homeworks; place it in there.
- 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.
- Written.doc if submitted in Word format;
- Written.pdf if submitted in PDF format;
- Written.html if submitted in HTML format;
- 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.
- 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.)
- 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.
- 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.