All assignments (both programming and questions) are due by the date and time specified in the respective assignment; there are no deadline extensions. It is much better to submit partially complete assignments on time and get partial credit for your work than to submit late homework for no credit. Homeworks submitted after the respective deadlines when they are due are considered late. Late assignments will not be accepted unless there is a letter from one of the student deans explaining the circumstances.
Submissions should be made electronically via Courseworks. You can submit multiple times, but the last submission before the deadline is what counts. Each submission will be time stamped. Proper submission is your responsibility; we strongly urge you to make sure you understand the submission process and submit early. You can always submit again up until the deadline, so we strongly urge you to submit well before the deadline and then submit again if you have a more updated assignment to submit later.
All programs must compile; programs that do not compile and boot will receive a grade of zero. Usually the homework assignments will only state the major objectives of the program to be written; it will be often up to you to make design decisions about things like efficiency, error handling, and so on. Make sure you provide adequate test cases to indicate the correctness and robustness of your approaches.
Coding style is tremendously important, and you will be downgraded for ``messy'' coding without much explanation. For example, you'll want to comment your code, use appropriate indentation, eliminate all unnecessary (commented) code, eliminate useless blank spaces at end of line, structure your code into logical blocks separated by blank lines, partition the code into reasonably-sized functions, etc. There is no single best coding style, and we will not enforce any one upon you, but we do need to see that you have a clean coding style that makes your code easily readable.
You are also not allowed to look for or at solutions to the homeworks on the Internet. You can search for small pieces of code that solve small parts of your homeworks, and you may use tutorials to learn, however if you copy any code from anywhere, we request that you identify the origin in a comment in the code.
Be advised that we will be running all assignments through the MOSS code similarity tool, which is very accurate even after significant amount of obfuscation, so we will identify and report anyone who attempts to breach this rule. We will include in our tests solutions from previous years both from Columbia and elsewhere. Both copy-ers and copy-ees will be punished. You are responsible for protecting your code and homeworks from others and not leaving them lying around in publicly open directories.
Finally, you may discuss the questions for each question assignment with other students, but you may not look at other students' answers. You must write your answers yourself.
If you disagree with any homework grade, submit your grievance via email to all the course's staff, documenting the merits of your case. The grader responsible will respond likewise via email. If you are still dissatisfied you may appeal in like manner to the instructor, who will only examine the email record of the dispute, and will respond in email. If you disagree with any exam grade, submit your exam and grievance in writing (not email) to the grader responsible, documenting the merits of your case. The grader will respond likewise in writing. If you are still dissatisfied you may appeal in like manner to the instructor, who will only examine the written record of the dispute, and will respond in email. For a grade dispute to be considered, the written grievance must be submitted in writing within two weeks of when the respective assignment or exam is returned.