소스코드 유사도 검증 알고리즘 및 이를 이용한 교육 보조 프로그램 개발

From Course@DGIST
Jump to navigation Jump to search
소스코드 유사도 검증 알고리즘 및 이를 이용한 교육 보조 프로그램 개발
제안자 곽지혁, 이예람, 정슬인
자문교원 신동훈
연도 2020
타입 B형 과제
코스 빌 게이츠
매칭여부 Yes
참여학생수 4
소개동영상

제안 배경

DGIST 공통필수 과목인 ‘프로그래밍(실습)’ 수업은 외부의 교육 보조 프로그램을 이용하여 진행된다. 하지만 이 프로그램을 사용하는 것은 다음과 같은 문제점이 있다.

1. 채점 기준의 불명확성 현재의 프로그램에서는 학생이 과제를 제출하면 몇가지의 test case에서의 input과 output을 대조하여 각 test case에서의 output 일치 여부에 따라 점수가 결정된다. 복잡한 문제일수록 모든 경우를 고려한 test case를 제공하기 어려워 주어진 test case 외의 경우에서 코드의 실행 여부를 확인할 수 없다. 일부의 경우만 만족하면 만점을 받을 수 있으므로 문제에 대한 정확한 채점이 불가능하다. 또한 output을 정답과 비교하면 문제의 목적과 무관한 공백(space, enter)에도 0점 처리가 되는 점과 같은 문제가 발생한다. 이로 인해 채점 결과에 대한 학생들의 불만이 발생하였고, 이를 해결할 수 있는 새로운 방식의 채점 기준이 필요하다.

2. 표절 검사 표절은 창의적인 생각을 막고 저작권 문제를 유발한다. 하지만 현재 사용하는 교육 보조 프로그램에서는 코드의 표절 검사를 진행하지 않는다. 기존의 프로그램에서는 학생들 사이에서 코드를 공유하고 변수만 변경하여 제출하는 등의 문제가 빈번하게 발생했다. 이 문제를 해결하기 위해 학생 간의 코드, 또는 인터넷에 업로드 되어 있는 오픈소스와의 유사성을 검사하는 알고리즘을 개발하여 유사도를 측정하고, 이를 기반으로 표절 여부를 확인하는 기능이 필요하다.

3. 코드 공유 수단의 부재 프로그래밍 공부를 할때 다른 사람들의 코드를 보며 더 많은 방법을 익힐 수 있다. 하지만 현재 사용하는 프로그램에서는 과제가 제출 된 후에도 모범 코드 혹은 서로의 코드를 확인하며 공부할 수 있는 시스템이 구축되어 있지 않다.

4. 프로그램 사용 비용 문제 현재 사용하고 있는 교육 보조 프로그램은 무료 배포 프로그램이 아니다. 현재 프로모션 기간이 끝나 이 프로그램을 이용하기 위한 비용이 올라갔고 금액은 학교에서 부담하기 어려운 수준이다. 이를 대체할 수 있는 자체 프로그램을 개발한다면 금액 부담을 줄일 수 있다.

위와 같은 문제점들을 보완하기 위해서는 채점과 표절 검사를 위한 소스코드 유사도 검증 알고리즘 개발이 우선되어야 한다. 또한 더 나아가 알고리즘을 탑재한 플랫폼을 구현하는 것이 목표이다.

과제 목표

1. 채점을 위한 소스코드 유사도 검증 알고리즘을 개발한다.

2. 표절 검사를 위한 소스코드 유사도 검증 알고리즘을 개발한다.
3. 서비스 제공을 위한 플랫폼을 구현한다.

과제 내용

위에서 언급했듯이 기존 프로그램을 보완하기 위해서 채점과 표절 검사를 위한 소스코드 유사도 검증 알고리즘의 개발이 필요하다. 유사도를 검증한다는 점에서 채점과 표절 검사를 위한 알고리즘이 초기 단계에서는 유사할 수도 있다. 하지만 분석하고자 하는 코드가 복잡해질수록 두 알고리즘에 차이가 생기며 독립적으로 개발해야 할 것으로 사료된다. 이 두 알고리즘이 안정적으로 개발이 된다면, 이를 탑재한 서비스를 제공하는 플랫폼을 구현하는 것이 최종 목표이다.

참고자료

1. 이기화, 김연어, 우균. (2014). 데이터 구조를 고려한 소스코드 표절 검사 기법. 정보처리학회 논문지. 컴퓨터 및 통신시스템 3권 6호, 189-196

2. https://ratsgo.github.io/from%20frequency%20to%20semantics/2017/04/20/docsim/

3. 김은혜, 이송아, 허준, 한경숙, 오용철. (2007.10). 자바소스코드 유사도 측정 시스템. 한국정보과학회 학술발표논문집, 34(1c), 536 ~ 539

희망학생

곽지혁 (wlgur0416@dgist.ac.kr) 이예람 (gsh06088@dgist.ac.kr) 정슬인 (ths06123@dgist.ac,kr)