We are serious about enforcing the class's collaboration and integrity policy. Specifically,
Academic Integrity and Collaboration Policy
- The work that you turn in must be yours. Code that you turn in must be code that you wrote and debugged. Do not discuss code, in any form, with your classmates or others outside the class (for example, discussing code on a whiteboard is not okay). As a corollary, it's not okay to show others your code, look at anyone else's, or help others debug. It is okay to discuss code with the instructor and TAs.
- You must acknowledge your influences. This means, first, writing down the names of people with whom you discussed the assignment, and what you discussed with them. If student A gets an idea from student B, both students are obligated to write down that fact and also what the idea was. Second, you are obligated to acknowledge other contributions (for example, ideas from Web sites or other sources). The only exception is that material presented in class or the textbook does not require citation.
- You must not look at, or use, solutions from prior years or the Web, or seek assistance from the Internet. For example, do not post questions from our lab assignments on the Web. Ask the course staff, via email or Piazza, if you have questions about this.
- You must take reasonable steps to protect your work. You must not publish your solutions (for example on github or stackoverflow), in this semester or any future semester. You are obligated to protect your files and printouts from access.
- If there are inexplicable discrepancies between exam and lab performance, we will overweight the exam, and possibly interview you. Our exams will cover the labs. If, in light of your exam performance, your lab performance is implausible, we may discount or even disgard your lab grade (if this happens, we will notify you). We may also conduct an interview or oral exam.
- We will enforce the policy strictly. Penalties include failing the course, referral to the university's disciplinary body, and possible expulsion.
More about collaborationYou can discuss the labs in general terms with your classmates. What does "general terms" mean? First of all, per the policy above, you cannot look at the written work of anyone else (besides your partner for a given assignment). Second, after discussing a problem with another student (or the course staff!), go do something else (read a book, watch a movie) for half an hour before going back to work on the assignment. If you can't remember what the person said after a half hour, you didn't really understand it.
More about source materialYou are welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at code for public domain software such as Github. Consistent with the policies and normal academic practice, you are obligated to cite any source that gave you code or an idea.
Per the policy above, you may not look at any course material relating to any project or lab similar to this course's assignments. You may not look at work done by students in past years' courses. You may not look at similar course projects at other universities. If you are unsure about whether a particular source of external information is permitted, contact the instructor before looking at it.