Летняя практика 2017
Geo2Tag
Цель: расширение возможностей использования для LBS-платформы Geo2Tag.
Задачи:
Завершение реализации REST интерфейса доступа к карте.
Автоматизация тестирования REST интерфейса доступа к карте.
Любые задачи из backlog.
Ожидаемый результат:
Набор функций и тестов для платформы
Geo2Tag.
Навыки и знания:
python 2
html, css, js
MongoDB
Stepik
Цель: автоматизация проверки задач преподавателя практики по курсу «Программирование» на образовательной платформе Stepik.
Задачи:
Статистика
Консольное приложение на языке python, в котором на основе .csv файла с результатами прохождения модуля / курса студентов строится статистика.
Предоставление обратной связи студентам
Консольное приложение на языке python, в котором на основе решения студента, функции-генератора тестовых данных, функции решения и проверки получаем место ошибки в коде студента.
Получение информации о коде студента
Консольное приложение на языке python, в котором происходит проверка кода студента на выполнение некоторых правил задачи:
наличие определенных функций/методов, инструментов языка.
невмешательство в изначальный код, который был дан преподавателем.
Проверка на жульничество
Консольное приложение на языке python, в которое позволяет получить сводную таблицу о тех, кто жульничает.
Введение в ПИ
Цель: рефакторинг и завершение проектов студентов, которое участвовали в курсе «Введение в ПИ» осенью 16го года.
Список проектов
Автоматизация проверки лабораторных для курса "Введение в нереляционные БД"
Цель: разработка системы автоматической проверки лабораторных работ для курса «Введение в нереляционные БД».
Задачи:
Изучение простых операций в MongoDb.
Разработка сценариев автоматизации для проверки лабораторных, связанных с программированием PyMongo.
Разработка эталонных и ошибочных решений лабораторных работ.
Интеграция наработок в stepik.org.
Требования:
Python, Linux
MongoDB на самом базовом уровне
Результат: набор автоматически проверяемых заданий для студентов, изучающих работу в MongoDB через Python-интерфейсы.
Сервис анализа пулл-реквестов Pullet
Цель: доработка и внедрение сервиса (https://github.com/moevm/rePullet) на кафедре.
Задачи:
Интеграция с веб-сервером Apache;
Повышение удобства использования веб-интерфейса.
Интеграция сервиса с Github
API.
Автоматизация установки сервиса и настройки программной среды.
Требования:
Python, Flask, JS
Результат: веб-сервис, установленный на кафедральном сервере.
Веб-интерфейс для инструмента версионируемой загрузки курсов на Stepik
Цель: создание веб-интерфейса к инструменту командной строки https://github.com/OSLL/stepic_uploader , позволяющего автоматизировать создание уроков и курсов в рамках платформы Stepik. Реализуемые сценарии использования:
Создание урока-контрольной по существующему набору вопросов с выбором ответа.
Загрузка и выгрузка курса в машиночитаемом виде в систему контроля версий.
Задачи:
Создание пользовательского интерфейса.
Подключение авторизации с использованием данных Github и Stepik по протоколу OAuth2.
Автоматизация установки сервиса и настройки программной среды.
Требования:
Python, Flask, JS
Результат: веб-сервис загрузки и выгрузки для курсов на stepik.org .
Система проверки студенческих решений для онлайн-курсов "Основы программирования для Linux / Программирование в ядре Linux"
Цель: разработка системы, осуществляющей виртуализированную проверку студенческих решений.
Задачи:
Создание и отладка сценариев проверки отдельных заданий.
Маршрутизация HTTP-запросов к системе и горизонтальное масштабирование экземпляров системы.
Архитектурное разделение проверяющей системы и сценариев проверки отдельных заданий.
Разработка заданий для изучения инструментов отладки и профилирования (gdb, valgrind, callgrind).
Требования:
Основные технологии: Ruby, C.
Дополнительно: Vagrant, Docker, Libvirt, проргаммирование ядра Linux, Bash.
Результат: изменения, заинтегрированные в основную ветку репозитория проекта, и развернутые в курсах на Stepik.
Веб-сервис сбора и анализа статистики курса "Основы программирования в Linux"
Цель: доработка и реализация новых функций веб-сервиса сбора статистики, использующем данные журнала проверяющей системы курса «Основы программирования в Linux».
Задачи:
Изучение принципов статистического анализа с помощью Python и MongoDb.
Полнотекстовый поиск с помощью интерфейсов MongoDb.
Сбор и вычисление статистики курса (самые сложные задачи, скорость решения отдельных задач, наиболее частые ошибки).
Оперативная загрузка данных журнала проверяющей системы курса «Основы программирования в Linux».
Реализация графического представления статистических показателей.
Создание и выгрузка отчетов.
Требования:
Python, Django
JS библиотеки для построения графиков и диаграмм.
Результат: веб-сервис, который позволяет вести наблюдение за статистическими показателями прохождения курса и отслеживать появление определенных событий в журнале работы проверяющей системы.
Система автоматической проверки наиболее частых ошибок в формальных текстах
Цель: создать веб-сервис анализа формальных текстов (научные статьи, курсовые работы, пояснительные записки, отчеты) на соответствие критериям, определяемых пользователями сервиса. Критерии представляют собой типичные алгоритмически-верифицируемые ошибки, возникающие при подготовке документов. Примеры критериев:
Личные предложения и личные формы глаголов.
Отсутствие ссылок или неверные ссылки на элементы списка литературы, изображения, таблицы.
Повторы слов в пределах двух предложений.
Стоп-слова:
жаргонизмы: скачать, пост, либа, тул;
личные местоимения.
Задачи:
Разбор и извлечение текста из файлов формата doc(x), ppt(x), odt, pdf.
Авторизация пользователей с помощью протокола OAuth2.
Хранение пользовательских критериев в стандартизированном виде.
Асинхронная проверка выполнения больших наборов критериев.
Создание веб-интерфейса.
Требования:
Python, MongoDb
Представление о формате XML.
Результат:
Приложение командной строки для анализа документов на ошибки.
Веб-сервис, реализующий интерфейс пользователя к приложению, функции авторизации и хранения критериев.