====== Летняя практика 2017 ====== ===== Geo2Tag ===== Цель: расширение возможностей использования для LBS-платформы Geo2Tag. Задачи: - Завершение реализации REST интерфейса доступа к карте. - Автоматизация тестирования REST интерфейса доступа к карте. - Любые задачи из backlog. Ожидаемый результат: - Набор функций и тестов для платформы [[http://geo2tag.org/|Geo2Tag]]. Навыки и знания: - python 2 - html, css, js - MongoDB ==== Stepik ==== Цель: автоматизация проверки задач преподавателя практики по курсу "Программирование" на образовательной платформе Stepik. Задачи: === Статистика === Консольное приложение на языке python, в котором на основе .csv файла с результатами прохождения модуля / курса студентов строится статистика. === Предоставление обратной связи студентам === Консольное приложение на языке python, в котором на основе решения студента, функции-генератора тестовых данных, функции решения и проверки получаем место ошибки в коде студента. === Получение информации о коде студента === Консольное приложение на языке python, в котором происходит проверка кода студента на выполнение некоторых правил задачи: - наличие определенных функций/методов, инструментов языка. - невмешательство в изначальный код, который был дан преподавателем. === Проверка на жульничество === Консольное приложение на языке python, в которое позволяет получить сводную таблицу о тех, кто жульничает. ==== Введение в ПИ ==== Цель: рефакторинг и завершение проектов студентов, которое участвовали в курсе "Введение в ПИ" осенью 16го года. [[http://se.moevm.info/doku.php/start:mse:projects|Список проектов]] ===== Автоматизация проверки лабораторных для курса "Введение в нереляционные БД" ===== Цель: разработка системы автоматической проверки лабораторных работ для курса "Введение в нереляционные БД". Задачи: - Изучение простых операций в 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. Результат: - Приложение командной строки для анализа документов на ошибки. - Веб-сервис, реализующий интерфейс пользователя к приложению, функции авторизации и хранения критериев.