$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

제한된 프로그램 소스 집합에서 표절 탐색을 위한 적응적 알고리즘
An Adaptive Algorithm for Plagiarism Detection in a Controlled Program Source Set 원문보기

정보과학회논문지. Journal of KIISE. 소프트웨어 및 응용, v.33 no.12, 2006년, pp.1090 - 1102  

지정훈 (부산대학교 컴퓨터공학과) ,  우균 (부산대학교 컴퓨터공학과) ,  조환규 (부산대학교 컴퓨터공학과)

초록
AI-Helper 아이콘AI-Helper

본 논문에서는 대학생들의 프로그래밍 과제물이나 프로그래밍 경진대회에 제출된 프로그램과 같이 동일한 기능을 요구받는 프로그램 소스 집합들에서 표절행위가 있었는지를 탐색하는 새로운 알고리즘을 제시하고 있다. 지금까지 보편적으로 사용되어 온 대표적인 알고리즘은 부분 스트링간의 완전 일치를 통한 Greedy-String-Tiling이나 두 스트링간의 지역정렬(local alignment)을 이용한 유사도 분석이 주된 방법론이었다. 본 논문에서는 해당 프로그램 소스의 집합에서 추출된 키워드들의 빈도수에 기반한 로그 확률값을 가중치로 하는 적응적(adaptive) 유사도 행렬을 만들어 이를 기반으로 주어진 프로그램의 유사구간을 탐색하는 새로운 방법을 소개한다. 우리는 10여개 이상의 프로그래밍 대회에서 제출된 실제 프로그램으로 본 방법론을 실험해 보았다. 실험결과 이 방법은 이전의 고정적 유사도 행렬(match이면 +1, mismatch이면 -1, gap이면 -2)에 의한 유사구간 탐색에 비하여 여러 장점이 있음을 알 수 있었으며, 제시한 적응적 유사도 행렬을 보다 다양한 표절탐색 목적으로 사용할 수 있음을 알 수 있었다.

Abstract AI-Helper 아이콘AI-Helper

This paper suggests a new algorithm for detecting the plagiarism among a set of source codes, constrained to be functionally equivalent, such are submitted for a programming assignment or for a programming contest problem. The typical algorithms largely exploited up to now are based on Greedy-String...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 그러나 데이터 셋에 따라 분포가 달라지는 경우는 확인할 수 없었다. 다음 절에서는 ICPC 그룹 A에서 직접 표절로 검출된 코드에 대해서 집중적으로 살펴보고자 한다.
  • 둘째, 매개변수를 확장하는 것에 대한 연구이다. 현재 적응적 유사도 산출 방법에서는, 자유도가 1인 조절변수 q=1 —를 이용해서 일치, 툴일치, 갭을 이용한 일치를 조정하고 있다.
  • 특히 자료구조나 알고리즘의 표절은 해당 분야의 전문가(human expert)만이 할 수 있는 고도의 지능적 작업이므로 이를 컴퓨터 시스템이 기계적으로 측정하여 판단하는 것은 매우 어렵다. 따라서 본 논문에서는 두 프로그램의 유사도를 일단 구문수준에서 시작하여 좀 더 확장된 형태로 고려할 수 있는 연구에 집중하고자 한다.
  • 본 논문에서는 두 키워드의 빈도 곱의 로그 값으로 유사도 점수를 정했는데, 어떤 신호값(signal)의 세기 (intensity)를 상대적으로 비교하기 위하여 그 값에 log 를 취한 값(log odd)을 취하는 것은 공학에서 혼히 이용하는 방법이다. 예를 들어 마이크로어레이 실험에서 각 스팟별 신호의 강도를 상대적으로 비교하는 것 역시 그 상대값의 비율에 로그를 취한 것을 사용한다.
  • 특히 일반적으로 잘 사용하지 않는 특별한 방법을 사용하거나 구문 형태를 고쳐서 그 형식이 드러나지 않게 고치는 일에 많은 비용이 든다고 가정할 때, 각 키워드의 비율의 비중을 고려한 적응적 유사도 행렬에 의한 표절 탐색 방법은 이전의 단순한 일치/불일치로만 계산하는 기존의 방법에 비해서 상당히 효과적이다. 본 논문에서는 실제 표절 데이터를 대상으로 한 실험을 통해 이를 보였다.
  • 여기서 제한된 환경에서의 프로그램들이란, 입력과 출력 형식, 동작되어야 하는 프로그램의 기능이 매우 엄격하게 정의된 프로그래 밍 과제물이라든지, 프로그래밍 경진대회에서 제출된 문제들에 대한 프로그램들을 말한다. 본 논문에서는 이러한 제한된 환경에서의 프로그램 집합에 대해서, 본 논문에서 제시하는 방법의 우수성을 보이고자 한다.
  • 본 연구에는 위에서 제시한 여러 문제에도 불구하고 현재까지 개발된 기존의 표절 탐색보다는 진일보된 새로운 방법을 제시하고 그 방법이 보다 타당함을 다양한 데이터와 실험의 특성값을 비교함으로 보이고자 한다. 그리고 지금까지 수집된 몇 가지 표절 데이터를 이용하여 우리가 개발한 방법이 기존의 방법보다 더 우수함을 보인다.
  • 본 연구에는 이러한 저작물 중에서 프로그래밍 소스의 표절관계를 탐색하기 위한 기초적인 자료를 조사하고 이를 바탕으로 어떻게 프로그램의 표절을 찾아낼 수 있는지에 대하여 논의하고자 한다. 일반적으로 프로그램의 표절은 어떤 프로그램 A와 프로그램 B 사이에 유사한 면이 있는지를 소스코드 수준에서 살펴보는 것이다.
  • 관해 기술한다. 여기서는 ICPC 2005 프로그램 그룹 중에서도 가장 순서쌍 수가 많은 프로그램 그룹 1 에 대하여 유사도 분포를 조사하였다. 고정적 유사도 행렬을 채택하였을 경우와 적응적 유사도 행렬을 채택하였을 경우에 대해 유사도 분포를 조사하였는데, 적응적 유사도의 경우에는 a값을 0.
  • 우리는 본 논문에서 제시한 적웅적 방법이 이 차이를 잘 극복해 주었다는 것을 지적하고자 한다. 즉 for 루프 조건을 바꾸는 구간이 다소 길긴 하지만 적응적 방법에서는 그 불일치(mismatch)값이 고정적인 불일치 값인 -1보다 작으므로 그 뒤의 매칭을 포함시킨 부분 정렬을 구성하였다.
  • 따라서 이들 간의 비교는 하지 않았다. 우리는 이 중에서 9번, 10번, 63번 프로그램(각각 鸟, 戸】。, /%3으로 표기)을 선택해서 고정적 방법과 적응적 방법의 결과를 비교해 보고자 한다. 즉 그 유사도의 순위가 각 방법에서 서로 다르게 나타난 (鸟, 4。)쌍과 (孔, 孔3)쌍을 서로 비교해 보고자 한다.
  • 돌린 결과 유사하다고 판정된 프로그램의 쌍은 모두 10개가 추출되었다. 우리는 이 프로그램을 각각 하나씩 검사하여 실제 표절이 이루어졌는지 살펴보았다. 그 중 완전히 복사한 프로그램 한 쌍을 찾아내서 이 팀은 이후에 불이익을 받게 하였다.
  • 우리는 이 중에서 9번, 10번, 63번 프로그램(각각 鸟, 戸】。, /%3으로 표기)을 선택해서 고정적 방법과 적응적 방법의 결과를 비교해 보고자 한다. 즉 그 유사도의 순위가 각 방법에서 서로 다르게 나타난 (鸟, 4。)쌍과 (孔, 孔3)쌍을 서로 비교해 보고자 한다.
  • 유사도의 분포 차이를 살펴본다. 특히 적응적 유사도에 대해서는 매개변수 a 값과 /3 값을 변경시킴으로써 어떻게 분포가 변화하는지 살펴본다. a 값을 늘리면 일 .
  • 표 1에 수집된 테스트 데이터 프로그램 집합에 대하여 실제 표절 프로그램을 찾아내기 위해서 모든 데이터셋에 대해 검사해 보았다. 과거 발표된 연구 결과에서는 인위적인 표절을 수행한 프로그램에 대해 표절 검사를 수행하였다.
본문요약 정보가 도움이 되었나요?

참고문헌 (14)

  1. 조동욱, 소정, 김진용, 최병갑, 김선영, 김지영, 프로그램 표절 감정 툴에 대한 비교 분석 및 개발 툴에 대한 방향제시, 제20회 한국정보처리학회 추계학술대회논문집, 10권, pp. 757,760, 2003 

  2. Brenda Cheang, Andy Kumia, Andrew Lim, and Wee-Chong Oon. On automated grading of programming assignments .n an academic institution. Computer and Education, 41:121-131, 2003 

  3. David Jackson. A software system for grading student computer programs. Computer Education, 27(3/4):171-180, 1996 

  4. Janet Garter. Collaboration or plagiarism: What happens when students work together. In Proceeding of the 4th Annual SIGCSE/SIGCUE Conference on Innovation and Technology in Computer Science Eduwtion(ITICSE-99), volume 31 of SIGCSE Bulletin inroads, page 52-55, N.Y., June 27- July 1 1999. ACM Press 

  5. Paul Clough. Plagiarism in natural and programming languages: An overview of current tools and technologies. Technical report, University of Sheffield, Department of Computer Science, June 2000 

  6. R. James, C. McInnis, and M. Devlin. Plagiarism detection software: How effective is it?, 2002. Except from R. James, C. McInnis, and M. Devlin, ?Assessing Leaming in Australian Universities: Ideas, strategies and resources for quality in student assessment. Centre for the Study of Higher Education, Australian Universities Teaching Committee, Melbourne, ustralia, 2002 (http://www.cshe.unimelb.edu.au/assessingleaming/ docs/PlagSoft ware.pdf) 

  7. Thomas Schmidt and Jens Stoye. Quadratic time algorithms for finding common intervals in two and more sequences. In Proceedings of the 15th Annual Symposium on Combinatorial Pattem Matching(CPM 2004), volume 3109 of Lecture Notes in Computer Science, pages 347-358. Springer, 2004. 

  8. 이효섭, 도경구, 프로그램 표절 검출 방법에 대한 조사, 한국정보과학회 한국컴퓨터종합학술대회 2005 논문집(B), 32권, pp, 916-917, 2005 

  9. Kristina L. Verco and Michael J. Wise. Software for detecting suspected plagiarism: Comparing structure and attribute-counting systems. In Proceedings of the 1st Australian Conference on Computer Science Education, pages 130-134, Sydney, Australia, July 1996 

  10. M. Joy and M. Luck. Plagiarism in programming assignments. IEEE Transactions of Education, 42(2):129-133, May 1999 

  11. Jeong-Woo Soon, Seong-Bae Park, and SeYoung Park. Program plagiarism detection using parse tree kernels. In Proceedings of the 9th Pacific Him International Conference on Artificial Intelligence (PHICAI 2006), volume 4099 of Lecture Notes in Computer Science, pages 1000-1004. Springer, August 2006 

  12. Lutz Prechelt, Guido Malpohl, and Michael Philippsen. Finding plagiarisms among a set of programs with JPlag. Journal of Universal Computer Science, 8(11):1016-1038, 2002 

  13. Xin Chen, Brent Francia, Ming Li, Brian McKinnon, and Amit Seker. Shared information and program plagiarism detection. IEEE Transactions on Information Theory, 50(7):1545-1551, 2004 

  14. 강은미, 황미녕, 조환규, 유전체 서열의 정렬 기법을 이용한 소스 코드 표절 검사, 정보과학회 논문지: 컴퓨팅의 실제, 9(3):352-367, June 2003 

저자의 다른 논문 :

섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로