Design, Technology, & Computer Science Collaboration & Academic Honesty Policy

This course’s philosophy on academic honesty is best stated as “be reasonable.” The course recognizes that interactions with classmates and others can facilitate mastery of the course’s material. However, there remains a line between enlisting the help of another and submitting the work of another. This policy characterizes both sides of that line.

The essence of all work that you submit to this course must be your own. Collaboration on problems is not permitted (unless explicitly stated otherwise) except to the extent that you may ask classmates and others for help so long as that help does not reduce to another doing your work for you. Generally speaking, when asking for help, you may show your code or writing to others, but you may not view theirs, so long as you and they respect this policy’s other constraints.

Collaboration on the course’s quizzes and tests is not permitted at all.

Collaboration on the AP CSP Create Performance Task is permitted to the extent prescribed by its specifications. You should refer to College Board’s official publications on this, but in brief, you may collaborate with peers in your class when developing the program, but any code snippets you use for the written responses must be independently developed.

Below are examples that inexhaustibly characterize acts that the course considers reasonable and not reasonable. If in doubt as to whether some act is reasonable, do not commit it until you solicit and receive approval in writing from your instructor. If you commit some act that is not reasonable but bring it to the attention of your teacher within 72 hours, we might discuss immediate consequences such as an alternative assignment or partial credit. If a violation of this policy is suspected and confirmed by your teacher, disciplinary measures will be taken and likely involve notifying your parents and administrators.

Reasonable

  • Communicating with classmates about problems in English (or some other spoken language).
  • Discussing the course’s material with others in order to understand it better.
  • Helping a classmate identify a problem/bug in his or her work/code, such as by viewing, compiling, or running code, even on your own computer.
  • Incorporating properly cited media (images, videos, audio, etc.) into a project when the media in question is copyright-free (especially Public Domain, Creative Commons, or similar)
  • Incorporating snippets of code that you find online or elsewhere into your own code, provided that those snippets are not themselves solutions to assigned problems and that you cite the snippets’ origins (as comments in your code—see below).
  • Reviewing past terms’ assignments, quizzes, tests, and solutions thereto.
  • Sending or showing code or other work that you’ve written to someone, possibly a classmate, so that he or she might help you identify and fix a problem/bug.
  • Sharing snippets of your own work online so that others might help you identify and fix a problem/bug.
  • Turning to the web or elsewhere for instruction beyond the course’s own, for references, and for solutions to technical difficulties, (but not on the AP CSP Create Task).
  • Whiteboarding solutions to problems with others using diagrams or pseudocode.
  • Working with (and even paying) a tutor to help you with the course, provided the tutor does not do your work for you.

Not Reasonable

  • Accessing a solution to an assignment prior to (re-)submitting your own.
  • Asking a classmate to see his or her work on an assignment before (re-)submitting your own.
  • Decompiling, deobfuscating, or disassembling the sample solutions to problems.
  • Failing to cite (as with comments) the origins of code, writing, or techniques that you discover outside of the course’s own lessons and integrate into your own work, even while respecting this policy’s other constraints.
  • Failing to cite media (images, video, audio, etc.) with a link and identification of an acceptable copyright-free license (i.e., Public Domain, Creative Commons, or similar).
  • Giving or showing to a classmate a solution to a assignment when it is he or she, and not you, who is struggling to solve it.
  • Looking at another individual’s work during a quiz or test.
  • Paying or offering to pay or trade an individual for work that you may submit as (part of) your own.
  • Providing or making available solutions to assignments to individuals who might take this course in the future.
  • Searching for, soliciting, or viewing a quiz’s questions or answers prior to taking the quiz.
  • Searching for or soliciting outright solutions to problems online or elsewhere, including video tutorials/walkthroughs that explain the particular problem you’re working on (If you find yourself Googling the name or instructions of the assignment, you’re going the wrong direction!).
  • Splitting a problem’s workload with another individual and combining your work (unless explicitly authorized by the assignment itself).
  • Submitting (after possibly modifying) the work of another individual beyond allowed snippets.
  • Submitting the same or similar work to this course that you have submitted or will submit to another.
  • Using resources during a quiz or test beyond those explicitly allowed in the quiz’s or test’s instructions.
  • Viewing another’s work on an assignment and basing your own solution on it.

Examples - Coding

Example 1

Nadine and Michael sit next to each other with their laptops while working on a problem set. They talk in general terms about different approaches to a particularly challenging CodeHS problem. They draw diagrams on the whiteboard. When Nadine discovers a useful function in the CodeHS library, she mentions it to Michael. When Michael finds a StackOverflow answer that helps, he sends the URL to Nadine. OK

As they type lines of code, they speak the code aloud to the other person, to make sure both people have the right code. INAPPROPRIATE

In a tricky part of the problem set, Nadine and Michael look at each other’s screens and compare them so that they can get their code right. INAPPROPRIATE

Example 2

Hamza already finished the section, but his friend Michael is now struggling with a nasty bug. Hamza sits next to Michael , looks at his code, and helps him debug. OK

Hamza opens his own laptop, finds his solution to the problem set, and refers to it while he’s helping Ben correct his code. INAPPROPRIATE

Example 3

Louis had three problem sets and two quizzes this week, was away for several days for a track meet, and then got sick. He’s one day from the deadline for the section and has made almost no progress on the problems. Hamza feels sorry for Louis and wants to help, so he sits down with Louis and talks with him about how to do the problem set while Louis is working on it. Hamza doesn’t open his own laptop to look at it while he’s helping Louis. OK

Hamza opens his laptop and reads his own code while he’s helping Louis. INAPPROPRIATE

Hamza has by now spent a couple hours with Louis, and Louis still needs help, but Hamza really needs to get back to his own work. He pastes his own code in a message to Louis, after Louis promises only to look at it when he really has to. INAPPROPRIATE

Examples - Design

Example 1

Nandor and Nadja are working on an assignment to create a 3D model of the classroom. They sit next to each other and Nadja is having an easier time turning a solid block into a table by removing the space below the table top.

Nandor looks up a YouTube tutorial explaining how to subtract from a solid in the program he is using.OK

Nandor asks Nadja to look at his design and give him some tips. Nadja tells him what to do step by step to create one of the tables, then goes back to her own work.OK

Nadja takes Nandor’s computer from him and completes the table. INAPPROPRIATE

Example 2

Julia and Hans are working on separate independent projects to solve a problem defined in the assignment. Hans has brainstormed several ideas and is working on his first prototype, but Julia has not been able to come up with any ideas.

Hans shows Julia his brainstorming and Julia copies them into her own document.INAPPROPRIATE

Hans lists many ideas for Julia to choose from other than the ones he has included in his assignment and Julia chooses a few.INAPPROPRIATE

Hans talks with Julia, asking questions and making general suggestions to help jumpstart her thinking. OK

Citation & Copyright

When can I use a piece of media (images, video, audio, etc.) in my work?

  • Any time you have permission from the owner to use it and it does not violate the requirements or spirit of the assignment or class.
  • Permission can take the form of express written or verbal permission (i.e., your friend gives you something and says you can use it or you email an author and receive permission) or documentation of the copyright (i.e., Creative Commons)

When should I cite a piece of media (images, video, audio, etc.) or text?

  • When you incorporate someone else’s work into your own, you must ALWAYS include a citation. Unless otherwise specified, this can usually be simply a short line with a link to the source and a statement of the license the owner has applied to it.
  • If you have created the media/text, you do not need to include a citation, but you should include a statement of the copyright status of your work so that others know how/if they can use it. You have options, but either (“Copyright 2023 by Phil Bowman”) or a Creative Commons license are probably the best choices

When should I cite a source in my code?

  • When you copy code from an external source. Whether you are copying a snippet of code or an entire module, you should credit the source.
  • When you copy the code and adapt it, you should still credit the source. You were not the original developer of the code.

How should I cite the code?

  • Generally, the URL and the date of retrieval are sufficient. Add more details if it will help the reader get a clearer understanding of the source.
  • If you adapted the code, you should indicate “Adapted from:” or “Based on” so it is understood that you modified the code.
  • If you use open source software, the source code itself will typically contain the copyright and terms of use. It is good practice to duplicate the copyright in your code, and/or store the license in a file with the code.

Citation Examples

  • More information about Creative Commons licenses and citation examples can be found here.

Code Example 1

In describing the class PluginProxyUtil in the Apache Project source code, the developer cites the source as a post in a forum and includes the URL, author and date:

/**

* A utility class that gives applets the ability to detect proxy host settings.

* This was adapted from a post from Chris Forster on 20030227 to a Sun Java

* forum here:

* http://forum.java.sun.com/thread.jspa?threadID=364342&tstart=120

*/

(Source: Apache Project source code http://svn.apache.org retrieved in July 2019.)

Code Example 2

In the function OutputTraceToStream in the Google Chrome stack_trace_win source code, the developer cites the source code as the Microsoft Developer Network and includes a URL:

// Code adapted from MSDN example:

// http://msdn.microsoft.com/en-us/library/ms680578(VS.85).aspx 

(Source: https://github.com/adobe/chromium/blob/master/base/debug/stack_trace_win.cc retrieved in July 2019.)

Adapted from Writing Code (from MIT Research Guide) and Harvard’s CS50 syllabus