Code Authorship and Citation Policy


At the end of the quarter, we run analytic software over all CS106B submissions to find sections of student-submitted code that have been copied from elsewhere rather than independently written by the student. A staffer then reviews the situation to determine appropriate followup. With a correct understanding of the authorship, we can ensure that credit is being awarded properly. Accurate attribution of code authorship is an important tenet of the programming community and of academic integrity in general.

The purpose of this notice is to provide students with the opportunity to retroactively add any citations missing from the original submission, to set the record straight before our analytic software is run.

Permissible re-use

The course policy on collaboration and the Honor Code allows students to exchange ideas with others, but not to share or copy code. If you are in office hours or discussing the assignment with other students and a few lines of code are jointly sketched, it is fine to learn from those lines and incorporate them into your assignment. Your assignment might also take inspiration from a code example in lecture, section, or the textbook. Both of these situations are within the spirit of exchanging ideas, learning from others, but writing the code yourself. This help is entirely permissible, but please be sure to cite any direct influence. The code you submit is still distinctly your own and you retain full authorship; the citation simply acknowledges the work of others that influenced your code.

Unpermissible re-use

In contrast, an honor code violation looks more like having access to solution code (such as found on the Internet or written by another current or past student) and basing your submission off of it, whether reusing an exact copy or borrowing code sections from it and remixing. Submitting this code without citation is a misrepresentation of authorship and is a breach of academic integrity – code written by another is being passed off your own. This is unacceptable, and the CS department has become adept at identifying instances of misrepresented authorship using sophisticated tools.

Unpermitted collaboration/partnership

There is yet a third category where two current students work together and both submit the same/similar code based on the joint work. Submitting such work as your own without acknowledging the contributions of another is also a misrepresentation of authorship. Past quarters have allowed partnership, but this quarter does not. If you have mistakenly engaged in a disallowed partnership, we offer you the option to provide a retroactive citation of that collaboration. This citation opens the path to a resolution where we work with you to establish a fair attribution of authorship, and adjust allocated credit accordingly.

Making a retroactive citation

If you are concerned that some of your work is missing a necessary citation, please consider reaching out to set things right:

  • Email one of the instructors as soon as possible to make a retroactive citation. Please identify the affected code, the collaboration that occurred, and your interpretation of how this collaboration fell onto the spectrum of permissible -> not permissible.
  • There are a number of possible outcomes in response:
    • If the retroactive citation cites permissible help, your citation acknowledges that contribution and corrects the previous oversight. There is no further action to take.
    • If the retroactive citation cites use of work of another as your own, we would not be able to award you credit for that work. We would discount/zero the score to reflect your diminished contribution.
    • If the retroactive citation cites work done in collaboration with another student, we will follow up to understand the extent of the collaboration and adjust grading credit to reflect an appropriate division of work and authorship.
    • In all of the above, if the retroactive citation corrects the previous misrepresentation of authorship, there is no longer an Honor Code violation and there is no followup with the judicial office.

If you are not sure of how to proceed, please reach out to us. We very much appreciate those of you who want to do the right thing, and we will meet for a constructive, non-judgmental review of what has happened and what is the best way forward.

Why not partners?

In the past, there has been the option to work with a partner on assignments. This was never intended to be a division of labor where each student contributed half of the code. Instead, we guided students to use a pair programming approach: two students code as one entity, working together on a shared computer throughout the project. Studies have shown that pair programming does not reduce the time spent by each student, but it can result in better outcomes for student learning and many students value the feeling of camaraderie and support that comes from partnership.

However, pair programming is challenging to do at a distance, and the disparate situations our students are currently experiencing make partnership not a viable option for all.

Given the constraints of a remote quarter and recognizing the significant external stresses, we committed to these decisions for CS106B this quarter:

  • lower-stakes form of assessments
  • upweight contribution of assignments to course grade
  • all students complete the assignments as individuals

The assignments are known to be the best way for students to learn the material, and the above changes give primacy to that work. Furthermore, doing this work independently certifies the individual student’s completion of the course learning objectives.