Содержание
Летняя практика 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.
Результат:
- Приложение командной строки для анализа документов на ошибки.
- Веб-сервис, реализующий интерфейс пользователя к приложению, функции авторизации и хранения критериев.