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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(форматирование)
Строка 23: Строка 23:
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===
 +
 
* Основам проектирования распределенных систем
 
* Основам проектирования распределенных систем
 
* Созданию простых web интерфейсов на Python
 
* Созданию простых web интерфейсов на Python
Строка 28: Строка 29:
  
 
=== Какие начальные требования? ===
 
=== Какие начальные требования? ===
 +
 
* Основы Python
 
* Основы Python
 
* Желание разрабатывать под Linux
 
* Желание разрабатывать под Linux
Строка 37: Строка 39:
  
 
=== Темы вводных занятий ===
 
=== Темы вводных занятий ===
Знакомство с фреймворком, базовые основы веб разработки, обсуждение архитектуры.
+
* Знакомство с фреймворком  
 +
 
 +
* Базовые основы веб разработки
 +
 
 +
* Обсуждение архитектуры.
  
 
=== Направления развития ===
 
=== Направления развития ===
При большой нагрузке один сервер не будет успевать перетестировать решения. Поэтому основное направление для развития - поддержка нескольких серверов для запуска тестов.
+
* При большой нагрузке один сервер не будет успевать перетестировать решения. Поэтому основное направление для развития - поддержка нескольких серверов для запуска тестов.
Подробные отчеты о запусках тестов.
+
 
Красивый интерфейс для добавление тестов.
+
* Подробные отчеты о запусках тестов.
 +
 
 +
* Красивый интерфейс для добавление тестов.
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
  4-5: Получить код решения и тест. Запустить и выдать отчет по запуску.
+
4-5: Получить код решения и тест. Запустить и выдать отчет по запуску.
  6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения.
+
 
  8-10: Удобный и функциональный интерфейс к первым двум пунктам.
+
6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения.
 +
 
 +
8-10: Удобный и функциональный интерфейс к первым двум пунктам.
  
 
=== Ориентировочное расписание занятий ===
 
=== Ориентировочное расписание занятий ===
  ПН 18:00 - 21:00
+
ПН 18:00 - 21:00
  ВТ 18:00 - 21:00
+
 
  СР недоступен
+
ВТ 18:00 - 21:00
  ЧТ 18:00 - 21:00
+
 
  ПТ недоступен
+
СР недоступен
  СБ недоступен
+
 
 +
ЧТ 18:00 - 21:00
 +
 
 +
ПТ недоступен
 +
 
 +
СБ недоступен

Версия 11:05, 24 января 2016

Ментор Дмитрий Галуза
Учебный семестр Весна 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

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

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