"Взломы" для системы дистанционной подготовки по программированию (проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Ментор Дмитрий Галуза
Учебный семестр Весна 2016
Учебный курс 1-й курс
Максимальное количество студентов, выбравших проект: 5



Что это за проект?

Проект представляет из себя аналог challange/взломов с topcoder/codeforces. Только в данном случае для сайта informatics.mccme.ru

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

Так вот. Мы сделаем возможность "горячего" добавления тестов и перетестирования на этом тесте программ.

Хорошо написанный проект будет внедрен на informatics

Чему вы научитесь?

  • Основам проектирования распределенных систем
  • Созданию простых web интерфейсов на Python
  • Основам серверной разработки

Какие начальные требования?

  • Основы Python
  • Желание разрабатывать под Linux
  • Желательно знание английского языка для чтения документации

Какие будут использоваться технологии?

  • Python web framework (Django/Pyramid)
  • SQL

Темы вводных занятий

  • Знакомство с фреймворком
  • Базовые основы веб разработки
  • Обсуждение архитектуры.

Направления развития

  • При большой нагрузке один сервер не будет успевать перетестировать решения. Поэтому основное направление для развития - поддержка нескольких серверов для запуска тестов.
  • Подробные отчеты о запусках тестов.
  • Красивый интерфейс для добавление тестов.

Критерии оценки

4-5: Получить код решения и тест. Запустить и выдать отчет по запуску.

6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения.

8-10: Удобный и функциональный интерфейс к первым двум пунктам.

Ориентировочное расписание занятий

ПН 18:00 - 21:00

ВТ 18:00 - 21:00

СР недоступен

ЧТ 18:00 - 21:00

ПТ недоступен

СБ недоступен