Labs

You are freely allowed to collaborate with, give help to, and get aid from any other student in this class.

Exams

You must not have outside materials accessible while you work on an exam. You must not copy from the exam of another person. You must not show your exam to another person currently taking the exam or waiting to take the exam. You must not discuss exam questions with another person currently taking the exam or waiting to take the exam.

Assignments

Rationale

In order to learn the material, we expect you to work in groups of one to two (as specified on an individual basis for each assignment) and complete the assignments by your own efforts. It's fine to get certain types of advice from other people, but you should develop your own code. We do not want you to get "help" by seeing or hearing another student's solution, and we do not want you to do the assignment in a large team and then hand in several copies of the resulting code. We give you grades as a recognition you have completed the assignment in the way we asked.

So that students receive the maximum benefit of working on the assignments themselves, we also prohibit providing unauthorized aid to other students. While it may seem that showing someone your code is helping them, we view this as actually harmful to them, and providing unauthorized assistance is a violation of Cornell's Code of Academic Integrity (see I.B.2 of the Code).

Given the above, here are the course rules, where "you" means you and, if there is one, your one CMS-registered group partner:

(1) You must never look at, access or possess any portion of another group's code in any form. (This includes code written on a whiteboard.)

(2) You must never show or share any portion of your code in any form to anyone except a member of the course staff.

(3) You must not ask for or use solutions from outside sources; for example, on online services like StackOverflow.

(4) You should specifically acknowledge by name all help you received, whether or not it was "legal" according to rules (1)-(3) above. This is also known as "citing your sources". Exception: you do not need to acknowledge the course staff (although we appreciate it if you do!).

(5) If we find an academic integrity violation in which you have taken credit for work that is not yours, we generally at least assign a negative score for the relevant parts of the affected work: it is thus better to not complete a piece of an assignment of work (meaning a 0 on that part) than to submit it under fraudulent circumstances (meaning a negative score). When in doubt, please ask beforehand!

The more general principles

One of the key things to understand about programming, and computer science in general, is that it is a writing-heavy discipline. When you create a computer program, you are writing a document, just like you write documents in an English class (or any class that involves essays). Therefore, many of the same rules that apply to writing essays also apply to computer programs, particularly regarding plagiarism.

Plagiarism is essentially a form of fraud. Every time you hand in a program in this course, you are representing it as the work of the stated authors (i.e., the members of the CMS group who submitted it, which should be the same as the people listed as the authors in the header of the submitted code) subject to any exceptions that are clearly stated in the submission itself. To avoid committing plagiarism, simply be sure always to accurately credit your sources. To do otherwise is to commit fraud by claiming credit for the ideas and efforts of others.

Integrity is about being honest about the sources of the work you are handing in. Grades on course assignments, on the other hand, are about you showing us what you have learned.

If you turn in someone else's work for course credit, and forthrightly acknowledge you are doing so, you are not acting dishonestly and are not violating academic integrity, but that also does not show us you have learned anything. Thus, you may not receive grading credit, but you would not undergo academic integrity hearings.

If, on the other hand, you violate academic integrity by claiming someone else's work as yours or by giving unauthorized help, then, the academic integrity hearing process will be triggered, which can incur both grade penalties and storage of records by your College.

Getting Help on Assignments: Appropriate vs. Unauthorized

Giving Unauthorized Help on Assignments