A Note
about “Working Together” & Software Copying
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" |
if (x!=y) print "unequal" |
|
for j=1 to k { print 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.