For assignments, you allowed 5 penalty free late days to use throughout the semester. One late day equals one 24 hour period after the due date of the assignment. Once you have used your late days, there will be a 20% penalty for each day an assignment is late. You do not need to explictly declare the use of late days; we will assign them to you in a way that is optimal for your grade when different assignments are worth different numbers of points. Late days may not be used for the final project.

A project can be done for up to 40% extra credit. Extra credit is added after any curves, so it does not hurt any students that choose to not do the project.

Turnin Policy

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.

Programming Policy

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.

Collaboration/Copying Policy

You must write all the code you hand in for the programming assignments, except for code that we give you as part of the assignment. You are not allowed to look at anyone else’s solution, you are not allowed to look at solutions from previous years, and you are not allowed to look at solutions from other universities. You may discuss the assignments with other students, but you may not look at or use each other’s code. The same rule holds for the question assignments: you must write all answers yourself, not look at others’ answers, but you can discuss the questions with others at a high level. 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.

Re-Grading Policy

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.