A Note about “Working Together” & Software Copying

Software homeworks/Labs/Projects for PMI must be done INDEPENDENTLY, that means that each student must do their own programming and may not work together. The purpose of programming assignments is to have students develop the skill of writing programs embodying concepts taught in class. (Please note: the policy & wording of this memo is the same as the policy for both the Dept of ECE and Dept. of Computer Science.)

 

You may, however, ask a classmate for help on a homework/lab/project, as long as the “help” does not constitute doing the program for you and does not violate the “equivalence-of-programs” described below. Examples of valid questions include, “Can you help me log in?”, “Can you help me with the compiler?”, “What does this particular error mean?”, etc. The general rule to follow in programming is known as the “Gilligan’s Island Rule”, or for a more current version, the “Apprentice/Survivor/Simpson” rule. After discussing something related to the programming assignment, watch a TV program for ½ hour before beginning to program. Then you should be assured that your code will not be the same

 

Program Equivalence --- What is software copying?

 

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 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 

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 programs 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.