[조교] 코딩과제 유사성 검사해보기 (feat. MossApp)

 

  의심스러워졌다.


코드치팅 분석 프로그램을 찾게된 배경

우리학교에는 저학년 과목중, 파이썬을 통하여 프로그래밍언어를 배우는 수업이 있다.

따라서 프로그래밍 과제 또한 파이썬이고 그 과제를 채점하는 몫은 나(조교)다.

 

원래는 동작확인만 하면 되는데, 매기다보면 성의없이 똑같은 코드를 제출한 학생들이 매번 보인다.

알고리즘이 동일한 게 아니라, 코드 자체가 똑같은 경우가 있는데 이걸 몇 번 넘어가려하니 주석도 일일히 넣어가며 푸는, 과제에 진심인 사람한텐 미안한 일인 것 같았다.

기 보다도 얼마나 유사한지 궁금해져 확인할려고 소스 유사도 검사 프로그램을 찾아 github에서 다운받아서 써봤다.

방금 치킨을 먹고 배불러서 공부하긴 싫고 뭐라도 해야 죄책감이 덜할 것 같은 때에 이런 조금 넘치는 열정을 하기에 좋았다. 

 

어차피 과제가 웬만해선 단순하다. 유사도 95-100% 뜨는 비율만 부정행위 범위 안에 염두하기 했다.

 

 여기서 다운받았다

 

Plagiarism Detection

A System for Detecting Software Similarity UPDATES April 26, 2021, If you are having trouble registering, please try using Gmail to send the registration message. April 10, 2020, The dramatic increase in online courses due to the coronavirus pandemic seems

theory.stanford.edu

stanford 대학에서 서비스하고 있는 소프트웨어 소스코드 유사도 감별 시스템인 MOSS.

해당 주소에 접속하면 자신의 운영체제에 맞는 선택란이 있을 거고, 나는 window용으로 갔다

 

지원하는 언어는 적힌대로

C, C++, Java, C#, Python, Visual Basic, Javascript, FORTRAN, ML, Haskell, Lisp, Scheme, Pascal, Modula2, Ada, Perl, TCL, Matlab, VHDL, Verilog, Spice, MIPS assembly, a8086 assembly, a8086 assembly, HCL2.

 

 

⚑ MOSS를 사용해보자


사용하기에 앞서 메일을 보내 아이디를 받아와야한다

누구한테 보내냐면, 스탠포드... 스탠포드.. 와, 스탠포드?

제목{(자유)}

내용{
register
eamile (아이디)@(메일주소)
}

이런형식으로 메일 보내면 답장이 올 것이다.

다른 블로그를 참고하니, 복사하여 작성한 메일이 아닌 직접 타이핑한 메일이어야 답장이 온다고 하더라. 지금도 그런진 모르겠지만 혹시나 싶어 나도 붙여넣기는 하지 않고 보냈다. 하루 걸릴까 싶었는데 10분 안에 왔다. 자동시스템이었다. 어쨌든

🍊와 스탠포드한테 답장왔어!

 

 

발급받은 아이디를 확인하자

 

사진은 짧지만 메일이 상당히 길게 올 것이다. Linux 체제에서 실행시 복사할 내용이 많겠지만 windows를 사용하는 나는 visual studio로 동작시키니 아이디만 필요하다. 따라서 ctrl+f로 userid를 검색하여 해당 부분만 긁으면 된다.

 

대충 이렇게 있다. 파란색부분을 따로 저장해두자. 계속 쓸 수 있으니까.

 

 

실행해보자

VisualStudio(2019)로 열어서 ctrl+F5로 바로 실행시키면 대화상자를 통해 바로 동작시킬 수 있다

 

 

작동시켜보자

(1). 아까 따로 담아둔 User ID 입력창

(2). Language: 사용할언어(Python) 설정

(3). Chose Source Files > [검사할 코드들이 담긴 폴더] 선택하기 //난 서로서로 비교해줄거라서 이걸로 폴더 업로드

(4). 확인

(5). 우측 send Request로 데이터 전송

 

 

전송 후에는 약 1분이 덜 되어서 분석이 끝난다.

그리고 우측 위에 파란 주소가 떴다. 해당 링크로 이동하면 결과가 나온다

 

 

 

 

⚑ 그렇더라


치팅여부 확인을 위한 유사도 검사 결과

90퍼 이상이 대략 여섯일곱명. 전체의 10%정도 된다 애초에 코드도 짧았다.

이번 과제가 알고리즘이 똑같을 수 밖에 없었던 거라고 생각하기로 하고, 지난 과제를 가져와서 한 번 더 확인했다

 

 

 

 

🍊 뭐야이거. 

 

 

 

두 개를 더 해봤다. 

포장하는 게 아니라 실제로 비대면에서 주어진 과제들은 출석용이다. 따라서 어렵거나 복잡한 프로젝트성이 아닌지라 코드 자체도 짧고 알고리즘은 겹칠 수 밖에 없었다

대신 상위권에 자주오르는 이름은 분류해놨다.