SourceAnalyzer 1.01 by Omid David davoudo@macs.biu.ac.il http://www.cs.biu.ac.il/~davoudo Bar-Ilan University, Israel Welcome to SourceAnalyzer C/C++ plagiarism detector! MOTIVATION ---------- Plagiarism is a real plague, causing the future programmers to lack the needed skills, due to insufficient practice of their own. There are many source code plagiarism detectors in many universities, trying to combat this problem; however their success rate in detection is very low. The "SourceAnalyzer" takes a completely different approach in trying to detect plagiarism (see below). This program is available for everyone's use(!), my belief is that students who try to copy others' codes, will try to make many changes to the code, to avoid detection. Now if they use this strict "SourceAnalyzer", they will certainly have to modify much larger parts of code. So my point to such people is "safe plagiarism is harder than writing the code by yourself!", since they'll have to work really hard to beat this plagiarism detector. If they do manage to beat "SourceAnalyzer", it means that they have modified almost all the code, which for itself means that they have almost done the whole thing by themselves! The advanced features are available only for lecturers and course assistants (see below for applying for password). APPLYING FOR PASSWORD --------------------- For basic features use the password "guest" to log in. Lecturers and course assistants can apply for a password to enable advanced features (i.e. detailed statistics of each factor's analysis). In order to get your password email me from a university mail account for example yourname@univ.edu or yourname@univ.ac.il. Please also state your position: lecturer/assistant/etc, and your departmental affiliation. USAGE ----- The program will ask you to enter the names of two C/C++ files. Then it will process each of them and analyze the result. The output is the probability of plagiarism in percentage. The output is also written to the log file which by default is "Analyzer.log". If you'd like the output to be written to another log file, give its name as a program argument, for example: C:\>Analyzer myfile.log To quit enter "quit" or "logout". HOW IT WORKS ------------ Unlike other plagiarism detector programs (which calculate similarity), this program calculates the probability of plagiarism in two given files. For example an output of 60% means that there is a 60% chance that at least some part of the code is copied from another one (it doesn't mean that there is a 60% similarity!). A probability smaller than 50% usually means that no part of the code is copied. These results are calculated by analyzing many factors in the code. Cheating every source analyzer will be easy when you know how it works, so I'd prefer not to explain the factors it checks. However I can say that changing variable names, functions, commments, etc won't fool it, since SourceAnalyzer checks the whole structure of the code rather than syntax. Experiments show that SourceAnalyzer's performance is better in longer codes. In codes under 100 lines the results are not reliable. In such short codes a manual scan will usually fair better. UPDATES ------- You can download the latest updates for this program at at my website: http://www.cs.biu.ac.il/~davoudo A UNIX version will be available soon. CONTACT ------- Your comments are highly appreciated, feel free to email me for any question, bug report, etc. If you are applying for a password please mention that, in the subject of the email. Email: davoudo@macs.biu.ac.il Website: http://www.cs.biu.ac.il/~davoudo Copyright © 2002 Omid David