Google Answers Logo
View Question
 
Q: Checking for Programming Cheaters? ( Answered 5 out of 5 stars,   4 Comments )
Question  
Subject: Checking for Programming Cheaters?
Category: Computers > Programming
Asked by: rhodylady-ga
List Price: $5.00
Posted: 18 Dec 2002 07:53 PST
Expires: 17 Jan 2003 07:53 PST
Question ID: 126461
I teach programming - primarily Visual Basic (.net now) and another
instructor teaches primarily Java. We're interested in (probably
purchasing) a program that will look at our student programs and see
if they're cheating. By cheating, I mean programs that are too similar
to each other. This often happens when one student "shares" a program
with other students, who then do a "search/replace" and change
variable names... move some code around... perhaps change some
comments, and then turn the work in as their own.

I would like a program that would work with both Visual Basic and Java
(C++ would be nice too) that I could point to a directory and say "all
the student programs (in one language) are in this directory - compare
them against one another and let me know which ones are "too" similar
to each other".

Thanks!
Answer  
Subject: Re: Checking for Programming Cheaters?
Answered By: philip_lynx-ga on 18 Dec 2002 09:42 PST
Rated:5 out of 5 stars
 
Dear Rhodylady,

this is an interesting question that several teachers and institutions
have tried to address in the past. There is some freeware available on
the Internet, and there are solutions that you can buy. None of them
seems to work for visual basic out of the box, but maybe they can be
adapted to fit your need...

Moss is one free system that you may want to have a look at -- it has
a very good reputation. It has been created under the auspices of
Prof. Alex Aiken at Berkely, and can be used free of charge. It covers
C, C++, Java, Pascal, Ada, ML, Lisp, and Scheme. I am sure if you get
into contact with him, you can learn more about Moss, and maybe also
find out if it can be adapted to (or already works with) Visual Basic.
Publicly available information can be found here:
http://www.cs.berkeley.edu/~aiken/moss.html

4 Point Group offers a tool to find plagiarism of source code from
sources in the Internet. This may be of interest to you, as this also
represents a likely form of cheating:
http://www.4pointgroup.com/

The following web-page offers you pointers to several
plagiarism-detection programs and services, and also includes a
pointer to Moss:
http://www.teach-nology.com/highered/plagiarism/detecting/software/

Another free tool that is worth looking into:
http://www.jplag.de/

While not the perfect answer to your query, I do hope it gives you
sufficient pointers and leads to get to a good conclusion. Careful
searching has not turned up any read-made solution for Visual Basic.
But maybe you are in luck, and one of the solutions offered above does
also perform with VB, even if not with the highest possible
performance... Should you require more or different information,
please do not hesitate to ask for a clarification.

Friendly greetings,

    P. Lynx


Search strategy: I looked both for 'student program cheat' and
'detecting code plagiarism' in Google, and then followed up with a
query for pages related to this one:
related:www.cs.berkeley.edu/~aiken/moss.html
and
related:http://www.jplag.de/
rhodylady-ga rated this answer:5 out of 5 stars
Gotta Love It.  Good answers AND quick answers!

Comments  
Subject: Re: Checking for Programming Cheaters?
From: mathtalk-ga on 18 Dec 2002 10:26 PST
 
As someone with experience in accusation and defense of student
plagiarism, I'd like to point out that most programming assignments in
introductory programming classes are for very short programs, and
often closely related to code snippets or programs that have been
discussed in class or described in the text.  Therefore the diversity
of programs which result from these assignments is lessened, not only
by "program sharing" but by the pedagogical approach of imitation.

This is a very reasonable approach to teaching programming to
beginners(or "introductory computer science" if you prefer), and I do
not suggest that sample programs should be excluded.  Instead, I would
use in class tests to evaluate the competence of students.  Any sort
of take home assignment is an occasion for doubt about its provenance.
 The only question is the skill with which a student might reasonably
be suspected of having illegitimately obtained the result, and using a
computer program to provide "judgement" in this matter is the same
fallacy as a naive computer user thinking an answer must be correct
"because the program says so."

A structured in-class programming test has proven in my experience to
be a very reliable indication of a student's comprehension of concepts
and coding skills.

regards, mathtalk-ga
Subject: Re: Checking for Programming Cheaters?
From: rhodylady-ga on 19 Dec 2002 11:00 PST
 
Mathtalk - I couldn't agree with you more. When I teach a first
quarter programming class virtually all assignments we work on
together "do" look alike.  I'm more interested in checking programs
that students are supposed to work on, say, over the weekend, on their
own. Or checking programs of more advanced students.  Thank you for
your view point.
Subject: Re: Checking for Programming Cheaters?
From: coldascold-ga on 26 Dec 2002 08:14 PST
 
I might also add Applied learning.
Where multiple minds act on the subject creating the ultimate goal.
ie.PHD learns from street Kid making PHD all the smarter.
You will create plagiarism by looking for it.In reality,
An intellectual has limits too.
Subject: Re: Checking for Programming Cheaters?
From: tomuk-ga on 21 Jan 2003 05:38 PST
 
I would also recommend a report that I co-authored for the UK's Joint
Information Systems Committee, detailing the extent of source code
plagiarism within the UK and comparing the main solutions. It's
available at:

http://www.jisc.ac.uk/pub01/southbank.pdf

From experience one useful plagiarism indicator is where students
recreate the same coding errors, whether spelling mistakes in comment
lines, odd line spacing or unusual execution errors.

Sadly, having been working on this area for several years, there don't
seem to be any Visual Basic detection solutions, which is one area
I've recommended support for in a forthcoming paper.

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy