===== Направления для НИР (магистры) ===== ==== [Блеес] Система автоматической проверки наиболее частых формальных ошибок в научных текстах ==== Цель: разработать настраиваемый статический анализатор для формальных текстов - научно-технических статей, отчетов и дипломов. Анализ происходит по набору наиболее частых ошибок, которые при этом являются машинно-проверяемыми, например: - личные предложения, формы глаголов и местоимения; - отсутствие ссылок или битые ссылки на элементы списка литературы/рисунки/таблицы; - отсутствие упоминания ключевых слов в тексте статьи; - повторы слов в пределах двух предложений; - "телеграфность" - повторение начальных слов абзацев ("Было принято решение"); - стоп-слова: - жаргонизмы (использовать список): скачать, пост, либа, тул; - там, тут, здесь. Задачи: - изучение как ближних (например spellcheck), так и дальних аналогов (lint'ы и статические анализаторы для языков программирования); - формулировка сценариев использования и создание макета UI; - разработка модели данных для правил; - парсинг docx/ppt/pdf; - полнотекстовый поиск; - хранение и эффективная интерпретация правил; - создание веб-интерфейса для инструмента; - аннотирование проверяемого документа (например добавление комментариев прямо в doc(x)); Требования: * начальный опыт написания формальных текстов и примерное понимание, почему нужно выполнять большую часть правил, описанных в цели работы; * опыт обработки машино-читаемых документов (HTML, XML, JSON, CSV ....); * начальные знания Python; * начальные знания веб-технологий. Результат (НИР): исследование существующих алгоритмов анализа структуры текстов, сценарии командной строки для автоматизации проверки. ==== [Чирухин] Автоматизация создания плагинов Vagrant ==== Цель: автоматизировать создание и публикацию плагинов Vagrant. Задачи: * изучение процедуры разработки и публикации плагинов на примере типовых задач: * создание своей команды vagrant, * вызов команд shell, * получение доступа к структурам данных vagrant; * автоматизация создания плагинов с помощью сценариев командной строки, шаблонов; * создание плагинов-примеров; * создание руководства по разработке и публикации; * публикация руководства на stepik.org в формате мини-курса. Требования: * Ruby. * Опыт использования Vagrant. Результат (НИР): * инструменты автоматизации разработки плагина; * плагины-примеры; * руководство по процессу. ===== Темы ВКР бакалавров ===== ==== [Андросов] Автоматическая система проверки задач для MOOC "Мобильная разработка для Android на Kotlin" ==== Цель: создание набора автоматически проверяемых лабораторных по мобильной разработке на Kotlin, интегрированных в stepik.org. Задачи: * обзор онлайн-курсов для изучения Java+Android, Kotlin, Kotlin+Android и сравнение предлагаемых задач; * изучение интерфейса командной строки для сборки, запуска и тестирования мобильных приложений в эмуляторе Android, автоматизация типичных сценариев использования; * подготовка образа виртуальной машины для задач курса, содержащего необходимые инструменты и среду; * разработка неинтерактивных задач: * описание условий задач, * создание эталонных решений (правильных и содержащих различные ошибки), * создание скриптов проверки задач (на Bash и Espresso) * интеграция наработок на Stepik.org; * исследование производительности полученного решения. Требования: * опыт Android разработки и интерес к данной предметной области; * начальное представление о работе виртуальных машин; * начальные знания Bash. Результат: набор автоматически проверемых задач c описаниями, подключенных к курсу на Stepik.org. ==== [Хафизов] Автоматизация проверки работ в очных курсах по мобильной разработке ==== Идея: на кафедре проходит много мероприятий, на которых проиходит одновременная разработка Н мобильных приложений. Для таких мероприятий необходим инструмент, позволяющий проверить в динамике: - какие из приложений собираются, - какие из приложений соответствуют требованиям, - объем apk файлов, - успешность установки на устройство, - .... Цель: разработать инструмент автоматизации сборки и тестирования мобильных приложений для набора репозиториев. Задачи: - запуск сборки и тестирования в jenkins - генерация итоговых отчетов c результатами сборки и/или тестирования по набору репозиториев - создание apk и их публикация Требования: - начальные знания Andoid-разработки, - начальные знания Bash, - минимальный опыт в Jenkins, Результат: инструмент, позволяющий автоматически оценивать качество Н репозиториев с исходниками мобильных приложений путем их сборки/тестирования/установки; инструкции по развертыванию и настройке инструмента. ==== [Козловских] Инструмент разработки, моделирования и модерирования outdoor-квестов ==== Цель: разработать веб-сервис создания сценариев для outdoor-квестов. Задачи: * Исследовать примерные аналоги - приложения для составления маршрутов на карте, визуализаторы gps-треков и т.д. * Разработать веб-интерфейс, который позволит * осуществлять CRUD для квестов; * настраивать генератор квестов и создавать квесты с его помощью; * визуализировать квесты на карте, * проводить анализ квестов и их сравнеие: * примерная длительность прохождения, * протяженность, * потенциальная сложность; * моделировать прохождение квеста по следующим характеристикам (их может быть больше - ниже примеры): * оценивать потенциальный граф перемещений (насколько сильно человек может плутать в поисках нужных точек), * распределение времени прохождения квеста. * предоставлять интерфейс модерировния квестов; * предоставлять интерфейс для ручного создания/редактирования квестов; * выбирать источники данных для подбора точек. * Подключиться к интерфейсам генератора, передавать ему правила генерации и получать созданные квесты. Требования: * Python + TurboGears. * Bootstrap * Leaflet.js Результат: веб-приложение, позволяющее не знакомому с технической частью пользователю быстро создавать свои квесты либо модерировать и править квесты, созданные генератором.