The purpose of programming assignments is to have students develop the skill of writing programs embodying concepts taught in class. Programming assignments must therefore be done independently unless explicit instructions are given describing the collaboration permitted (e.g., a  team project).

What is a "program not developed independently"?

A program will not be considered as work done independently if it, or significant portions of it, are equivalent to another program, using typical measures used in the discipline. In an effort to clarify these notions we provide below some frequently occurring examples of unacceptable similarities between programs. These examples should however not be interpreted as providing a complete list.

Two (fragments of) programs are considered equivalent if they contain highly unlikely and consistent errors or differ only in ways that are inessential to their execution. The following are examples of such inessential differences

  • Inessential formatting differences include, but are not limited to, indentation of lines, the number and placement of blank lines, and the style and placement of comments.
  • Inessential syntactic differences include, but are not limited to,
    • Variable Names: The variables of one program are a renaming of the variables of another.
    • Reordering: Sections of code (procedures, methods, classes, members) in one program are a reordering of code from another program, in a way that does not affect the program's function.
  • Inessential semantic differences include, but are not limited to
    • Control structures: There are well known equivalences between different kinds of control structures, or different ways of using the same control structure. Here are two examples, out of many, of such equivalences:
    if (x==y) print "equal";  
    else print "unequal" ;
    if (x!=y) print "unequal";  
    else print "equal"
    for j=1 to k { print j;}; j=1;  
    while( j<=k )  
      {print j; j=j 1;};

Note that the department, along with many of its peer institutions, compares program for untoward similarity using automated tools, including ones that perform textual comparison and ones that check behavior under various inputs. Instructors review these reports and make a final assessment whether two programs are, or are not, significantly equivalent.


Violations are categorized as 'separable' or 'non-separable' depending on their severity  Examples of separable violations include purchasing a solution, offering an assignment as a work for hire, or violating Rutgers Acceptable Use policy to obtain a solution.  Violations carry a range of penalties, depending on the specifics of the situation.  For additional information, see Rutgers Policy on Academic Integrity.

All violations of the Rutgers Policy on Academic Integrity will be reported by the instructor to the appropriate Dean.


Please remember that the person whose work is copied is also considered responsible for violating academic integrity principles. Take special care to protect your files, directories, and systems appropriately, and be sure to discard printouts so they cannot be retrieved by others (e.g., do not discard printouts in public recycling or garbage bins until after the assignment due date is passed).