Направления для НИР (магистры)

[Блеес] Система автоматической проверки наиболее частых формальных ошибок в научных текстах

Цель: разработать настраиваемый статический анализатор для формальных текстов - научно-технических статей, отчетов и дипломов. Анализ происходит по набору наиболее частых ошибок, которые при этом являются машинно-проверяемыми, например:

личные предложения, формы глаголов и местоимения;

отсутствие ссылок или битые ссылки на элементы списка литературы/рисунки/таблицы;

отсутствие упоминания ключевых слов в тексте статьи;

повторы слов в пределах двух предложений;

«телеграфность» - повторение начальных слов абзацев («Было принято решение»);

стоп-слова:

жаргонизмы (использовать список): скачать, пост, либа, тул;

там, тут, здесь.

Задачи:

изучение как ближних (например 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

Результат: веб-приложение, позволяющее не знакомому с технической частью пользователю быстро создавать свои квесты либо модерировать и править квесты, созданные генератором.