SPOJ - SPOJ

SPOJ (Судья Sphere Online) онлайн судья система с более чем 315 000 зарегистрированных пользователей и более 20 000 проблем. Задания готовятся сообществом специалистов по постановке задач или взяты из предыдущих соревнований по программированию. SPOJ позволяет опытным пользователям организовывать конкурсы по своим правилам, а также включает форум, где программисты могут обсудить, как решить конкретную проблему.

Отдельно от английский язык, SPOJ также предлагает свои материалы на Польский, португальский и вьетнамский языков. Решение проблем может быть представлено в более чем 40 программах. языки, в том числе эзотерические, через Sphere Engine. Им управляет польская компания Sphere Research Labs.[1]

Веб-сайт считается как автоматизированным средством оценки программ, представленных пользователями, так и платформой онлайн-обучения, которая помогает людям понимать и решать вычислительные задачи.[2] Это также позволяет студентам сравнивать парадигмы и подходы с широким спектром языков.

История

Эта система изначально была создана для применения онлайн-судьи в обучении студентов. Он в основном ориентирован на студентов и преподавателей университетов и членов более широкого сообщества программистов, заинтересованных в алгоритмах и соревнованиях по программированию.

Цели

Он нацелен на разных пользователей для разных целей, таких как:[3]

  • Для молодых людей и начинающих программистов для развития понимания алгоритмов.
  • Студентам вузов предоставляется возможность делать домашние задания честно, основательно и без обмана.
  • Профессионалы соревнований ACM могут решать задачи, не ограничиваясь ограниченным количеством языков программирования или неудобным пользовательским интерфейсом.
  • Энтузиасты функционального или объектно-ориентированного программирования могут решать конкурсные задачи на своем любимом языке.
  • Любой человек, желающий поделиться интересной задачей с остальной частью сообщества SPOJ, может сделать это почти автоматически (достаточно одного письма администраторам с запросом привилегий постановщика задач),
  • Любой человек, желающий организовать соревнование по программированию практически с любыми правилами, которые он может выбрать, может сделать это в любое время по своему выбору без помощи системных администраторов.

Категории проблем

Архивные задачи в SPOJ разделены на 5 категорий:[4]

  • Классический: Это задачи с бинарной оценкой. Либо принят, либо неверный ответ[нужна цитата ]
  • Испытание: Это позволяет пользователям предлагать худшие или лучшие решения. Нет однозначных ответов на конкретную проблему
  • Частично: Они похожи на сложные задачи, но с образовательной целью.
  • Руководство: Как и классические задачи, но проще, они предназначены для образовательных целей - например, с использованием широко известного алгоритма.
  • Загадка: Проблемы, содержащие головоломки

Могут быть ограничения на отправку, чтобы усложнить задачу. Это включает доступность языков (например, только эзотерические языки) и время вычислений.

Судить

Кластеры

Работы оцениваются по одному кластер:[5]

  • Куб (Intel Xeon E3-1200 v5): На сайте указано, что «этот новый кластер состоит из современных и быстрых процессоров Intel Xeon E3-1220 v5. На Cube ваши представления будут выполняться от 30 до 50 раз быстрее, чем на Pyramid, поэтому вы можете ожидать, что если вы протестируете свое решение дома, оно будет иметь такое же время выполнения на SPOJ. В этом кластере предел памяти для представлений составляет 1536 МБ ". Кластер пирамиды был деактивирован.

Программы проверяются либо путем сравнения с известным правильным ответом, либо путем запуска специального кода оценки, уникального для каждой проблемы.[2] Это становится все более необходимым, когда в более сложных проблемах может быть несколько ответов. При использовании компьютера оценка является последовательной, справедливой и позволяет измерять эффективность в реальном времени по сравнению с оценкой человека.

Чтобы обеспечить эффективную работу системы, команды Linux RLIMIT_CPU не позволяют плохо спроектированным тестам влиять на другие. Системный вызов chroot () накладывает ограничения на запуск программ с помощью песочниц файловой системы: например, команда sleep () не разрешена, так как она уменьшит доступную память.

Доступный, бесплатный и объективный характер веб-сайта позволяет студентам получить логический и дизайнерский опыт на основе предыдущих успехов. Однако система не оценивает качество кода, документацию или другие более субъективные характеристики, которые могут быть более важными для реальных приложений.

После отправки пользователю сообщается, вызвал ли код ошибку при выполнении или компиляции; превышен срок; был выдан неправильный ответ или был правильным. Ответы на контрольные задачи сопровождаются оценкой (см. Ниже).

Подсчет очков

Баллы выставляются в зависимости от категории, в которую делятся задачи.[6]

  • Классический: Оценка за одну задачу точки.
  • Испытание: Для оценки используются два следующих критерия:
    • за наивысший балл в любом испытании: 3 балла,
    • для любой более низкой оценки в задаче: (оценка пользователя относительно наивысшей оценки) баллов.
  • Частично: 0 баллов
  • Руководство: 0 баллов
  • Загадка: 0 баллов

Оценки для категории «проблема» обычно представляют собой размер представления в байтах, хотя могут отличаться. Например, это может быть количество правильных десятичных знаков константы π.

Примечание: SPOJ часто меняют формулы, используемые для расчета оценок.

Соревнования по программированию

SPOJ используется в качестве платформы для широкого спектра соревнований, от местного до международного уровня и от коротких 1-часовых задач до лиг продолжительностью в год. Обычно участники говорят на разных языках, поэтому сайт обеспечивает более равные условия игры, а также снижает нагрузку на организаторов.[2]

Критика

У пользователей онлайновых систем судейства мало стимулов к документации и созданию хорошо структурированного кода, что, возможно, делает их менее подготовленными к более типичным приложениям вычислений вне соревнований.[2]

Результаты исследования, проведенного в Гданьский технологический университет[2] Предполагают, что крайние сроки, установленные в университетских ситуациях, включая бонусные и штрафные баллы в зависимости от того, когда сдано задание, имеют тенденцию быть суровыми для студентов, которые не являются хорошо организованными, даже если представлен тот же код. Это оказывает смешанное мотивационное воздействие на студентов, побуждая одних соблюдать дедлайны, а других демотивирует. То же исследование показывает, что использование онлайн-систем судейства приводит к сокращению общения между студентами и персоналом. Однако в случае сотрудников с высокой учебной нагрузкой это сокращение может позволить персоналу уделять больше времени студентам, испытывающим трудности, устраняя административные накладные расходы, связанные с выставлением оценок и временем, затрачиваемым на обсуждения со студентами, которые не нуждаются в помощи.

Языки

SPOJ поддерживает около 60 языков, на которых пользователи могут представлять свои решения. Они есть:

Ада, Ассемблер, AWK, Баш, Brainfuck, C, C ++ и C99 строгий, C #, Clojure, Common Lisp, D, Док (без тестирования), Erlang, Фортран, F #, Идти, Haskell, Значок, Интеркальный, Банка, Ява, JavaScript, Лисп, Lua, Nemerle, Отлично, Node.js, OCaml, Паскаль, Pdf, Perl, PHP, Щука, PostScript, Пролог, Python, Рубин, Ржавчина, Scala, Схема, sed, Болтовня, Tcl, Tecs, Text и Пробел.

Смотрите также

Рекомендации

  1. ^ "Правовая информация Лаборатории исследования сферы". Лаборатории исследования сферы. Получено 2015-06-21.
  2. ^ а б c d е Косовски, Адриан; Малафейски, Михал; Ноински, Томаш (14 апреля 2008 г.). Достижения в веб-обучении - ICWL 2007: 6-я Международная конференция, Эдинбург, Великобритания, 15-17 августа 2007 г., исправленные статьи. Springer Science & Business Media. п. 344. ISBN  9783540781387.
  3. ^ Косовски, Адриан (3 сентября 2004 г.). "Какова _цель_ SPOJ?". SPOJ. Получено 22 сентября, 2014.
  4. ^ "ПРОБЛЕМЫ". SPOJ. Получено 22 сентября, 2014.
  5. ^ «Кластеры». SPOJ. Получено 24 сентября, 2017.
  6. ^ «Статистика пользователя». SPOJ. Получено 22 сентября, 2014.

внешняя ссылка