Policies in 6 bullet points

  1. There are no deadline extensions. Once it’s over, it’s over.
  2. Have clean, documented code that runs on Ubuntu X86_64 LTS 12.04.2.
  3. You should discuss approaches to programming problems on Piazza.
  4. Finish all homework by yourself.
  5. Identical or huge similarities between any pair of you in written and programming assignments will result both getting 0.
  6. Re-grading starts with emailing the details to TA and we’ll take it from there.

Submission Policy

There are no deadline extensions. Once it’s over, it’s over.

All assignments (both programming and questions) are due by the date and time specified in the respective assignment. 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.

Homework 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.

Programming Policy

Have clean, documented code that runs on Ubuntu X86_64 LTS 12.04.2 

All programs must compile. Programs that do not compile will receive a grade of 0. 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 have adequate test cases to indicate the correctness and robustness of your approaches.

Coding style is tremendously important, it is critically important that all submitted program listings and executions be thoroughly documented. You will be downgraded for messy coding without much explanation. You need to, but not limited 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.
  • use consistent braces style

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. For those of you still in search of a coding style, we strongly recommend reading and enforcing (parts of) Google’s C++ coding style guide.

We recommend you do all programming assignments on clic-lab machines (clic-lab.cs.columbia.edu), which provides you with an installation of x86_64 version of Ubuntu 12.04.2 LTS. Your assignments will similarly be graded in this environment.

Collaboration/Copying Policy

Don’t look around, finish all homework by yourself. You can discuss different approaches to programming question. However, any similarity in written and programming assignments between any pair of you will result both getting 0

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 on the Internet. The YFS code we provide in the git repository for each assignment is all that you will need to understand how YFS works and to develop your own solutions. If you don’t immediately understand certain YFS components (e.g., RPC), you are requested to dive into the code and figure it out, and are precluded from searching for explanations on the Internet. Figuring how things work despite limited documentation is part of your education in this class.

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 homework 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

Start with emailing the details to TA and we’ll take it from there

If you disagree with any homework grade, submit your grievance via email to the TA, 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.