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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница, с помощью формы Новый_проект)
 
(форматирование)
Строка 23: Строка 23:
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===
Основам проектирования распределенных систем
+
* Основам проектирования распределенных систем
Созданию простых web интерфейсов на Python
+
* Созданию простых web интерфейсов на Python
Основам серверной разработки
+
* Основам серверной разработки
  
 
=== Какие начальные требования? ===
 
=== Какие начальные требования? ===
Основы Python
+
* Основы Python
Желание разрабатывать под Linux
+
* Желание разрабатывать под Linux
Желательно знание английского языка для чтения документации
+
* Желательно знание английского языка для чтения документации
  
 
=== Какие будут использоваться технологии? ===
 
=== Какие будут использоваться технологии? ===
Python web framework (Django/Pyramid)
+
* Python web framework (Django/Pyramid)
SQL
+
* SQL
  
 
=== Темы вводных занятий ===
 
=== Темы вводных занятий ===
Строка 45: Строка 45:
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
4-5: Получить код решения и тест. Запустить и выдать отчет по запуску.
+
  4-5: Получить код решения и тест. Запустить и выдать отчет по запуску.
6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения.
+
  6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения.
8-10: Удобный и функциональный интерфейс к первым двум пунктам.
+
  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
ПТ недоступен
+
  ПТ недоступен
СБ недоступен
+
  СБ недоступен

Версия 12:19, 20 января 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
 ПТ недоступен
 СБ недоступен