creative commons BY-SA license

(Modified from https://www.cs.umb.edu/~eb/honesty/ by Ethan Bolker, with permission)

You are taking this course in order to learn as much as you can about the material it covers. No learning occurs in a vacuum. You learn from lectures and reading and poking around the internet, by playing with ideas, by talking to other people about what you are trying to learn. That makes learning easier and a lot more fun. But part of the ethical code under which we function at a University requires that we acknowledge the sources of ideas we use in work of our own - papers, assignments, presentations, and computer code. When you turn in work that you have discussed with someone, or that contains ideas that you found in a book or on the web, you must indicate that fact. I expect you to talk to each other and to read materials other than those assigned. I also expect to see evidence in your work that you have done so. I am happy when I see a reference to a book or a web site that I haven’t heard of, or a comment in one of your problem sets saying that you didn’t understand something until you talked with a classmate. Learning to acknowledge intellectual debts is part of learning. It has nothing to do with grades or dishonesty. You should be reading, talking to each other, and telling the world that you have done so.

However, some kinds of sharing are unacceptable. You may not copy a computer file and submit it as your own any more than you may use a photocopier to steal someone else’s paper – even if you acknowledge that theft! You may not have your friends do your work for you. Versions of some of the assignments in this course may have been given in previous years. You may not use answers to those assignments. To any of you who may be tempted to cheat: the best reason not to is that it’s wrong. Another is that if you cheat you learn much less (and will hence do badly on any tests or exams in the course). A third reason is that you will be caught more often than you think. If I find evidence of cheating I will follow the procedures spelled out here. The penalties for infractions are severe: you will certainly get a zero for the assignment and may get an F for the course (whether you are the giver, receiver or collaborator) and you may be expelled from your program.

Practical advice

  1. When in doubt, ask! If you ask me or the TA (sufficiently far in advance of an assignment deadline) we’ll be happy to give you guidance about appropriate collaboration/attribution.
  2. When in doubt, acknowledge! If we see identical or near-identical assignments from multiple students with attribution, we may warn you not to do it again, give you a lower mark, or make you re-do some work, but you won’t incur hassle, and potentially severe penalties, of judgment for plagiarism.
  3. When working on assignments (code or derivations) with other students, discuss the problem and take notes, but wait to write up your solution until you’re by yourself. That will ensure that you actually understand the solution you arrived at in the group, and minimize the chance that we flag your code for plagiarism because it looks too similar to a fellow student’s (you should still note in your assignment who you worked with)
  4. The same applies to code from Stack Overflow or other internet sites: read the site, figure out how the solution works, and rewrite the code from scratch without looking at the original (and cite your source). It may be acceptable to use some components as-is (e.g. if you need to sort a list as part of a solution where sorting is not part of the focal problem) - this is the programming equivalent of directly quoting a source. Refer to #1 (i.e., ask us!)
  5. If you experiment with ChatGPT or some similar tool in completing an assignment, please let us know - I’d love to hear how it goes! Cite your source, and be aware that ChatGPT’s answers may be subtly or not-so-subtly wrong!