Department Collaboration Policy

Plagiarism, cheating, and falsification of information are violations of academic integrity that will not be tolerated. Please check the Bowdoin Academic Honor Code for official definitions of these practices. This document explains specific guidelines for computer science.

The department employs four 'levels' of collaboration, where each level defines a set of allowed (and disallowed) behaviors. Higher levels are more restrictive, while lower levels are more permissive. Assignments in a course will typically employ a range of different levels. Our goal is to provide you extensive opportunities for collaboration (as is the norm in 'the real world') while still ensuring that you become an independent programmer capable of doing significant work on your own.

Specific courses may have additional rules or guidelines that supplement the standard policy described below (such as governing the mechanics of group work). Be sure to get this information from your professor.

In the interest of fairness to all students, violations of the collaboration policy are grounds to initiate an action that would come before the Judicial Board. Remember that you are responsible for reading, understanding, and adhering to the policy. If you have any questions about any aspects of the policy, please do not hesitate to ask for clarification.

Level 0: No Restrictions

Level 0 is generally only used for in-class exercises, or work not for credit. At this level, there are no restrictions on collaboration, and you may make use of whatever resources you like. Such resources could include other students both in and out of the course, your textbook (or other books), and Internet-based resources. Any material substantially derived from another source should include a reference to the source.

Level 1: Verbal collaboration without code sharing

Level 1 is generally used for most regular assignments and labs. At this level, you are allowed and encouraged to discuss ideas and approaches with other class members, but such collaboration should not involve any written medium, including (but not limited to) computers, chalkboards, and paper. However, drawing pictures is permitted.

You may receive general programming and debugging advice, but you are required to write and debug all your own code, and at no time should you look at or receive another student’s code in any form (on a computer, via printout, verbally, etc). Similarly, you should not share your code with others or allow it to be shared (except with teaching staff), including sharing with future students after you have completed the course yourself. Providing help beyond what is allowed is as much of an infraction of the honor code as receiving help.

External resources: It is never permitted to view completed assignments, projects, or exams from the current or previous iterations of the course, regardless of their source. Otherwise, use of books or the internet for reference purposes is permitted, such as looking up the use of a particular programming function. However, blindly copying sections of code found online without attribution is not allowed, and you should never submit code that you do not understand or would not be able to clearly explain.

It is permissible to use software and materials available from external sources (understanding that you only get credit for work that you complete yourself) as long as you explicitly acknowledge those sources and what material you used. All materials used must be freely and legally available, and guidelines for proper attribution are provided below.

To be absolutely clear, if you turn in someone else's work, you will not receive any credit for it, but if it is properly acknowledged, it will not be considered a breach of the collaboration policy.

Crediting sources: When you use other sources to complete your work, you must credit the source of the ideas. This includes crediting other people (e.g., your classmates) or a website. You do not need to credit the book, in-class discussions, or conversations with teaching staff (TAs or professors). Anyone or anything else that contributed to the completion of your assignment should be credited with the following:

  • Author: The person who contributed the work should be clearly identified as the author; the partners on a partner project should be clearly identified as the authors. Note that by implication, you should learn the names of the people you work with. Not knowing someone's name is not an excuse for not giving them credit.
  • Borrowed/Shared Ideas: If you discuss ideas with others, and the discussion has an impact on the work you submit, you should credit whomever you talked with and note their contribution. This might be either that you had a group discussion with everyone contributing ideas, or that someone had a great idea that you incorporated.
  • Outside Sources: Other materials used as sources should be referenced using a standard style. If you have questions about using and citing references, please ask your professor and/or look at examples in the readings for this class.

You may credit your sources using the comments in your program, in a note in a writeup, or in any other readily apparent way.

Level 2: Discussions with teaching staff only

Level 2 is typically used for assignments in which we wish to assess your understanding as well as your ability to solve problems independently. At this level, all of the restrictions of Level 1 apply, but you are further limited to discussing your work only with teaching staff. In other words, you may not discuss your work in any capacity with anyone that is not currently a professor or TA in the course. Teaching staff can offer help in developing approaches or provide advice on how to solve a specific problem, but may also encourage you to overcome obstacles on your own. Although computer science is inherently collaborative, being able to solve problems on your own is an important skill that we want you to develop!

The same rules for using external resources (such as the internet) apply as specified in Level 1.

Level 3: Professor clarifications only

Level 3 is typically used for exams. At this level, no external resources are allowed, and the only help you are allowed is asking a professor (who will likely not offer much help beyond basic clarifications).

Posting of Work Online

The department recognizes that students often wish to post completed work online for professional purposes, e.g., on a public GitHub repository or on a personal website. However, such work is readily found by web searches, and therefore may be problematic for future iterations of a course that may reuse prior assignments.

As a general rule, you should not publicly post any work online that could be inappropriately reused by future students. Such work would include regular labs, homeworks, and so forth. Note that an exception exists for projects that are primarily self-designed, e.g., a final project in a course in which you choose your own topic and are not following a provided specification. For such a project, if it is unlikely that a future student would be able to make inappropriate use of your work, then it is acceptable to post online.

If a student is found to have submitted work substantially similar to work that you have publicly posted online, you may be considered a party to any resulting Judicial Board action and subject to sanctions, regardless of whether you knowingly shared your work with other students.

Note that alternatives to public posting are readily available; for example, GitHub provides private repositories that can be shared only with desired parties (such as prospective employers). You are not prohibited from posting work to GitHub or the web entirely, but merely from doing so in a way that is globally accessible.

This policy was last updated August 2019.