courses:mse:project_list

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
courses:mse:project_list [2019/07/26 11:51]
tatyana.berlenko created
courses:mse:project_list [2022/12/10 09:08] (current)
Line 1: Line 1:
 ====== Список проектов ====== ====== Список проектов ======
  
-=== 1. Инструмент для составления словарей на английском языке ===+==== 1. Инструмент для составления словарей на английском языке ​====
  
 Требуется реализовать инструменты,​ которые бы позволяли:​ Требуется реализовать инструменты,​ которые бы позволяли:​
Line 14: Line 14:
 Консольное приложение для Linux, которое позволяет из документа docx определенного формата составить набор слов в Lingua Leo, а также обновить этот набор. Консольное приложение для Linux, которое позволяет из документа docx определенного формата составить набор слов в Lingua Leo, а также обновить этот набор.
  
-=== 2. Онлайн-курс на Stepik по работе в Google Docs и Google Tables ===+==== 2. Онлайн-курс на Stepik по работе в Google Docs и Google Tables ​====
  
 Требуется создать онлайн-курс на платформе Stepik.org для работы с Google Docs и Google Tables. В качестве теории можно загружать текстовую/​видео информацию. В качестве задач необходимо создать автоматически проверяемые задания,​ при выполнении которых пользователь должен работать в  Google Docs и Google Tables, а на Stepik система проверки должна проверять правильность его работы. Требуется создать онлайн-курс на платформе Stepik.org для работы с Google Docs и Google Tables. В качестве теории можно загружать текстовую/​видео информацию. В качестве задач необходимо создать автоматически проверяемые задания,​ при выполнении которых пользователь должен работать в  Google Docs и Google Tables, а на Stepik система проверки должна проверять правильность его работы.
 +
 +Технологии:​ Python3, Flask, Mongodb, Docker, js
  
 **deliverables**: ​ Набор автоматически проверяемых заданий в онлайн-курсе по работе в Google Docs и Google Tables, набор теоретических степов. **deliverables**: ​ Набор автоматически проверяемых заданий в онлайн-курсе по работе в Google Docs и Google Tables, набор теоретических степов.
  
 +==== 3. Telegram bot для для студентов 1го курса ====
 +
 +Требуется создать telegram bot'a для студентов 1го курса.
 +Вопросы,​ которые должны быть освещены ботом (информация касается предметов Информатика и Программирование):​
 +
 +  * "Я не защитил л.р./не сдал курсовую в срок - что мне делать?"​
 +  * "​Попал на допсессию - что делать?"​
 +  * "​Хочу улучшить оценку после сессии - что делать?"​ (вопрос касается дня качества)
 +  * Расчет баллов по рейтинговой системе для студента/​отображение информации о том, что нужно сделать на конкретную оценку
 +  * Сроки защит
 +  * и др.
 +
 +
 +Технологии:​ Python3, Flask, Mongodb, Docker, js
 +
 +**deliverables**: ​ Набор скриптов для сборки docker образа и запуска docker контейнера с Telegram bot'​ом.
 +
 +
 +==== 4. Автоматическая проверка содержимого пуллреквеста у студента ====
 +
 +
 + На данный момент есть инструмент,​ который позволяет после создания пуллреквеста проверить пуллреквест на соответствие определенным правилам.
 +Требуется дополнить этот инструмент проверками содержимого пуллреквестов:​
 +
 +  * Проверять содержимое пуллреквеста на степике:​ автоматически подставлять код студента в соответствующую задачу на степике и проверять,​ была ли эта задача успешно решена
 +  * Закрывать пуллреквест студента с соответствующей формулировкой,​ если пуллреквест не прошел.
 +
 +
 +Также есть инструмент,​ который позволяет посмотреть статистику студента 1го курса на Stepik. Требуется дополнить этот инструмент отображением статистики:​
 +
 +  * Показывать дату создания каждого пуллреквеста по ЛР, дату мержа пуллреквеста преподавателем
 +  * Показывать историю пуллреквеста после нажатия соответствующей кнопки (Например,​ "​Показать больше"​)
 +
 +Технологии:​ Python3, Flask, Mongodb, Docker, js
 +
 +**deliverables**:​ Дополнения уже готовых веб-приложений,​ позволяющие следить за статистикой в Гитхаб и проверять содержимое пуллреквестов.
 +
 +==== 5. Инструмент выдачи заданий ====
 +
 +Для защиты ЛР студент должен получить задание от преподавателя по соответствующей ЛР. Необходимо создать веб-приложение,​ которое позволяет:​
 +
 +  * Авторизоваться через Github аккаунт как студент,​ или как преподаватель
 +  * Отобразить для студента его прогресс:​ количество Л.Р., которые были защищены студентом,​ количество попыток защиты данной Л.Р.
 +  * Получить задание к соответствующей л.р. (задание должно быть не тем же, что студент получал ранее)
 +  * Прикрепить фотографию решенного задания/​ссылку на исходный код в репозитории/​исходный код
 +  * Послать статус задания:​ Решено (можно проверять),​ Не решено
 +  * Преподаватель должен видеть таблицу студентов:​ ФИО, статус каждого студента:​ Получил Задачу (отображать номер л.р.), Не получил,​ Решил, Не Решил. При этом должна быть возможность получить доп информацию о студенте при нажатии кнопки "​Подробнее":​ информация о всех попытках.
 +  * Должна быть возможность отслеживать изменение фокуса приложения.
 +  * Преподаватель может изменить статус задачи на Зачтено и Не Зачтено
 +  * В начале пары приложение должно автоматически становиться доступным для просмотра заданий студентом,​ в конце пары - недоступным. Преподаватель должен иметь возможность управлять этим.
 +
 +
 +Технологии:​ Python3, Flask, Mongodb, Docker, js
 +
 +**deliverables**: ​ Веб-приложение,​ позволяющее студенту получить задание и узнать свой статус и позволяющее преподавателю следить за прогрессом студентов.
 +
 +==== 6. Инструмент для сбора метеорологических данных ====
 +
 +Необходимо разработать консольное приложение,​ которое позволит ​ собирать данные о погоде (температуру,​ сила и направление ветра, влажность,​ облачность) в указанном городе.
 +
 +Приложение должно:​
 +  - собирать информацию за определенный промежуток времени;​
 +  - получать информацию с заданным шагом (почасовая,​ дневная,​ за месяц, и т.д.);
 +  - сохранять данные в виде таблицы;​
 +  - при отсутствии каких-либо данных проводить интерполяцию данных;​
 +  - создавать статистику данных (среднее за выбранный интервал,​ минимум и максимум,​ моду);
 +  - рисовать график погоды за выбранный период времени.
 +
 +
 +Технологии:​ Python3
 +
 +**deliverables**:​ Консольное приложение,​ на вход которому поступает город, в котором необходимо собирать данные,​ начальная и конечная дата, и частота сбора данных. Далее приложение обращается к погодному сервису (на выбор выполняющего),​ который может предоставить необходимые данные,​ и формирует таблицу с данными и файл со статистикой по данным.
 +
 +==== 7. Визуальный редактор карт для симулятора Duckietown ====
 +
 +Необходимо разработать веб- / кроссплатформенное GUI-приложение для создания и редактирования карт для симулятора среды Duckietown в формате yaml. Требуемая функциональность:​
 +  - открытие,​ отображение и сохранение карт,
 +  - палитра возможных блоков,​
 +  - отмена изменений,​
 +  - масштабирование карты,
 +  - копирование фрагментов карты
 +  - экспорт карты в png,
 +  - вычисление характеристик карты (протяженность дорог, количество перекрестков,​ наличие тупиков ...),
 +  - *вычисление количества необходимых материалов для того, чтобы карту воспроизвести в виде полигона (сколько нужно какой изоленты,​ блоков,​ знаков и т.д.).
 +
 +Технологии:​ YAML, Python, Docker(в небольших количествах),​ Duckietown. ​
 +
 +**deliverables**:​ приложение,​ позволяющее создавать / редактировать существующие карты в комфортном режиме + эмулятор нормально функционирует с такими картами.
 +
 +
 +==== 8. Генератор карт для симулятора Duckietown ====
 +
 +
 +Необходимо создать сценарий командной строки,​ позволяющий генерировать случайные карты для симулятора Duckietown исходя из набора параметров:​
 +  - размер поля,
 +  - количество перекрестков,​
 +  - ограничение на тип перекрестков,​
 +  - количество петель,​
 +  - количество пешеходов на прямой участок дороги,​
 +  - количество знаков,​
 +  - максимальная длина дороги между перекрестками,​
 +  - *разные схемы компоновки дорог ​
 +
 +При этом, генерируемые карты должны быть не просто набором случайных блоков,​ а максимально корректными с точки зрения дорожного движения.
 +
 +Также необходимо иметь возможность статической валидации (проверки корректности соответствия формату) для сгенерированных карт.
 +
 +Технологии:​ YAML, Python, Docker(в небольших количествах),​ Duckietown. ​
 +
 +
 +**deliverables**:​ приложение командной строки,​ позволяющее сгенерировать корректную карту ( == от которой не ломается симулятор Duckietown) по набору параметров.
 +
 +==== 9. Визуализация экспериментов для симулятора Duckietown ====
 +
 +
 +Необходимо разработать приложение ( или расширить возможности симулятора Duckietown),​ которое позволит фиксировать видеозаписи проводимых экспериментов. Требования:​
 +  - формат видео mp4,
 +  - эксперимент фиксируется в конфигурации вид сверху,​
 +  - все боты нумеруются,​
 +  - для каждого бота отображается траектория,​
 +  - справа от поля (карты) на однотонном фоне отображаются
 +    - счетчик времени модели,​
 +    - по каждмоу боту: ​
 +      - текущие координаты (x y + углы ориентации) ,
 +      - пройденное расстояние,​
 +      - количество времени за пределами разметки ( == выезд за пределы проезжей части),​
 +      - количество времени простоя ( == скорость бота == 0),
 +  - *экспорт всех данных симуляции из формате rosbag + прикладывать само видео в rosbag.
 +
 +
 +Технологии:​ Python, Docker, Duckietown, ROS. 
 +
 +
 +**deliverables**:​ патч, либо отдельное приложение,​ позволяющее фиксировать результаты моделирования в симуляторе Duckietown на видео.
 +
 +
 +==== 10. Составитель оглавлений / указателей терминов по курсу в Stepik ====
 +
 +Задача:​ создать приложение,​ которое будет автоматически составлять оглавление / алфавитный указатель для курса по Stepik. Функциональность:​
 +  * авторизация с помощью OAuth;
 +  * получение данных онлайн-курса из Stepik;
 +  * парсинг,​ стемминг и фильтрация шумовых слов для текстовых степов;​
 +  * выделение заголовков для текстовых степов;​
 +  * составление оглавления (модули,​ уроки, заголовки степов);​
 +  * составление алфавитного указателя терминов (список терминов - каждый термин являетяя ссылкой на степ, где он был упомянут);​
 +  * выделение звуковой дорожки видео;
 +  * распознавание текста звуковой дорожки;​
 +  * расширение алфавитного указателя распознанным текстом;​
 +  * формирование html-страницы с оглавлением и указателем.
 +
 +
 +Технологии:​ Python, Stepik API.
 +
 +**deliverables**:​ приложение командной строки,​ формирующее html оглавления и указателя.
 +
 +
 +==== 11. Задачи на iverilog ====
 +
 +
 +Опираясь на книгу [[http://​easyelectronics.ru/​files/​Book/​digital-design-and-computer-architecture-russian-translation.pdf |"​Цифровая схемотехника и архитектура компьютера"​]] необходимо разработать ряд задач на программирование электронных устройств в IVerilog.
 +  * создание самих задач (код эталонных решений,​ код неверных решений,​ код test_bench - проверочная программа на IVerilog);
 +  * скрипты для сборки студенческих решений,​
 +  * скрипт для запуска студенческих решений и проверки их через test_bench, ​
 +  * скрипт для прогона интеграционных тестов ( == протестить работу каждой задачи на ее эталонных и неверных решениях),​
 +  * (hard) рандомизация условий задач и проверок;​
 +
 +
 +Задачи для реализации:​
 +  * N-входовые вентили (И, ИЛИ, XOR, NOR, NAND),
 +  * светофор,​
 +  * двойной светофор на Х-образном перекрестке,​
 +  * двойной светофор на Т-образном перекрестке,​
 +  * N-входовой мультиплексор,​
 +  * N-входовой демультиплексор,​
 +  * ....
 +
 +[[http://​easyelectronics.ru/​files/​Book/​digital-design-and-computer-architecture-russian-translation.pdf#​page=460|Описание самого Verilog]].
 +
 +Технологии:​ IVerilog, Docker, Python, Bash.
 +
 +**deliverables**:​ набор задач (формулировка,​ решения,​ проверочный код (test bench), а также скрипты для проверки решений и прогона эталонных решений.
 +
 +==== 12. Расширение Chrome для улучшения UI github ====
 +
 +
 +Реализуйте расширение (расширения) для браузера Chrome, позволяющее улучшить удобство для Github.
 +
 +Задачи:​
 +  * создание репозиториев для групп МОЭВМ (необходимо указать год и количество групп для каждого направления) с защищенной веткой master (т.е. веткой,​ в которую нельзя коммитить),​
 +  * отображение кнопки "​Добавить задачу " на странице проекта (agile-доски),​
 +  * кнопка для копирования задачи (на странице просмотра задачи),​
 +  * отображение комментариев к задачам при их просмотре на странице проекта,​
 +  * отображение дат последних коммитов всех пользователей при просмотре главной страницы репо,
 +  * отображение наличия конфликта на иконке пулл-реквеста при просмотре в списке PR,
 +  * пометка карточек без связанных PR на странице проекта,​
 +  * пометка карточек с конфликтом в связанном PR на странице проекта,​
 +
 +
 +
 +Технологии:​ github api, javascript, html, css.
 +
 +**deliverables**:​ готовое к публикации расширение. ​
 +
 +==== 13. Инструмент для проверки человека на присутствие в БД ====
 +
 +
 +Необходимо разработать консольное приложение обработки видеопотока,​ определения лиц в кадре, и проверки лица на присутствие в БД изображений.
 +Задачи:​
 +
 +  * реализовать обработку потокового видео
 +  * реализовать алгоритмы обнаружения лиц на изображении
 +  * реализовать алгоритм сопоставления обнаруженных лиц и лиц из БД
 +  * генерация отчета по работе
 +
 +Технологии:​ Python3, OpenCV, Keras, TensorFlow
 +
 +**deliverables**:​ Консольное приложение,​ которое при запуске должно получать снятое видео или потоковое видео с камеры. Во время работы определяет наличие людей из БД в кадре. В конце формирование отчета,​ который должен включать список лиц, которые были обнаружены и время их первого и последнего появления в кадре, количество неопознанных лиц.
 +
 +
 +==== 14. Обфускатор кода написанного на языке C ====
 +
 +Необходимо разработать консольное приложение для обфускации написанного кода.
 +Информация по обфускации:​ http://​citforum.ru/​security/​articles/​obfus/​
 +Приложение должно получать уже написанный код на языке С и проводить обфускацию. Должна быть настройка степени обфускации и выбор того, какие типы обфускации используются.
 +Технологии:​ Python3
 +
 +**deliverables**:​ Консольное приложение?​ получающее файл с расширением .c и параметры обфускации. Параметрами обфускации могут быть: переименование переменных,​ изменение представление чисел, добавление лишних ничего не делающих строчек кода, замена константных выражений вызовом функций,​ а также степень обфускации (например,​ сколько лишних строчек добавляется,​ размер новых имен переменных,​ и.т.д.). По завершении программы программа создает новый файл с запутанным кодом.
 +
 +
 +==== 15. Сервис по проверке документов на соответствие шаблону ====
  
 +Необходимо разработать web-сервис,​ позволяющий проверить соответствие документа и документа шаблона.
 +разработать разметку для документа шаблона (примером такого шаблона могут быть шаблоны оформления отчетов с сайта etu.ru)
 +  * разработать алгоритмы анализа текста и метаданных файла
 +  * сравнение документа с шаблоном (размер шрифтов,​ цвет текста,​ отступы,​ нумерация страниц,​ и.т.д.)
 +  * реализовать формирование отчета по итогам сравнения
 +Технологии:​ Python3, Flask, js
  
 +**deliverables**:​ Сервис должен получать 2 документа (форматов docx, doc, odt, rtf. будет плюсом если будет реализовано и для pdf) один из которых является документом-шаблоном. Далее сервис проводит сравнение первого документа на соответствие шаблону представленному во втором документе. При несоответствии должна выводиться информация о том, что именно и где не соответствует.
  
courses/mse/project_list.1564141902.txt.gz · Last modified: 2022/12/10 09:08 (external edit)