Academic Honesty in Computer Programming

Spring 2017
(document created August 24, 2014 by Scott McElfresh - based on earlier documents)

Computer programming is a creative, collaborative endeavor.  

Thus, some time will be taken in class to describe the issues around appropriate collaborative behavior.  This document attempts to explain as well.   If you have any questions as to what is appropriate and what is not, please ask Prof McElfresh about it.

When to work alone and when to collaborate:

Work on the exams and quizzes must be entirely your own, unless otherwise specified. 

You are encouraged to discuss the exercises and homeworks with other students.   However, you must write up your own solutions to the written problems and create and debug your own programs (except for very minor syntax problems).  In general, it is a bad idea to look at another student's solution or partial solution, or showing your solution to another student.      NOTE: If you discuss the homework with other students, you should document this, as outlined below.
   
Part of computer programming is re-using other people's ideas and their  programs.  You are encouraged to take code from certain publicly available references - specifically, in-class examples and the course texts.  However, you should NOT be copying from the solutions of other students enrolled in the course, or from students who have taken this course in the past.  "Copying" means either Copy and Paste, or transcribing something from paper or a screen.   Further, you should not be using Google or other searches to find solutions online.     NOTE:  When you copy code from an acceptable source, you should document this, as outlined below.

Giving credit where credit is due (documenting your sources):

In order to receive credit for work you have done, your name must appear on that work.   For computer programming, this means that you need to put your name in EVERY file that you create or modify.  For computer programs, this means adding your name in a "comment" at the top of the file.  (Examples of this will be presented in class.)   Putting your name on a folder containing your files is not sufficient since files may move out of that folder.  Adding your name to an existing file that you did not modify is considered plagiarism.  

If you discussed the homework with a colleague, or received help from another student, you need to document this in the comments at the top of the relevant file(s).  For instance, "Jane Doe helped me to understand how to approach this problem."   Or, "I worked with John Smith on determining what was wrong with my data file."

When you copy code from an acceptable source (in-class examples and the course texts), you should document this.  In particular, if you Copy and Paste from an electronic version of a program, or copy it from a printout or book, you must document this.  The way you document such copying is by typing a comment in the program.  The comment should contain the name of the person or reference from which the work was copied.    For instance, "The computeTax function was copied from the Acme Tax Manual for Software, v. 3.14159."

To not credit your source is considered plagiarism, as in any other field. 


Examples of cheating:


Examples of not cheating: