CS 374 A

Academic Integrity Policies

This policy statement is unfortunately necessary, thanks to the actions of a tiny minority of students. If you have any questions or concerns, please don't hesitate to ask in lecture, in lab, during office hours, on Piazza, or by email.

tl;dr: Be honest. Cite your sources. We mean it. If you need help, please ask.

Our expectations

Each student (or homework group) must write their own solutions,
in their own words, and must properly credit all sources.

These are the same ethical standards that researchers are expected to follow in their formal publications. For comparison, see the guidelines published by the Association for Computing Machinery (ACM), the American Mathematical Society (AMS), the American Physical Society (APS), the Institute of Electrical and Electronics Engineers (IEEE), and the Society for Industrial and Applied Mathematics (SIAM).

For more information and examples, see any of the following:

If you have any doubts about whether something constitutes plagiarism, talk to Jeff or one of the TAs, and err on the side of caution.

Cite Your Sources

We strongly encourage you to use any printed, online, or living resource at your disposal to help you solve homework problems, but you must cite your sources. There are only two exceptions to this rule. You are not required to cite the following:

Submitting someone else's work without giving them proper credit is plagiarism, even if you have the other person's explicit permission. Submitting someone else's work without giving them proper credit is plagiarism, even if that “someone else” is a computer program. Citing your sources will not lower your homework grade.

Allowing someone else to use your ideas without giving you credit is also an academic integrity violation.

Use Your Own Words

Verbatim duplication of any source, even with proper citation, is plagiarism. In particular:

Classes in some other departments allow and even encourage verbatim copying in small doses. For example, if you want to claim that an expert holds an important or controversial opinion, it is usually better (more honest, more accurate) to quote them verbatim, instead of rewriting their opinion in your words.

Immortality. I notice that as soon as writers broach this question they begin to quote. I hate quotation. Tell me what you know.
— Ralph Waldo Emerson, Journals (May 1849)

Students frequently overuse direct quotation in taking notes, and as a result they overuse quotations in the final paper. Probably only about 10% of your final manuscript should appear as directly quoted matter. Therefore, you should strive to limit the amount of exact transcribing of source materials while taking notes.
— James D. Lester, Writing Research Papers (1976)

But computer science classes are different. We won't ask you to defend a hypothesis or opinion using evidence or rhetoric. What we will ask for are formal, logical, mathematical arguments. Expert opinion is irrelevant here; the math must speak for itself. In particular, we are asking you to demonstrate your expertise in formal, logical, mathematical reasoning and communication. You can only demonstrate expertise in something by actually doing it. (The same argument goes for programming classes. Your MPs are not just asking you for working code; they are asking you for evidence of your ability to independently produce working code.)

That said, if you want to use an algorithm from the textbook, lecture notes, lectures, labs, or previous homeworks in your solution, just use it (and cite it) and carefully describe any necessary changes.

Don't Be Stupid

There are several more egregious ways to violate the university's academic integrity policies, such as collaborating with or copying from another student during an exam, hiring an impostor to submit homework or take exams for you, falsely claiming to have submitted a homework or taken an exam, and modifying or destroying other students' graded work. But you already know not to do anything that stupid!


These penalties are consistent with the CS department's recommendations.

In accordance with department, college, and university policy, we report all academic integrity cases to the Computer Science department, to the student's college, and to the Senate Committee on Student Discipline through the FAIR (Faculty Academic Integrity Report) system. Multiple offenses, even in different classes, can result in suspension or expulsion.

Remember that Your goal is to learn to solve problems, not to collect points. The only way to learn to do the thing is to actually do the thing; watching someone else do the thing isn't enough.

If you really need points for motivation, remember that points on the exams are worth significantly more than points on the homework. Regardless of whether it constitutes plagiarism, or whether you get caught, getting too much help on your homework will hurt your final grade. If you don't learn how to solve algorithmic problems on your own, you will perform poorly on the exams, which make up at least 65% of your final course grade. Several students with homework averages over 90% have failed this course.

ChatGPT and its ilk

Given all the recent hype around ChatGPT and similar AI language models (Bard, Google Copilot, etc.) many students may be tempted to use them to "help" with homework. As policy, we are treating langauge models just like every other source—you are welcome to use it, provided you cite it and write your answers yourself in your own words—but we also want to caution you about relying on them too much.

ChatGPT and similar models are designed to produce plausible-looking text. Despite breathless language to the contrary in innumerable press releases, ChatGPT does not "know" or "understand" anything; anyone who says differently is selling something. A good high-level summary of the problem that ChatGPT solves, over and over again, is “Here are seven consecutive words from a sentence; what’s the most likely eighth word?” Basically, it's a grownup version of Dissociated Press.

You should think of ChatGPT as a drunk who hangs out at the neighborhood bar and tell stories for drinks. He’s very good at telling stories, and he will expound—fluently and authoritatively—about any topic you give him, but in fact, everything he knows about the topic comes from some vague snatches of conversation he heard other people talking about at the bar last week. Sometimes our Corner Bar Expert gets lucky, but as a rule, his words are just plausible-sounding drivel. In particular, even for topics where he's likely to mirror the right high-level intuition, unless he's directly quoting something that he's heard before, the fine details are likely to be fictional or incoherent.

You should also remember that ChatGPT was trained on text from the internet; the influence of large crowd-sourced sites like Geeks4Geeks and StackExchange—whose content quality can be charitably described as high-variance—is quite clear. Relying on ChatGPT is roughly equivalent to relying on the average self-proclaimed internet expert, or perhaps more accurately, on the average self-proclaimed internet expert's parrot. (More specialized models like Minerva and phi-1, which were trained on more carefully curated data and which check their own work, yield better solutions for simple math and programming problems, but even for those simple problems, “better” is still not good.)

That doesn't mean you can't use ChatGPT (or Geeks4Geeks, or any other questionable source) to help you solve homework problems. After you make a good-faith effort—at least a couple of hours—to make progress on your own, then it can be useful to ask ChatGPT, and then try to figure out what's wrong with ChatGPT's answer. Because something is going to be wrong. Once you understand what ChatGPT did right and wrong, you're in a better position to write your own answer, in your own words.

In fact, this is the approach I would suggest for any source, including the official course materials. Work on your own first, assume that your source has errors, find those errors (or prove to yourself that there are no errors), then go back to working on your own. (Hopefully the official course materials have fewer bugs than ChatGPT's output, but yes, they have bugs.)

Before we assign any homework problem, we confirm that GPT-4 does not solve that problem correctly (although it night still earn some partial credit). We also give GPT-4's output to the graders.

Group work

Groups of up to three people are allowed to submit a single solution for each homework. Every member of the group receives the same grade and the same credit for the entire assignment. That means every member of the group is responsible for the entire assignment.

Group solutions must represent an honest collaborative effort by all members of the group.

In particular, groups must not delegate one problem to each group member; only the students who actively worked on a problem may add their names to the solution. At a minimum, you must read, understand, and approve anything submitted with your name on it. Allowing someone else to add your name to a solution to which you made no contribution is plagiarism. This does not mean that every student in a group must contribute good ideas or must help in the actual writing of every group solution. Asking "stupid" questions, proposing bad ideas, shooting down bad ideas, working out examples (even if they don't appear in the solution), uncovering bugs, and even just acting as a sounding board for other group members are all legitimate contributions.

If a submitted homework contains plagiarized material, we will separately determine each student's culpability (if any) and penalty (if any), in accordance with Student Code. By default, every member of the homework group will be given the same penalty. (Again, this is the same standard that is applied to coauthors of research papers.) If you cheat, you are not only endangering your grade, and possibly your academic career, but your colleagues’ as well.


As illustrations, consider the following scenarios involving a group of three students (A, B, and C) collaborating on a three-problem homework set. In every scenario, the group agrees in advance that each student will write up and submit the solution for one problem — A will handle problem 1, B will handle problem 2, and C will handle problem 3 — with all three names at the top of each solution. Variants of all these scenarios have actually happened. Yes, even the last two.

Warning signs

Almost every instance of plagiarism I have seen was motivated by a combination of two factors.