$\DeclareMathOperator{\p}{Pr}$ $\DeclareMathOperator{\P}{Pr}$ $\DeclareMathOperator{\c}{^C}$ $\DeclareMathOperator{\or}{ or}$ $\DeclareMathOperator{\and}{ and}$ $\DeclareMathOperator{\var}{Var}$ $\DeclareMathOperator{\E}{E}$ $\DeclareMathOperator{\std}{Std}$ $\DeclareMathOperator{\Ber}{Bern}$ $\DeclareMathOperator{\Bin}{Bin}$ $\DeclareMathOperator{\Poi}{Poi}$ $\DeclareMathOperator{\Uni}{Uni}$ $\DeclareMathOperator{\Exp}{Exp}$ $\DeclareMathOperator{\N}{N}$ $\DeclareMathOperator{\R}{\mathbb{R}}$ $\newcommand{\d}{\, d}$

Honor Code in CS109


The purpose of this handout is to make our expectations as clear as possible regarding the Honor Code. The basic principle under which we operate is that each of you is expected to submit your own work in this course. In particular, attempting to take credit for someone else’s work by turning it in as your own constitutes plagiarism, which is a serious violation of basic academic standards.

Before we get into the details, we would like to emphasize the values of "a life well lived", "personal integrity" and "fairness to fellow students". What sort of person do you want to be? Our values shine through our actions, and our learning is hampered when we take short cuts. Take CS109 to learn the foundations of a beautiful field which will make you a smarter more capable person. Don't cheat yourself and don't cheat others. In CS109 we take these values seriously. Breaking them can have serious university level reprocusions.

Here are some clear rules to help you navigate the difference between collaboration and cheating:

Rule 1: You must not look at solutions that are not your own.

It is an act of plagiarism to take work that is copied or derived from the work of others and submit it as your own. For example, using a solution from the Internet, a solution from another student (past or present), a solution taken from an answer set released in past quarters, or some other source, in part or in whole, that is not your own work is a violation of the Honor Code. Many Honor Code infractions we see make use of solution code found online. The best way to steer clear of this possibility is simply to not search for solutions to the assignments. Moreover, looking at someone else’s solution code in order to determine how to solve the problem yourself is also an infraction of the Honor Code. In essence, you should not be looking at someone else’s code in order to solve the problems in this class. This is not an appropriate way to “check your work,” “get a hint,” or “see alternative approaches.” You are allowed to talk about a problem conceptually, but all students should write up their own solutions.

Additionally, you are not allowed to solicit solutions from anyone. For example, it is a violation of the Stanford Honor Code to ask another student to share their answers with you, to ask a tutor to share other students’ solutions with you, or to ask for answers on sites like Stack Overflow or Chegg.

Rule 2: You must not share your solutions with other students.

In particular, you should not ask anyone to give you a copy of their code or, conversely, give your code to another student who asks you for it. Similarly, you should not discuss your algorithmic strategies to such an extent that you and your collaborators end up turning in the same code. Moreover, you are expected to take reasonable measures to maintain the privacy of your solutions. For example, you should not leave copies of your work on public computers nor post your solutions on a public website.

Rule 3: You must indicate on your submission any assistance you received.

If you received aid while producing your solution, you must mention who you got help from (if that person is not a section leader, TA, or instructor for this class) and what specifically he/she helped you with. A proper citation should specifically identify the source (e.g., person’s name, book title, website URL, etc.) and a clear indication of how this assistance influenced your work. For example, you might write “I discussed the approach used for sorting numbers in the sort_numbers function with Mary Smith.” If you make use of such assistance without giving proper credit, you may be guilty of plagiarism.

It is also important to make sure that the assistance you receive consists of general advice that does not cross the boundary into having someone else write the actual code or show you their code. It is fine to discuss ideas and strategies, but you should be careful to write your programs on your own, as indicated in Rules 1 and 2.

Rule 4: Don't ask an LLM to solve homework for you

What a time to be alive! Large language models (LLMs) such as GPT4 are able to do wonderful things. Learn how to learn with these tools! You can ask an LLM to teach you a concept, and you can ask for clarification on what a question is asking. However, you should not ask an LLM to actually solve a problem for you or help you write up your homework solutions. You should know that LLMs do leave tell tail probabilistic distributions in their output.

Please be aware: all submissions are subject to automated plagiarism detection

Stanford employs powerful automated plagiarism detection tools that compare assignment submissions with other submissions from the current and previous quarters. The tools also compare submissions against a wide variety of online solutions. These tools are effective at detecting unusual resemblances in programs, which are then further examined by the course staff. The staff then make the determination as to whether submissions are deemed to be potential infractions of the Honor Code and referred to Stanford's Community Standards office.

A Final Note on Collaboration.

We have no desire to create a climate in which students feel as if they are under suspicion. The entire point of the Stanford Honor Code is that we all benefit from working in an atmosphere of mutual trust. Students who deliberately take advantage of that trust, however, poison that atmosphere for everyone.

In computer science courses, it is usually appropriate to ask others – especially the course staff – for hints or about general problem-solving strategies and how to approach the problem set questions. In fact, we strongly encourage you to seek such assistance when you need it. Discuss ideas together, but do the coding on your own.