This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:mse:project_list [2019/08/15 14:38] mark |
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 система проверки должна проверять правильность его работы. | ||
Line 22: | Line 22: | ||
**deliverables**: Набор автоматически проверяемых заданий в онлайн-курсе по работе в Google Docs и Google Tables, набор теоретических степов. | **deliverables**: Набор автоматически проверяемых заданий в онлайн-курсе по работе в Google Docs и Google Tables, набор теоретических степов. | ||
- | === 3. Telegram bot для для студентов 1го курса === | + | ==== 3. Telegram bot для для студентов 1го курса ==== |
Требуется создать telegram bot'a для студентов 1го курса. | Требуется создать telegram bot'a для студентов 1го курса. | ||
Line 40: | Line 40: | ||
- | === 4. Автоматическая проверка содержимого пуллреквеста у студента === | + | ==== 4. Автоматическая проверка содержимого пуллреквеста у студента ==== |
Line 59: | Line 59: | ||
**deliverables**: Дополнения уже готовых веб-приложений, позволяющие следить за статистикой в Гитхаб и проверять содержимое пуллреквестов. | **deliverables**: Дополнения уже готовых веб-приложений, позволяющие следить за статистикой в Гитхаб и проверять содержимое пуллреквестов. | ||
- | === 5. Инструмент выдачи заданий === | + | ==== 5. Инструмент выдачи заданий ==== |
Для защиты ЛР студент должен получить задание от преподавателя по соответствующей ЛР. Необходимо создать веб-приложение, которое позволяет: | Для защиты ЛР студент должен получить задание от преподавателя по соответствующей ЛР. Необходимо создать веб-приложение, которое позволяет: | ||
Line 78: | Line 78: | ||
**deliverables**: Веб-приложение, позволяющее студенту получить задание и узнать свой статус и позволяющее преподавателю следить за прогрессом студентов. | **deliverables**: Веб-приложение, позволяющее студенту получить задание и узнать свой статус и позволяющее преподавателю следить за прогрессом студентов. | ||
- | === 6. Тренажер английского языка === | + | ==== 6. Инструмент для сбора метеорологических данных ==== |
+ | Необходимо разработать консольное приложение, которое позволит собирать данные о погоде (температуру, сила и направление ветра, влажность, облачность) в указанном городе. | ||
- | ==== DRAFTS ==== | + | Приложение должно: |
+ | - собирать информацию за определенный промежуток времени; | ||
+ | - получать информацию с заданным шагом (почасовая, дневная, за месяц, и т.д.); | ||
+ | - сохранять данные в виде таблицы; | ||
+ | - при отсутствии каких-либо данных проводить интерполяцию данных; | ||
+ | - создавать статистику данных (среднее за выбранный интервал, минимум и максимум, моду); | ||
+ | - рисовать график погоды за выбранный период времени. | ||
- | === Визуальный редактор карт для симулятора Duckietown === | + | |
+ | Технологии: Python3 | ||
+ | |||
+ | **deliverables**: Консольное приложение, на вход которому поступает город, в котором необходимо собирать данные, начальная и конечная дата, и частота сбора данных. Далее приложение обращается к погодному сервису (на выбор выполняющего), который может предоставить необходимые данные, и формирует таблицу с данными и файл со статистикой по данным. | ||
+ | |||
+ | ==== 7. Визуальный редактор карт для симулятора Duckietown ==== | ||
Необходимо разработать веб- / кроссплатформенное GUI-приложение для создания и редактирования карт для симулятора среды Duckietown в формате yaml. Требуемая функциональность: | Необходимо разработать веб- / кроссплатформенное GUI-приложение для создания и редактирования карт для симулятора среды Duckietown в формате yaml. Требуемая функциональность: | ||
Line 95: | Line 107: | ||
- *вычисление количества необходимых материалов для того, чтобы карту воспроизвести в виде полигона (сколько нужно какой изоленты, блоков, знаков и т.д.). | - *вычисление количества необходимых материалов для того, чтобы карту воспроизвести в виде полигона (сколько нужно какой изоленты, блоков, знаков и т.д.). | ||
- | Технологии: YAML, PYthon, Docker(в небольших количествах), Duckietown. | + | Технологии: YAML, Python, Docker(в небольших количествах), Duckietown. |
**deliverables**: приложение, позволяющее создавать / редактировать существующие карты в комфортном режиме + эмулятор нормально функционирует с такими картами. | **deliverables**: приложение, позволяющее создавать / редактировать существующие карты в комфортном режиме + эмулятор нормально функционирует с такими картами. | ||
- | === Генератор карт для симулятора Duckietown === | + | ==== 8. Генератор карт для симулятора Duckietown ==== |
Line 106: | Line 118: | ||
- размер поля, | - размер поля, | ||
- количество перекрестков, | - количество перекрестков, | ||
+ | - ограничение на тип перекрестков, | ||
- количество петель, | - количество петель, | ||
- | - количество пешеходов | + | - количество пешеходов на прямой участок дороги, |
+ | - количество знаков, | ||
+ | - максимальная длина дороги между перекрестками, | ||
+ | - *разные схемы компоновки дорог | ||
+ | |||
+ | При этом, генерируемые карты должны быть не просто набором случайных блоков, а максимально корректными с точки зрения дорожного движения. | ||
Также необходимо иметь возможность статической валидации (проверки корректности соответствия формату) для сгенерированных карт. | Также необходимо иметь возможность статической валидации (проверки корректности соответствия формату) для сгенерированных карт. | ||
- | Технологии: YAML, PYthon, Docker(в небольших количествах), Duckietown. | + | Технологии: YAML, Python, Docker(в небольших количествах), Duckietown. |
**deliverables**: приложение командной строки, позволяющее сгенерировать корректную карту ( == от которой не ломается симулятор Duckietown) по набору параметров. | **deliverables**: приложение командной строки, позволяющее сгенерировать корректную карту ( == от которой не ломается симулятор Duckietown) по набору параметров. | ||
- | === Визуализация экспериментов для симулятора 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 ==== |
- | **deliverables**: | + | Необходимо разработать консольное приложение для обфускации написанного кода. |
+ | Информация по обфускации: http://citforum.ru/security/articles/obfus/ | ||
+ | Приложение должно получать уже написанный код на языке С и проводить обфускацию. Должна быть настройка степени обфускации и выбор того, какие типы обфускации используются. | ||
+ | Технологии: Python3 | ||
- | === Составитель оглавлений / указателей терминов по курсу в Stepik === | + | **deliverables**: Консольное приложение? получающее файл с расширением .c и параметры обфускации. Параметрами обфускации могут быть: переименование переменных, изменение представление чисел, добавление лишних ничего не делающих строчек кода, замена константных выражений вызовом функций, а также степень обфускации (например, сколько лишних строчек добавляется, размер новых имен переменных, и.т.д.). По завершении программы программа создает новый файл с запутанным кодом. |
+ | ==== 15. Сервис по проверке документов на соответствие шаблону ==== | ||
+ | Необходимо разработать web-сервис, позволяющий проверить соответствие документа и документа шаблона. | ||
+ | разработать разметку для документа шаблона (примером такого шаблона могут быть шаблоны оформления отчетов с сайта etu.ru) | ||
+ | * разработать алгоритмы анализа текста и метаданных файла | ||
+ | * сравнение документа с шаблоном (размер шрифтов, цвет текста, отступы, нумерация страниц, и.т.д.) | ||
+ | * реализовать формирование отчета по итогам сравнения | ||
+ | Технологии: Python3, Flask, js | ||
+ | **deliverables**: Сервис должен получать 2 документа (форматов docx, doc, odt, rtf. будет плюсом если будет реализовано и для pdf) один из которых является документом-шаблоном. Далее сервис проводит сравнение первого документа на соответствие шаблону представленному во втором документе. При несоответствии должна выводиться информация о том, что именно и где не соответствует. | ||