Collaboration and Computer Science

One of the problems faced by students everywhere is understanding the degree of collaboration that is permitted in the completion of school assignments. This document is intended to help computer science students understand some of the issues, particularly as they apply to computer programs.

Collaboration in General

When discussing collaboration during the work on an assignment, a number of issues arise: task, source, scope, degree, and citation.
    Task:
    School assignments typically consist of a number of tasks. For an assignment to write an English paper, different tasks might include: For each task, the degree of permitted collaboration may differ (a student may NOT be permitted to obtain any outside help for writing the words but may be able to use a spell checker to check for spelling errors).

    Source:
    Assistance for an assignment can be obtained from a number of sources:

    Assistance from some sources (the course instructor) may be permitted while assistance from other sources (other students) may not be.

    Scope:
    The scope of collaboration deals with the extent to which the completed work is a product of collaboration. Did the collaboration just concern a single sentence in a 20 page effort? Or was the design of 25% of a computer program affected.

    Degree:
    While scope deals with the quantity of assistance received, degree deals with the quality or depth of assistance received. Different degrees of assistance that can be defined include the following:

Citation and Plagiarism

Some forms of assistance may be permitted ONLY if they are properly cited. Typically, papers require paraphrased work of others to be referenced. Copied passages must be quoted. Any work produced as a team effort should have all the team members listed as co-authors in ALL copies of the work submitted. Failure to properly cite sources is considered plagiarism.

It is important to understand the difference between plagiarism and permitted collaboration. Plagiarism can be defined to be "the deliberate copying, writing or presenting as one's own the information, ideas or phrasing of another person without proper acknowledgment of the true source" (http://www.jmu.edu/judicial/handbook.html, 08/10/02). If one includes the work of another without proper citation, one is guilty of plagiarism and may be subject to honor system sanctions. If one includes the work of another with proper citation but the use of another's work is not permitted in completing the assignment (one submits an English paper that was copied in its entirety from someone else but the original author is properly cited), there is no plagiarism but the work submitted does not satisfy the assignment requirements. Although honor system penalties will not apply, the grade for the assignment may be reduced, even to the extent that no credit is given, because the requirements were not met.

The offense of plagiarism is far more serious than the offense of failing to meet an assignment's requirements. Whenever using the information, ideas, or phrasing of another person in one's work, cite the original author unless you have received explicit instructions that citing the original author is unnecessary. Including a citation where it is unnecessary does no harm. Failing to include a citation where it is necessary can get you expelled from school.

Typical Computer Science Project Tasks

To understand how collaboration affects computer science programming projects, one must understand what the different tasks are. In relation to these tasks, each computer science professor may establish his/her own rules relating to permissible collaboration either on a per project basis or for the course as a whole. The tasks typically encountered when working on programming assignments are as follows. It should be clear this is not a linear process where one progresses directly through all the tasks. Insights revealed in a task frequently require one to backtrack to any of the previous tasks.