14-513: Introduction to Computer Systems (ICS), Fall 2018: Academic Integrity Policy

The following are excerpts from the course syllabus. See the full document for more information. Students are also encouraged to review the University Policy on Academic Integrity

Each exam and lab assignment must be the sole work of the student turning it in. No collaboration of any form is allowed on exams. Students may not discuss any aspect of any exam question with someone who has not yet taken the exam.

The following are guidelines on what non-exam collaboration is authorized and what is not:

Cheating: While You Are Taking the Class

Copying:
Obtaining code or other solution information, either by copying, retyping, or looking at a file or document from this semester, a previous semester, or an external source. You are only allowed to use code that we provide you or that is provided on the CS:APP web site.
Searching:
Searching the Web for solutions or for any advice on the lab.
Reusing:
You are allowed to reuse general knowledge pieces from prior courses. For example, you can reference code for a linked list or to process commandline arguments. You may not submit prior work on the labs, even if they are your own, if you received credit for that course either at CMU or at another institution. If you dropped the course before it was completed, then it is not cheating to reuse your submissions.
Looking at other's code or documents:
Looking at someone else's code (or other documents) is cheating. This includes one person looking at code and describing it to another. There is no notion of looking “too much,” since no looking is allowed at all.

Cheating: From Now and Into the Future

Sharing:
Supplying a copy of a file or document to a current or future student in 213/513.
Providing access:
Keeping solution files in unprotected directories or in unprotected code repositories, now and in the future. Be sure to store your work in protected directories, and log off when you leave an open cluster, to prevent others from copying your work. If you make use of a code repository, such as Github, make sure your work is kept private, even after you have left CMU.
Describing:
Verbally describing code to a current or future student
Coaching:
Providing detailed directions to a current or future student.

Not Cheating

Explaining:
Clarifying ambiguities or vague points in class handouts or textbooks.
System help:
Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities.
High-level design:
General discussion and advice. Any document more detailed than a block diagram is not a “high-level design issue.” If you need code (or pseudo-code) to describe the issue, then it is not high-level.
High-level debugging:
Describing potential bugs based on high-level symptoms. NOT code-based debugging.
Authorized help:
Getting help from the course instructors and teaching assistants.
Using provided code:
Using code from the CS:APP web site, from class web pages, or class assignments.

No Statute of Limitations

The above stated rules apply even after your have completed the course. You may not share code you have written for this course with future students. That means you cannot leave your code in unprotected repositories or post it on any web page. You may not provide coaching to future students.