Содержание
Список проектов 2020
1. Задачи на одно- и двумерную машину Тьюринга
Исходная идея была воплощена в мобильном приложении: https://github.com/OSLL/adfmp20-turing
Задача: создать веб-приложение, которое будет интерпретатором одно- и двумерной машины Тьюринга, а также движком для решения простейших задач на ней. Функциональность:
- создание, редактирование, отображение, импорт и экспорт программ для Машин,
- визуальная симуляция работы Машин,
- вполнение программы по шагам,
- примитивные инструменты отладки,
- общие интерфейсы для создания задач,
- задачи-примеры из https://github.com/OSLL/adfmp20-turing и курса Информатика,
- сохранение результатов решения задач в БД,
- поддержка пользователей,
- поддержка протокола LTI*.
Технологии: Python, Flask, MongoDB.
deliverables: веб-приложение, позволяющее решать задачи на машинах Тьюринга, работающее на Ubuntu 18.04.
2. Плагин для Moodle - отображение общего прогресса по курсу
Задача: создать плагин для Moodle, который будет отображать прогресс пользователя по текущему курсу. Функциональность:
- отображение прогресс-бара,
- отображение текущего процента прохождения,
- отображения цветом пройденных модулей,
- отображение «расстояния до сертификатов»,
- публикация в каталоге плагинов*.
Технологии: PHP, MySQL, Moodle.
deliverables: работоспособный плагин, который можно установить в Moodle версии 3.8.2.
3. Плагин для Moodle - лайки и дизлайки
Задача: создать плагин для Moodle, который позволит ставить активностям лайки и дизлайки. Функциональность:
- отображение счетчиков,
- отображение кнопок,
- хранение данных в БД,
- не возможность поставить лайк / дизлайк дважды и поставить обе оценки сразу,
- отключение кнопок в настройках курса,
- отключение кнопок в настройках активностей,
- публикация в каталоге плагинов*.
Технологии: PHP, MySQL, Moodle.
deliverables: работоспособный плагин, который можно установить в Moodle версии 3.8.2.
[R&D] 4. Автоматическая проверка дипломных презентаций
Исследовательская составляющая: применение простых методов Natural Language Processing для анализа связности документа (насколько в нем раскрыты цели и задачи).
Задумка: дипломники нашей кафедры перед защитой проходят проверку презентаций по набору правил http://se.moevm.info/doku.php/diplomants:start:slides_checklist_etu . Большая часть иp этого набора может быть проверена автоматически, что сэкономит массу времени как самим учащимся, так и преподавателям.
Задача: создать веб-приложение, которое позволит проверять презентации (форматы ppt/pptx/odp/odpx) по наборам критериев (http://se.moevm.info/doku.php/diplomants:start:slides_checklist_etu), а также иметь потенциал для расширения этого списка / кастомизации шкалы оценивания. Функциональность:
- форма отправки презентации на проверку
- загрузка файла
- индикатор загрузки и индикатор процесса проверки
- страница результатов проверки
- список проведенных проверок, результат (пройдена / не пройдена), указание на проблемные слайды,
- уникальный идентификатор страницы проведенной проверки,
- проверка соблюдения простых (→ их можно проверить с помощью поиска подстрок / подсчета объектов) критериев:
- Количество основных слайдов
- Все слайды, кроме титульного должны иметь номера в правом нижнем углу.
- Заголовки слайдов занимают не более двух строк.
- На одном из слайдов в начале презентации описывается актуальность работы.
- Есть слайд «Цель и задачи» (наличие формулировок Цели и Задач)
- Есть слайд “Апробация работы”
- Есть слайд “Заключение« (сам факт наличия слайда)
- проверка «сложных критериев» (потребуется проделать стемминг всех слов в презентации чтобы выполнить поиск):
- На каждую задачу (и достигнутый по ней результат) есть отдельный слайд или слайды, которые его демонстрируют (формулировки задач пересекаются с заголовками слайдов).
- Есть слайд “Заключение”, в котором
- кратко приводятся основные результаты решения каждой задачи со слайда «Цель и задачи», (формулировки задач пересекаются с результатами в Заключении, про каждую задачу что-то написано)
- приведены направления дальнейшей разработки или улучшения программы. (есть в каком-то виде фраза про дальнейшие …)
- сохранение результатов проверки в БД,
- поддержка пользователей-администраторов,
- поддержка протокола LTI*,
- настройка шкалы проверки и сохранение шкал - выбор критериев для проверки *,
Технологии: Python, Flask, MongoDB.
deliverables: веб-приложение, работающее на Ubuntu 18.04.
[R&D] 5. Инструмент поиска повторов на аудиозаписях
Исследовательская составляющая: применение простых методов обработки аудио.
Задумка: для одной практической задачи необходимо работать с аудиозаписями докладов (например защиты курсовой), проведенных вживую. Однако, достоверно известно, что некоторые аудиозаписи сфабрикованы и содержат повторы .
Задача: создать приложение командной строки, которое будет принимать на вход аудиофайлы (mp3), со следующей функциональностью:
- фильтрация шумов (по аудиообразцу шума), оценка их уровня
- сохранение отфильтрованной версии входных файлов
- вычисление повторяющегося фрагмента в рамках одного mp3 файла,
- вычисление повторяющегося фрагмента в рамках нескольких mp3 файлов,
- Docker-контейнер для работы приложения
Технологии:
- Python
- (может и не пригодится) https://github.com/unmade/audiomatch
deliverables: приложение для командной строки, работающее на Ubuntu 18.04.
[R&D] 6. Инструмент анализа голосов на аудиозаписи
Исследовательская составляющая: применение методов обработки аудио.
Задача: создать приложение командной строки, которое будет принимать на вход аудиофайлы (mp3), со следующей функциональностью:
- идентификация диктора по набору контрольных образцов,
- идентификация наличия нескольких дикторов на аудио,
- вычисление и вывод фрагментов аудиозаписи для каждого из дикторов в файлы
- распознавание речи для каждого диктора (с указанием меток времени) с выводом в файл
- Docker-контейнер для работы приложения
Технологии:
- Python
deliverables: приложение для командной строки, работающее на Ubuntu 18.04.
7. Инструмент поиска плагиата в исходном коде
Задача: создать веб-приложение для поиска плагиата в исходном коде, со следующей функциональностью:
- загрузка базы исходных кодов для поиска плагиата
- загрузка проверяемого исходника по ссылке и через форму
- вывод входного исходника с пометками заимствований
- вывод процента оригинальности
- поддержка языков C, python, java, js для входных файлов
- обработка репозиториев в качестве входных данных
- поиск по материалам Github / Stackoverflow
- Docker-контейнер для работы приложения
Технологии:
- Python
deliverables: веб-приложение, работающее на Ubuntu 18.04.
8. Инструмент для генерации датасетов для фотограмметрии
Что такое фотограмметрия: https://habr.com/ru/post/319464/
Чем вдохновляется тема https://github.com/moevm/bsc_kovinev
Задумка: создать приложение, где можно будет настроить параметры виртульной сцены (что показывать), освещения (какой светит свет), погоды (дождь, снег, без осадков ), а также параметры создания набора снимков (траектория, тип камеры).
Задача: создать GUI-приложение для создания фотограмметрических датасетов, со следующей функциональностью:
- Отображение пользовательской модели сцены
- Настройка освещения
- Настройка погоды
- Настройка тракетории и частоты съемок
- Экспорт снимков в файлы
- Docker-контейнер для работы приложения
Технологии:
- Unreal Engine
deliverables: GUI-приложение, работающее на Ubuntu 18.04.
9. Генератор заданий для к/р по темам «Интерполяция функций» и «Численное интегрирование»
Задача: реализовать генератор заданий для к/р по темам «Интерполяция функций» и «Численное интегрирование». Приложение должно по некоторому номеру генерировать заданное число вариантов по данным темам, а также ответы для преподавателя. Примеры заданий можно найти здесь.
Функциональность:
- приложение должно быть кроссплатформенным с пользовательским интерфейсом (gui/web)
- параметризация длины исходных данных (например, чтобы таблица могла быть произвольного размера)
- параметризация компоновки билетов на странице
- использование списка ФИО вместо номеров вариантов
- приложение должно генерировать файлы формата TeX и/или PDF по выбору пользователя
Технологии: Python
Примечание: обратите внимание на то, как сформированы значения в заданиях. В заданиях по интерполяции полиномы получаются с целочисленными значениями, а в заданиях по численному интегрированию суммы должны делиться без калькулятора. Это делается для того, чтобы студенты «в полевых условиях» смогли решить данные задачи за отведённое время.
deliverables: приложение, работающее на Ubuntu 18.04.
10. Разработка системы удаленного проведения экзаменов (Proctoring)
Кафедра сейчас занимается созданием собственной системы для прокторинга - процедуры наблюдения и контроля за дистанционным экзаменом (от англ. «proctor» - человек, который следит за ходом экзамена в университете). Приложение уже находится в процессе разработки.
Необходимо выполнить следующие задачи:
- Создание шкалы с отметками о нарушениях.
Во время экзамена студенты иногда нарушают правила проведения, поэтому в системе есть возможность просмотра нарушений. Нужно сделать кликабельную временную шкалу для видео с экзамена. Там выводить нарушения. Пример показан на фото:
- Реализовать чат с преподавателем.
- Добавление в базу данных MongoDB сведений о студенте. Сделать фильтрацию по любым параметрам (даты/ФИО студентов/LMS/оценки).
Технологии: JavaScript, React, NodeJS, MongoDB, Docker.
11. Настройка взаимодействия системы прокторинга с Moodle
Кафедра сейчас занимается созданием собственной системы для прокторинга - процедуры наблюдения и контроля за дистанционным экзаменом (от англ. «proctor» - человек, который следит за ходом экзамена в университете). Прокторинг реализован с использованием микросервисной архитектуры. Необходимо настроить взаимодействие системы прокторинга с образовательной платформой Moodle. Для этого нужно разобраться, как работает плагин Event Trigger, подключить к Moodle и настроить взаимодействие с системой прокторинга.
Необходимо протестировать и внедрить плагин.
Технологии: Moodle, JavaScript.
В системе прокторинга используются: React, NodeJS, MongoDB, Python, WebRTC, Kurento Media Server, Docker. При тестировании придется запускать весь стек технологий.
12. Инструмент для генерации отчетов
На данный момент разработан инструмент, который позволяет генерировать отчет из markdown в отчет, соответствующий регламенту «ЛЭТИ». Требуется:
- Добавить систему ошибок(когда возникает какая либо ошибка, пользователь должен узнать об этом)
- Изменить парсер markdown текста для случаев вложенного списка(больше двух) и др.
- Автоматизировать сборку docker-контейнера
- Добавить недостающие поля, такие как: аннотация на английском и др.
- Вставка diff’а в отчет для нужных коммитов, используя github api
- Поменять работу с гит репозиториями, используя github api
- Тестирование*
Технологии: Python3, Flask, Docker, Js, Mongodb, html, css
13. Мобильное приложение для кафедральной платформы moodle
Требуется реализовать возможности:
- кастомизации стилистику приложения
- учиться (смотреть видео/проходить тесты) и видеть свой прогресс
- общаться с преподавателем через чат
- преподаватель курса может смотреть статистику по курсу/студенту
Технологии: Kotlin
14. Плагин для создания сертификатов
Требуется реализовать плагин для платформы moodle, который позволяет создавать, настраивать, отображать сертификат как элемент курса, а также проверять сертификат на валидность.
В настройку сертификата входит:
- добавление элементов, таких как: Имя студента, фон, картинки (логотип платформы/курса), текст, название курса, ссылка на курс, ссылка на проверку серификата, процент прохождения, дата, подписи преподавателей (в том числе в формате png), и т.д.
- настройка размера сертификата
- настройка положения элементов: нужно иметь возможность задать (или вычислить) координаты положения каждого элемента
Технологии: php, js, css, mysql