Grouping of Similar Programs using Program Similarity Evaluation

프로그램 유사도 평가를 이용한 유사 프로그램의 그룹 짓기

  • Published : 2004.01.01

Abstract

Comparing many programs like programming assignments one by one requires many costs. Moreover, if the checker would evaluate or grade assignments, much more time will be required. Even through the checker invest much time, fairness is not always guaranteed. These problems can be solved easily by grouping similar programs. So, programs after grouping can be easily evaluated and graded. In this paper, we propose and implement algerian performing grouping by similarity on many programs. The grouping algorithm evaluates similarity using algorithm proposed in (9), and performs a grouping following high similarity order. By using this grouping algorithm, the number of comparison among N programs can be reduced from N-1 times to N(N-1)/2 times. In the part of experiment and evaluation of this paper, we actually showed evaluation result by similarity using randomly 10 programming assignments at the university.

프로그램 과제물과 같은 많은 프로그램을 모두 일일이 비교하는 것은 비용이 많이 든다. 더군다나 검수자가 과제물을 검사한다든가, 점수를 부여하고자 한다면 더욱 많은 시간이 요구된다. 물론 검수자가 많은 시간을 두고 평가해도 객관성이 떨어질 수도 있다. 이러한 문제점은 프로그램 과제물에 대해서 유사한 프로그램으로 서로 묶어 놓는다면 쉽게 해결할 수 있다. 즉, 유사한 프로그램으로 서로 묶어놓고 검사한다면 쉽게 검사나 평가가 가능하다. 본 논문에서는 많은 프로그램에 대해서 유사성이 높은 프로그램으로 그룹 짓기(grouping)를 수행하는 알고리즘을 제시하고 구현한다. 그룹 짓기 알고리즘은 (9)에서 제시한 프로그램 유사도 평가 알고리즘을 이용하여 유사도를 측정한 후, 유사성이 높은 프로그램을 그룹 짓기를 수행한다. 이 그룹 짓기 알고리즘을 이용하면 n개의 프로그램에 대해서 최대 n(n-1)/2 번에서 최소 (n-1)번까지 비교 횟수를 줄일 수가 있다. 본 논문의 실험 및 평가 부분에서는 실제로 모 대학의 과제물 10개를 추출하여 유사성을 기준으로 실험 평가한 결과를 보여준다.

Keywords

References

  1. J. A .Faidhi & S. K. Robinson, 'An Empirical Approach for Detecting Program Similarity within a University Programming Environment,' Computers and Education 11(1), pp. 11-19, 1987 https://doi.org/10.1016/0360-1315(87)90042-X
  2. J. Carter, 'Collaboration or Plagiarism: What Happens when Students Work Together?,' In Proc. ITiCSE, pp. 52-55, Cracow,Poland, 1999
  3. S. Horwitz, 'Identifying the Semantic and Textual Difference Between two Versions of a Program,' In proc. of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 234-245, Jun., 1990 https://doi.org/10.1145/93542.93574
  4. K. K. Vercon & M. J. Wise, 'Software for Detecting Suspected and Prevention of Plagiarism: Comparing Structure and Attribute Counting Systems,' In John Rosenberg, editor, Proc. of 1st Australian Conference on computer Science Education, Sydney, ACM, Jul., 1996 https://doi.org/10.1145/369585.369598
  5. M. Joy & M. Luck, 'Plagiarism in Programming Assignments,' IEEE Transaction in Education, 42(2), pp. 129-133, 1999 https://doi.org/10.1109/13.762946
  6. P. H. A. Sneath & R. Sokal, Numerical Taxonomy: The Principles and Practices of Numerical Classification, Freeman and Company. 1973
  7. Z. Huang, 'A fast clustering algorithm to cluster very large categorical data sets in data mining,' In SIGMOD Workshop on Research Issues on Data Mining and Knowledge Discovery (SIGMOD-DMKD'97), Tucson, Arizona, May 1997
  8. 장성순, 서선애, 이광근, '프로그램 유사성 검사기', 정보과학회 가을 학술대회, 28(2), pp. 334-336, October, 2001
  9. 김영철, 김성근, 염세훈, 최종명, 유재우, '구문트리 비교를 통한 프로그램 유형 복제 검사', 한국 정보과학회 논문지, 30(8), Aug. 2003
  10. J. Han and M. Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann Publisher, ISBN 1-55860-489-8, 2000
  11. Y. M. Cheung, 'K*-means-A Generalized k-means Clustering Algorithm with Unknown Cluster Number,' available at http://www.comp.hkbu.edu.hk/~ymc/papers/conference/ideal2002.pdf, Hong Kong Baptist Univ., 2002
  12. G. Salton & M. J. McGill, Introduction to Modern Information Retrieval. NY: McGraw-Hill Book Company. 1983
  13. E. Berk, 'Jlex:A Lexical Ananlyzer Generator for Java TM,' available at http://www.cs.princeton.edy/~appel/modern/java/JLex/
  14. J. Lin, JLex Tutorial, available at http://bmrc.berkeley.edu/courseware/ cs164/spring98/proj/jlex/tutorial.html
  15. S. E. Hudson, 'CUP Parser Generator for Java,' available at http://www.cs.princeton.edy/~apple/modern/java/CUP/