Collaboration Policy


This collaboration policy is adapted from the one for the COS 126 course taught at Princeton University.

This policy applies to all programming assignments. We permit (and encourage) many forms of collaboration, including with the course staff (instructor, TAs, CAs, and SI) and your classmates. However, you must be careful to collaborate only as authorized below. Here is an executive summary:

  Course Staff CS451/651 Alums Classmates Generative AI Other
Discuss concepts with …
Acknowledge collaboration with …
Expose your code/work to …
View code/work of …
Copy code/work from …

Concepts vs Code

Understand the difference between concepts and code. You may discuss general concepts (eg, the syntax of a while loop) with a classmate, but you may not discuss specific solutions to programming assignments with them.

Permitted Resources

We recognize that students may, on occasion, consult external resources to enhance their understanding of lectures and readings. However, it is your responsibility to ensure that in a programming assignment you do not use concepts that are not covered in class or that are not allowed by the assignment. If you need help understanding how to approach the assignment or need help debugging your programs, please reach out to the course staff.

Collaboration with Course Staff

You are free to discuss your solutions with the course staff either during office hours or on Piazza.

Collaboration with CS451/651 Alums

Anyone who successfully completed CS451/651 in a previous semester may assist you in the following ways:

Collaboration with Classmates

We encourage you to discuss common concerns with classmates either privately via personal interactions or publicly on Piazza. These discussions must be kept at a general level, without exposing or reviewing your solutions. A classmate may provide conceptual help on an assignment. However, while helping you, they must not look at their own solution.

Collaboration with Generative AI (GenAI)

We recognize that GenAI is a powerful technology that is transforming how we live and work on a daily basis. However, you may not use GenAI for any purpose for the programming assignments. This includes summarizing any assignment specification or coding a solution (including debugging, commenting, formatting, etc.).

This prohibition covers both LLMs (eg, ChatGPT) and code assistants (eg, Copilot). Since GenAI is now integrated with Internet search capabilities (eg, Google and Gemini), do not conduct any Internet searches after beginning a programming assignment. The course materials and resources as well as an abundance of office hours with the course staff are more than sufficient for completing the programming assignments.

We believe that one of the key learning outcomes of this course is developing solid problem-solving skills within the context of coding. While it is true that GenAI can tackle complex problems effectively and efficiently, it is essential that you develop the skills to critically evaluate the output generated by GenAI.

Whether you are majoring in computer science, engineering, or any other discipline, gaining these skills will equip you with a solid foundation for using and analyzing GenAI-produced code in the future.

If you are uncertain about how or when to use GenAI, please consult with the course staff prior to its use.

Your Solutions

You must individually compose all of your solutions. The term solutions refers to the .java and notes.txt files.

These rules continue to apply even after the semester is over.

Acknowledgment

You must acknowledge all collaboration in the notes.txt file (under section #2) for the relevant assignment. Please include the names of the course staff and/or students who provided assistance. Be sure to include any outside resources you used as well.

Plagiarism

Plagiarism and abetting plagiarism are serious academic infractions. Programming is a creative endeavor and the academic regulations that apply to plagiarizing prose also apply to plagiarizing code, which ranges from verbatim copying (eg, cutting-and-pasting code) to thorough paraphrasing (eg, changing variable names or rearranging code).

Outside Sources and Citations/Disclosures

Copying or adapting code that is not yours is permitted only if it comes from the course materials (ie, lecture slides, textbook, and assignment writeup/discussion). If you do so, you must cite/disclose any code that you copy or adapt (with the exception of code that is included with the assignment writeup/discussion).

Plagiarism Detection

We use sophisticated software tools that are able to detect plagiarism, including thorough paraphrasing. While we take no pleasure in bringing cases to the Disciplinary Committee, it is our duty to keep the playing field level for the overwhelming majority of students who work very hard in this course and follow the rules.

Penalties

If you are suspected of plagiarism on an assignment, your score for that assignment will be set to a 0 and you will be called in via email to meet with me. In this meeting, you will have the opportunity to convince me that the work you handed in is your own. If I am convinced, your score will be reverted back to what it was and there will be no penalty. On the other hand, if you are unable to convince me or if you fail to meet with me within a week of receiving my email, I will conclude that you have indeed plagiarized on the assignment and act as described below.

If this is your first time plagiarizing, you will receive a 0 for the assignment and will be reported to the department. If you repeat this behavior and are caught again, you will receive an F for the course and will be reported to the university.