Что за рыба — ACMPF?

от автора

Приветствую вас, Хабралюди.

Мы — команда ACMPF Depot (ну как команда, 2 человека) пришли, чтобы рассказать вам о нашей разработке — принципиально новом сервисе олимпиадного программирования.

Идея

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

Лично мне сильно захотелось работы с вебом, поэтому было решено, что будем делать сервис, который можно было бы как-то использовать по завершению работы.

После мозгового штурма, мы поняли, что неспособны сгенерировать нормальную идею прямо сейчас, поэтому было предложено вернуться к решению задач с одного известного сайта по программированию, что уже порядком наскучило.
Разумеется, в этот момент нас обоих осенило. Почему бы не сделать подобный сервис, но с блекджеком и плюшками?

Осознание

Наша радость длилась недолго. Если мы хотим преподнести данный проект в массы, нам нужно сделать что-то уникальное, что бы отличало наш проект от других (помимо того, что все остальные имеют фатальный недостаток…).

Две идеи пришли довольно быстро:

  • Дублировать все на двух языках русском и английском (чтобы за одно подтянуть знания технического английского)
  • Добавить возможность сдавать задачи на большем количестве языков программирования, чем в других популярных сервисах

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

Уже после начала разработки появилась идея с "уровнями сложности" и подсказками.

Уровень сложности

Часто бывает, что новичку довольно сложно решить какую-то задачу без подсказки более опытного программиста. Это не так уж и плохо, если человек действительно слушает и запоминает все советы и приемы. Но что, если случилось так, что у него нет друга-программиста? Либо они оба новички в программировании?

Конечно, можно попробовать обратиться на форумы, но реакция на такие посты там не очень хорошая (что вполне оправданно). В худшем случае вас пошлют на все четыре стороны, в лучшем вам просто напишут готовое решение, которое чаще всего не объясняется. Это не поможет "чайнику" в понимании задачи.

Таким образом мы пришли к концепции уровней сложности и подсказкам. Суть ее в том, что при регистрации пользователь выбирает уровень своих знаний в области программирования. В соответствии с его выбором, на сайте происходят следующие изменения.

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

В любой момент времени пользователь может повысить уровень сложности, но он уже не сможет его понизить.

Вы можете спросить: "Зачем запрещать понижать уровень сложности, если человек может держать два аккаунта, или увидеть подсказки в интернете?". Ему незачем это делать. Наш сервис рассчитан на самоподготовку, человек проверяет себя, а не показывает другому, насколько он крут. К тому же, если захочется решить задачу нечестно, то проще найти ее решение в интернете. Зачем заморачиваться с подсказками?

Источники задач

Тут рассказывать особенно нечего. На текущий момент мы берем задачи из открытых источников, переводим их на английский язык и выкладываем на сайт с указанием авторства.

Гораздо сложнее дело обстоит с тестами. Если мы находим их — замечательно. Если нет, то приходится придумывать их самим, а это не самая тривиальная задача, поскольку требует самой тщательной проработки.

Разработка

Мы сейчас активно кодим, и проект уже вошел в стадию преn-альфы. Пока доступно очень малое количество языков программирования, но проект разрабатывается так, чтобы было легко добавить новые. Сейчас сервис реализован на английском языке, русский уже в процессе.

За знакомство

Не хотелось нагружать этот пост технической информацией, хотелось познакомиться с вами, представиться. В следующем мы напишем о "внутренностях проекта" — на чем он реализован и как работает.

Разумеется, ждем от вас комментариев, вопросов и критики, желательно конструктивной.
До встречи!

ссылка на оригинал статьи http://habrahabr.ru/company/acmpf/blog/206644/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *