Skip to main content
Log in

Efficient clustering-based source code plagiarism detection using PIY

  • Regular Paper
  • Published:
Knowledge and Information Systems Aims and scope Submit manuscript

Abstract

Vast amounts of information available online make plagiarism increasingly easy to commit, and this is particularly true of source code. The traditional approach of detecting copied work in a course setting is manual inspection. This is not only tedious but also typically misses code plagiarized from outside sources or even from an earlier offering of the course. Systems to automatically detect source code plagiarism exist but tend to focus on small submission sets. One such system that has become the standard in automated source code plagiarism detection is measure of software similarity (MOSS) Schleimer et al. in proceedings of the 2003 ACM SIGMOD international conference on management of data, ACM, San Diego, 2003. In this work, we present an approach called program it yourself (PIY) which is empirically shown to outperform MOSS in detection accuracy. By utilizing parallel processing and data clustering, PIY is also capable of maintaining detection accuracy and reasonable runtimes even when using extremely large data repositories.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Bhattacharjee A, Jamil HM (2013) CodeBlast: a two-stage algorithm for improved program similarity matching in large software repositories. In: Proceedings of the 28th annual ACM symposium on applied computing. ACM, Coimbra, pp 846–852

  2. Chen X, Francia B, Li M et al (2004) Shared information and program plagiarism detection. IEEE Trans Inf Theory 50(7):1545–1551

    Article  MATH  MathSciNet  Google Scholar 

  3. Choi Y, Park Y, Choi J et al (2013) RAMC: runtime abstract memory context based plagiarism detection in binary code. In: Proceedings of the 7th international conference on ubiquitous information management and communication. Kota Kinabalu, Malaysia, pp 67–73

  4. Chuda D, Navrat P, Kovacova B et al (2012) The issue of (software) plagiarism: a student view. IEEE Trans Educ 55(1):22–28

    Article  Google Scholar 

  5. Cosma G, Joy M (2008) Towards a definition of source-code plagiarism. IEEE Trans Educ 51(2):195–200

    Article  Google Scholar 

  6. El Bachir Menai M, Al-Hassoun NS (2010) Similarity detection in Java programming assignments. In: Proceedings of the 5th international conference on computer science and education (ICCSE). IEEE, Hefei, pp 356–361

  7. Ester M, Kriegel HP, Sander J et al (1996) A density-based algorithm for discovering clusters in large spatial databases with noise. In: Proceedings of the 2nd international conference on knowledge discovery and data mining. AAAI Press, Portland, pp 226–231

  8. Faidhi JA, Robinson S (1987) An empirical approach for detecting program similarity within a university programming environment. Comput Educ 11(1):11–19

    Article  Google Scholar 

  9. Flores E, Barrón-Cedeño A, Rosso P et al (2011) Towards the detection of cross-language source code reuse. In: Proceedings of the 16th international conference on applications of natural language to information systems. Springer, Salford, pp 250–253

  10. Karp RM, Rabin MO (1987) Efficient randomized pattern-matching algorithms. IBM J Res Dev 31(2):249–260

    Article  MATH  MathSciNet  Google Scholar 

  11. Klieman AB, Kowaltowski T (2009) Qualitative analysis and comparison of plagiarism-detection systems in student programs. Instituto de Computacao Universidade Estadual de Campinas (UNICAMP): Sao Poalo, Brazil

  12. Kaufman L, Rousseeuw PJ (1990) Finding groups in data: an introduction to cluster analysis. Wiley, New York

    Book  Google Scholar 

  13. Kuo JY, Huang FC, Hung C, et al (2012) The study of plagiarism detection for object-oriented programming. In: Proceedings of the 6th international conference on genetic and evolutionary computing (ICGEC). IEEE, Kitakyushu, pp 188–191

  14. Lea D (2000) A Java fork/join framework. In: Proceedings of the ACM 2000 conference on Java Grande. ACM, San Francisco, pp 36–43

  15. Lin C, Snyder L (2008) Principles of parallel programming. Addison-Wesley, Boston

    Google Scholar 

  16. Liu C, Chen C, Han J, et al (2006) GPLAG: detection of software plagiarism by program dependence graph analysis. In: Proceedings of the ACM SIGKDD international conference on knowledge discovery and data mining. ACM, Philadelphia, pp 872–881

  17. Marinescu D, Baicoianu A, Dimitriu S (2013) A plagiarism detection system in computer source code. Int J Comput Sci Res Appl 3(1):22–30

    Google Scholar 

  18. Ng RT, Han J (1994) Efficient and effective clustering methods for spatial data mining. In: Proceedings of the 20th international conference on very large data bases. Morgan Kaufmann Publishers, San Francisco, pp 144–155

  19. Pang-Ning T, Steinbach M, Kumar V (2006) Introduction to data mining. Addison-Wesley, Boston

    Google Scholar 

  20. Prechelt L, Malpohl G, Philippsen M (2002) Finding plagiarisms among a set of programs with JPLAG. J Univers Comput Sci 8:1016–1038

    Google Scholar 

  21. Rahal I, Wang B, Schnepf J (2009) A primer on text-data analysis. In: (2nd ed) Encyclopedia of information science and technology. IGI Publishing, Hershey, pp 3111–3118

  22. Rosales F, García A, Rodríguez S et al (2008) Detection of plagiarism in programming assignments. IEEE Trans Educ 51(2):174–183

    Article  Google Scholar 

  23. Rousseeuw PJ (1987) Silhouettes: a graphical aid to the interpretation and validation of cluster analysis. J Comput Appl Math 20:53–65

    Article  MATH  Google Scholar 

  24. Schleimer S, Wilkerson DS, Aiken A (2003) Winnowing: local algorithms for document fingerprinting. In: Proceedings of the 2003 ACM SIGMOD international conference on management of data. ACM, San Diego, pp 76–85

  25. Van Rijsbergen CJ (1977) A theoretical basis for the use of co-occurrence data in information retrieval. J Doc 33(2):106–119

    Article  Google Scholar 

  26. Whale G (1990) Identification of program similarity in large populations. Comput J 33(2):140–146

    Article  Google Scholar 

  27. Wise MJ (1995) A system for comparing biological sequences using the running Karp-Rabin Greedy String-Tiling algorithm. In: Proceedings of the third international conference on intelligent systems for molecular biology. AAAI Press, Cambridge, pp 393–401

  28. Wise MJ (1996) YAP3: improved detection of similarities in computer program and other texts. In: Proceedings of the ACM SIGCSE technical symposium on computer science education. ACM, Philadelphia, pp 130–134

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tony Ohmann.

Additional information

Tony Ohmann completed the work at the College of Saint Benedict and Saint John’s University.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ohmann, T., Rahal, I. Efficient clustering-based source code plagiarism detection using PIY. Knowl Inf Syst 43, 445–472 (2015). https://doi.org/10.1007/s10115-014-0742-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10115-014-0742-2

Keywords

Navigation