Летняя практика 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-интерфейсы.

https://bitbucket.org/mark_zaslavskiy/nosql_inroduction/overview

http://se.moevm.info/doku.php/staff:courses:no_sql_introduction

Сервис анализа пулл-реквестов 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.

Результат:

Приложение командной строки для анализа документов на ошибки.

Веб-сервис, реализующий интерфейс пользователя к приложению, функции авторизации и хранения критериев.