"Взломы" для системы дистанционной подготовки по программированию (проект) — различия между версиями
Galuza (обсуждение | вклад) (форматирование) |
|||
(не показаны 2 промежуточные версии 2 участников) | |||
Строка 23: | Строка 23: | ||
=== Чему вы научитесь? === | === Чему вы научитесь? === | ||
+ | |||
* Основам проектирования распределенных систем | * Основам проектирования распределенных систем | ||
* Созданию простых web интерфейсов на Python | * Созданию простых web интерфейсов на Python | ||
Строка 28: | Строка 29: | ||
=== Какие начальные требования? === | === Какие начальные требования? === | ||
+ | |||
* Основы Python | * Основы Python | ||
* Желание разрабатывать под Linux | * Желание разрабатывать под Linux | ||
Строка 37: | Строка 39: | ||
=== Темы вводных занятий === | === Темы вводных занятий === | ||
− | Знакомство с фреймворком | + | * Знакомство с фреймворком |
+ | |||
+ | * Базовые основы веб разработки | ||
+ | |||
+ | * Обсуждение архитектуры. | ||
=== Направления развития === | === Направления развития === | ||
− | При большой нагрузке один сервер не будет успевать перетестировать решения. Поэтому основное направление для развития - поддержка нескольких серверов для запуска тестов. | + | * При большой нагрузке один сервер не будет успевать перетестировать решения. Поэтому основное направление для развития - поддержка нескольких серверов для запуска тестов. |
− | Подробные отчеты о запусках тестов. | + | |
− | Красивый интерфейс для добавление тестов. | + | * Подробные отчеты о запусках тестов. |
+ | |||
+ | * Красивый интерфейс для добавление тестов. | ||
=== Критерии оценки === | === Критерии оценки === | ||
− | + | 4-5: Получить код решения и тест. Запустить и выдать отчет по запуску. | |
− | + | ||
− | + | 6-7: Реализовать challenge. Проверять на новом тесте успешно пройденные ранее решения. | |
+ | |||
+ | 8-10: Удобный и функциональный интерфейс к первым двум пунктам. | ||
=== Ориентировочное расписание занятий === | === Ориентировочное расписание занятий === | ||
− | + | ПН 18:00 - 21:00 | |
− | + | ||
− | + | ВТ 18:00 - 21:00 | |
− | + | ||
− | + | СР недоступен | |
− | + | ||
+ | ЧТ 18:00 - 21:00 | ||
+ | |||
+ | ПТ недоступен | ||
+ | |||
+ | СБ недоступен |
Текущая версия на 16:25, 28 июля 2017
Ментор | Дмитрий Галуза |
Учебный семестр | Весна 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
ПТ недоступен
СБ недоступен