Program Plagiarism Detection based on X-treeDiff+

X-treeDiff+ 기반의 프로그램 복제 탐지

  • Lee, Suk-Kyoon (Department of Computer Science and Engineering, College of Engineering, Dankook University)
  • 이석균 (단국대학교 공과대학 컴퓨터학부)
  • Received : 2010.06.01
  • Accepted : 2010.07.07
  • Published : 2010.07.25

Abstract

Program plagiarism is a significant factor to reduce the quality of education in computer programming. In this paper, we propose the technique of identifying similar or identical programs in order to prevent students from reckless copying their programming assignments. Existing approaches for identifying similar programs are mainly based on fingerprints or pattern matching for text documents. Different from those existing approaches, we propose an approach based on the program structur. Using paring progrmas, we first transform programs into XML documents by representing syntactic components in the programs with elements in XML document, then run X-tree Diff+, which is the change detection algorithm for XML documents, and produce an edit script as a change. The decision of similar or identical programs is made on the analysis of edit scripts in terms of program plagiarism. Analysis of edit scripts allows users to understand the process of conversion between two programs so that users can make qualitative judgement considering the characteristics of program assignment and the degree of plagiarism.

컴퓨터 프로그래밍 교육에서 프로그램 복제는 프로그래밍 학습 효율을 저해하는 심각한 요인이다. 본 논문에서는 학생들이 프로그래밍 과제의 무분별한 복제를 방지하기 위해 유사 또는 동일 프로그램을 탐지하는 기법을 제안한다. 지문법이나 스트링 매칭을 기반으로 하는 기존의 탐지 기법과는 달리, 우선 C 프로그램을 파싱하여 문법요소를 엘리먼트로 하는 XML 문서로 변화시킨 후 XML 문서의 변화탐지 알고리즘인 X-treeDiff+를 실행시켜 그 차이를 분석하는 방법을 취한다. 이때 대응의 정도를 나타내는 유사도와 두 문서의 차이로 제시되는 일련의 편집연산인 편집스크립트를 프로그램 복제의 관점에서 분석하여 복제 여부에 대한 판단을 하게 된다. 편집스크립트의 분석은 두 프로그램 간의 변환 과정을 유추할 수 있게 하여 기존 방법들과는 달리 사용자는 과제의 성격이나 복제의 정도를 고려한 정성적인 판단이 가능하다는 장점이 있다.

Keywords

Acknowledgement

Supported by : 단국대학교

References

  1. X. Chen, B. Francia, M. Li, B. Mckinnon, A. Sker, "Shared Information and Program Plagiarism Detection," IEEE Transactions on Information Theory, v. 50 n.7, 1545-1551, 2004. https://doi.org/10.1109/TIT.2004.830793
  2. S. Schleimer, D. Wilkerson, A. Aiken, "Winnowing: Local Algorithms for Document Fingerprinting," SIGMOD'03, June 2003.
  3. D. Saccol, N. Edelweiss, R. Galante, C. Zaniolo, "XML Version Detection," DocEng'07, Aug. 2007.
  4. 김영철, 곽동규, 문현주, 최종명, 유재우, "프로그램 문장 결합 및 제어 구조를 이용한 유사도 평가," 정보과학회논문지: 기술교육 제 2권 제 1호, 2005.
  5. 한소정, "오픈 소스코드 표절 탐지 기법," 이화여자대학교 대학원 컴퓨터정보통신공학과 석사학위논문, 2009.
  6. S.K. Lee, D.A Kim, "Efficient Change Detection In Tree-Structured Data," Lecture Notes in Computer Science (LNCS2713) pp675-681, 2003.
  7. A. Haake, "CoVer: A Contextual Version Server for Hypertext Applications," In Proc. of 4th ACM Conf., Hypertext, pp.43-52, Milan. Italy, Nov. 1992.
  8. K. Osterbye, "Structural and Cognitive Problems in Providing Version Control for Hypertext," In Proc. of 4th ACM Conf., Hypertext, pp33-42, Milan. Italy, Nov. 1992.
  9. W. Labio and H. G. Molina, "Efficient snapshot differential algorithms for data warehousing," In Proc. of 20th Conf. VLDB, pp.63-74, Bombay. India, Sep. 1996.
  10. J. Widom and S. Ceri, Active Database System: Triggers and Rules for Advanced Database Processing, Morgan Kaufmann, 1996.
  11. E. W. Myers, "An O(ND) Difference Algorithm and Its Variations," Algorithmica, 1(2), pp.251-266, 1986. https://doi.org/10.1007/BF01840446
  12. "Concurrent Versions System(CVS)," Free Software Foundation, http://www.gnu.org/manual/cvs-1.9.
  13. S. Chawathe, A. Rajaraman, H. G. Molina and J. Widom, "Change Detection in Hierarchically Structured Information," In Proc. of ACM SIGMOD Int'l Conf. on Management of Data, Montreal, June 1996.
  14. S. M. Selkow, "The tree-to-tree editing problem," Information Proc. Letters, 6, pp.184-186, 1977. https://doi.org/10.1016/0020-0190(77)90064-3
  15. K. Tai, "The tree-to-tree correction problem," Journal of the ACM, 26(3), pp.422-433, July 1979. https://doi.org/10.1145/322139.322143
  16. S. Lu, "A tree-to-tree distance and its application to cluster analysis," IEEE TPAMI, 1(2), pp.219-224, 1979.
  17. J. T. Wang and K. Zhang, "A System for Approximate Tree Matching," IEEE TKDE, 6(4), pp.559-571, August 1994.
  18. S. Chawathe and H. G. Molina. "Meaningful Change Detection in Structured Data," In Proc. of ACM SIGMOD '97, pp.26-37, 1997.
  19. G. Cobena, S. Abiteboul and A. Marian, "Detecting Changes in XML Documents," the 18th ICDE, 2002.
  20. 이석균, 김동아, "X-tree Diff: 트리 기반 데이터를 위한 효율적인 변화 탐지 알고리즘," 정보처리학회논문지 10-C권 6호 pp683-694 2003.
  21. S.K. Lee, D.A Kim, "X-Tree Diff+:Efficient Change Detection Algorithm in XML Documents," Lecture Notes in Computer Science(LNCS4096), Springer Verlag, pp1037- 1046, 2006.
  22. PCCTS, http://www.antlr2.org/pccts133.html.
  23. JPlag, https://www.ipd.uni-karlsruhe.de/jplag/