주의: 이 문서의 이전 리비전(cm3yg183r000up39kua88yovr)을 보고 있습니다. 최신 버전 보기

KOISTUDY

리비전 수정: 2024. 11. 26. 오후 9:38:58

개요

KOISTUDY는 경기과학고등학교에서 개발한 온라인 채점 시스템이다.

image.png

링크

기능

문제풀이 및 레이팅

말 그대로, 프로그래밍 문제를 해결할 수 있는 기능이다. 2학년 1학기까지 모든 필수 정보과목을 수강한다면, 최소 400개의 문제가 풀려 있을 것이다. 모든 문제의 난이도는 레이팅 계산 공식을 통해 계산된다. 레이팅을 1~10까지 있으며, 10레이팅을 초과하는 문제는 모두 10+ 로 통일되어 표시된다.

레이팅 계산 방법

문제를 풀기 위해 제출한 제출의 성과를 R R 이라고 하면, 제출한 프로그램의 실행 시간 T T 와 문제의 시간 제한 L L 에 대해 다음 식이 계산된다.

R=(1T/L)2 R=(1-T/L)^2

문제의 레이팅D D 는 해당 문제를 맟힌 사람 수 C C 와 제출한 사람 수 S S , 그리고 맞힌 사람들의 최대의 성과의 평균 A A 에 대해

D=9(1(C/(S+1))2)+(1A) D=9(1-(C/(S+1))^2)+(1-A)

이다.

각각의 사용자에 대한 레이팅 계산 시스템도 있지만, 서버 부하 때문인지 현재는 사용자 레이팅이 표시되지 않는다.

IamCoder

KOISTUDY에서 진행되는 대회이다. 공개 대회와 비공개 대회로 나뉘며, 비공개 대회는 대회 개설자가 설정한 코드가 있어야 참가할 수 있다. IamCoder 기능은 주로 정보과학 과목 수행평가에 이용된다.

특징

다양한 문제

컴퓨터프로그래밍, 정보과학세미나 등의 과목에서 학생들이 직접 출제한 문제들이 다수 업로드되기 때문에, 다른 플랫폼에는 존재하지 않는 독창적인 문제들이 많이 존재한다.

문제점

TLS 미사용

웹사이트에 HTTPS가 적용되지 않았다. 사이트 특성상 공용 와이파이에서 접속할 일이 많을 것이기 때문에 mitm 공격을 막기 위해서라도 TLS 적용이 시급하다.

채점 Sandbox 미존재

채점 시 사용자가 업로드한 코드를 Sandbox 내부에서 실행하지 않는다. root가 아닌 채점을 위한 별도의 사용자 계정에서 코드를 실행하긴 하지만, 미검증된 코드를 서버에서 그대로 실행한다는 점이 상당히 위험하다. 악성 코드를 막기 위한 코드 필터가 존재하긴 하지만, 실효성에 대해서는 의문을 가지는 학생이 많다.