스포지

SPOJ

SPOJ(Sphere Online Judge)는 315,000명 이상의 등록 사용자와 20,000개 이상의 문제를 가진 온라인 판사 시스템입니다.태스크는 문제 설정자 커뮤니티에 의해 준비되거나 이전 프로그래밍 콘테스트에서 가져온 것입니다.SPOJ는 상급 사용자가 자체 규칙에 따라 공모전을 조직할 수 있도록 하며 프로그래머가 특정 문제를 해결하는 방법을 논의할 수 있는 포럼도 포함합니다.

영어 외에 SPOJ는 폴란드어, 포르투갈어, 베트남어로도 콘텐츠를 제공하고 있습니다.문제에 대한 해결책은 Sphere Engine을 통해 난해한 언어를 포함하여 40개 이상의 프로그래밍 언어로 제출할 수 있습니다.그것은 폴란드 회사 Sphere Research [1]Labs에 의해 운영된다.

이 웹사이트는 사용자가 제출한 프로그램을 자동으로 평가하는 동시에 사람들이 컴퓨터 [2]작업을 이해하고 해결할 수 있도록 돕는 온라인 학습 플랫폼으로 간주됩니다.이것은 또한 학생들이 패러다임과 접근 방식을 다양한 언어와 비교할 수 있게 해준다.

역사

이 시스템은 원래 온라인 심사위원을 학생들의 교육에 적용하기 위해 만들어졌다.기본적으로 알고리즘과 프로그래밍 콘테스트에 관심이 있는 대학교 학생, 강사 및 더 넓은 프로그래밍 커뮤니티 구성원에 초점을 맞췄다.

목적

다음과 [3]같은 다양한 목적을 위해 다양한 사용자를 대상으로 했습니다.

  • 알고리즘에 대한 이해를 높이기 위한 젊은이나 초보자용.
  • 대학의 학생들은 정직하고 철저하게 부정행위 없이 숙제를 할 수 있는 기회가 주어진다.
  • ACM 콘테스트 프로는 너무 적은 프로그래밍 언어의 제약이나 불편한 사용자 인터페이스로 인해 번거로움을 겪지 않고 작업을 해결할 수 있습니다.
  • 기능성 또는 객체 지향 프로그래밍을 좋아하는 사람은 자신이 좋아하는 언어로 콘테스트 문제를 해결할 수 있습니다.
  • 다른 SPOJ 커뮤니티와 흥미로운 작업을 공유하고 싶은 사람은 누구나 거의 자동으로 작업을 수행할 수 있습니다(문제 해결자의 권한을 요청하는 관리자에게 보내는 메일 한 통이면 충분합니다).
  • 프로그래밍 콘테스트를 개최하고 싶은 사람은 시스템 관리자의 도움을 받지 않고 자신이 결정할 수 있는 거의 모든 규칙을 선택할 수 있습니다.

문제 카테고리

SPOJ의 아카이브된 문제는 다음 5가지 범주로 나뉩니다.

  • 클래식:이것들은 바이너리 스코어 문제입니다.승인된 답변 또는[citation needed] 잘못된 답변 중 하나
  • 과제:이를 통해 사용자는 더 나쁘거나 더 나은 솔루션을 제출할 수 있습니다.특정 문제에 대한 명확한 해답은 없습니다.
  • 부분:이것들은 도전적인 문제와 비슷하지만 교육적인 목적을 가지고 있다.
  • 튜토리얼:고전적인 문제처럼 쉽지만 교육적인 목적입니다.예를 들어 널리 알려진 알고리즘이 관련되어 있습니다.
  • 수수께끼: 퍼즐이 포함된 문제

문제를 더 어렵게 만들기 위해 제출에 제한이 있을 수 있습니다.여기에는 언어(예: 난해한 언어만)와 계산 시간이 포함됩니다.

판단

클러스터

송신 내용은,[5] 1개의 클러스터로 판단됩니다.

  • 큐브 (인텔 Xeon E3-1200 v5) :사이트에는 다음과 같이 기재되어 있습니다.이 새로운 클러스터는 최신 고속 인텔 Xeon E3-1220 v5 CPU로 구성되어 있습니다.큐브에서는 제출이 피라미드보다 30배에서 50배 빠르게 실행되므로 집에서 솔루션을 테스트하면 SPOJ에서도 비슷한 실행 시간을 가질 수 있습니다.이 클러스터 메모리 제한은 1536 MB입니다." 피라미드 클러스터가 비활성화되었습니다.

프로그램은 기존의 정답과 비교하거나 각 [2]문제에 고유한 전용 판정 코드를 실행하여 확인합니다.보다 복잡한 문제에 여러 개의 답이 있을 수 있는 경우, 이것은 점점 더 필요하게 됩니다.컴퓨터를 사용함으로써 표시는 일관되고 공정하며 인간의 판단에 비해 실시간으로 효율을 측정할 수 있다.

시스템이 효과적으로 가동되도록 Linux 명령어 RLIMIT_CPU는 설계가 불량한 테스트가 다른 테스트에 영향을 미치지 않도록 합니다.chroot() 시스템콜은 파일시스템 샌드박스를 사용하여 프로그램 실행에 제한을 적용합니다.예를 들어 sleep() 명령어는 사용 가능한 메모리를 줄이기 때문에 허용되지 않습니다.

웹 사이트의 접근성, 자유롭고 객관적인 특성은 학생들이 이전의 성공을 바탕으로 논리적이고 디자인적인 경험을 얻을 수 있도록 합니다.단, 시스템은 실제 어플리케이션에서 더 중요한 코드 품질, 문서, 기타 주관적인 특성을 평가하지 않습니다.

송신 후에, 코드가 실행중 또는 컴파일중에 에러를 발생시켰는지, 기한을 넘겼는지, 오답이 출력되었는지, 또는 올바른지를 유저에게 통지합니다.과제 문제의 답변에는 점수가 함께 표시됩니다(아래 참조).

스코어링

점수는 문제를 [6]나눈 카테고리에 따라 매겨진다.

  • 클래식:1개의 문제의 점수는 80 + m e f p l e a v d \ style \ { } { + \ number \ \ people \ \} } }
  • 과제:점수에는 다음과 같은 두 가지 기준이 있습니다.
    • 모든 도전의 최고 점수: 3점,
    • 챌린지에서 낮은 점수를 받은 경우: (최상위 점수와 비교한 사용자의 점수) 포인트.
  • 부분: 0점
  • 튜토리얼: 0점
  • 수수께끼: 0점

「챌린지」카테고리의 스코어는, 통상, 송신 사이즈(바이트 단위)입니다만, 다를 수 있습니다.예를 들어 상수 π의 올바른 소수 자릿수일 수 있습니다.

주의: SPOJ는 점수 계산에 사용되는 공식을 자주 변경합니다.

프로그래밍 콘테스트

SPOJ는 현지 레벨에서 국제 레벨, 짧은 1시간 문제에서 1년간 리그에 이르기까지 다양한 대회를 위한 플랫폼으로 사용됩니다.참가자는 일반적으로 서로 다른 언어를 구사하기 때문에 현장에서 보다 평등한 플레이를 할 수 있을 뿐만 아니라 주최자의 [2]작업 부하를 줄일 수 있습니다.

비판

온라인 심사원 시스템 사용자는 문서화와 잘 구성된 코드 작성에 대한 인센티브가 거의 없기 때문에 경쟁 [2]이외의 컴퓨팅의 보다 일반적인 응용 프로그램에 대한 준비가 부족할 수 있습니다.

그단스크 공과대학에서[2] 실시된 연구 결과에 따르면 과제 제출 시기에 따른 보너스나 벌점 등 대학 상황에서 주어진 마감일은 같은 코드가 제출되더라도 제대로 짜여지지 않은 학생들에게 가혹하게 작용하는 경향이 있다.이것은 학생들에 대한 동기 부여 효과가 혼합되어 어떤 학생들은 마감일을 지키도록 격려하고 다른 학생들은 의욕을 꺾는다.같은 연구는 온라인 판사 시스템을 사용하는 것이 학생과 직원 간의 의사소통을 감소시키는 것으로 나타났다.그러나, 높은 교육 부하를 가지는 스탭의 경우는, 스탭이 어려운 학생에게 보다 많은 시간을 할애할 수 있게 되어, 채점과 관련된 행정상의 오버헤드와 도움이 필요 없는 학생과의 토론에 소비하는 시간이 없어집니다.

언어들

SPOJ는 사용자가 솔루션을 제출할 수 있는 약 60개의 언어를 지원합니다.여기에는 다음이 포함됩니다.

Ada, Assembler, AWK, Bash, Brainfock, C, C++C99 strict, C#, Clojure, Common Lisp, D, Doc(테스트 없음), Erlang, Fortran, Go, Haskell, Icon, Intercal, Jar, JavaScript페이스를 설정합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Sphere Research Labs Legal Information". Sphere Research Labs. Retrieved 2015-06-21.
  2. ^ a b c d e Kosowski, Adrian; Malafiejski, Michal; Noinski, Tomasz (2008-04-14). Advances in Web Based Learning - ICWL 2007: 6th International Conference, Edinburgh, UK, August 15-17, 2007, Revised Papers. Springer Science & Business Media. p. 344. ISBN 9783540781387.
  3. ^ Kosowski, Adrian (September 3, 2004). "What is SPOJ's _purpose_?". SPOJ. Retrieved September 22, 2014.
  4. ^ "PROBLEMS". SPOJ. Retrieved September 22, 2014.
  5. ^ "Clusters". SPOJ. Retrieved September 24, 2017.
  6. ^ "User Statistics". SPOJ. Retrieved September 22, 2014.

외부 링크