이 연구는 MOOC 플랫폼에서 학생들에게 다양한 프로그래밍 과제 해결책을 제공하는 문제를 다룹니다. 기존 플랫폼은 최근 제출된 솔루션만을 보여주는데, 이는 다양성이 부족할 수 있습니다.
연구팀은 먼저 기존 표절 탐지 도구 JPlag를 활용하여 솔루션을 클러스터링하려 했지만, 짧은 코드 조각을 처리하지 못하는 한계가 있었습니다. 이를 해결하기 위해 Rhubarb라는 새로운 도구를 개발했습니다.
Rhubarb는 다음과 같은 과정을 거칩니다. 1) 코드 표준화: 변수명 익명화, 주석 제거 등 12가지 변환을 통해 알고리즘적으로 동일한 솔루션을 하나로 병합합니다. 2) 거리 측정: GumTree 도구를 사용하여 AST 기반 편집 거리를 계산합니다. 3) 계층적 군집화: 계층적 응집형 군집화 알고리즘을 적용하여 솔루션을 클러스터링합니다. 4) 대표 솔루션 선택: 각 큰 클러스터에서 코드 품질이 높은 솔루션을 선택합니다.
Hyperskill 플랫폼의 867개 과제 데이터를 활용해 평가한 결과, JPlag는 5.3%의 과제만 처리할 수 있었지만, Rhubarb는 100%의 과제를 처리할 수 있었습니다. 전문가 평가에서도 Rhubarb는 기존 플랫폼 접근법보다 우수한 성능을 보였습니다.
이 연구는 MOOC 플랫폼에서 학생들에게 다양한 프로그래밍 솔루션을 제공하는 새로운 문제를 다루었고, Rhubarb라는 효과적인 솔루션 클러스터링 도구를 개발했습니다. 향후 연구에서는 Rhubarb의 성능 향상과 실제 MOOC 플랫폼에의 적용을 통해 학생들의 학습 효과를 검증할 계획입니다.
Egy másik nyelvre
a forrásanyagból
arxiv.org
Mélyebb kérdések