Идеи проектов
Данная страница является складом «сырых» идей проектов.
Марк Заславский
Эмулятор помещений для ROS / SLAM / CV задач
Цель - научится эмулировать данные от датчиков роботов (rgb и rgbd камеры, лидары), в помещениях различной пространтсвенной конфигурации (заданные 3d-моделями), с разными параметрами источников света (мощность, расположение, цветовая температура), расположением специальных меток (aruco, qr).
Задачи
отображение 3d-моделей для помещений,
конфигурация источников света,
конфигурация расположения меток,
конфигурация движения робота (в gui),
конфигурация датчиков робота,
экспорт измерений.
Результаты
- программа с графическим интерфейсом, позволяющая формировать ros-bag файлы данных для заданных конфигураций,
- технология быстрого подключения новых датчиков к программе (снятие параметров датчика).
[Done] Автоматизация проверки лабораторных для курса "Введение в нереляционные БД"
Цель: разработка системы автоматической проверки лабораторных работ для курса «Введение в нереляционные БД».
Задачи:
Изучение операций в нереляционных БД;
Разработка скриптов автоматизации для генерации условий и проверки лабораторных;
Разработка эталонных и ошибочных решений;
Интеграция наработок в stepic.org;
Требование:
Python, Linux
Тематики:
MongoDB
полнотекстовый поиск
геозапросы
GridFS
MapReduce
ArangoDb
Создание объектов БД всех видов
Графовые операции
Cassandra
установка и настройка
создание БД
запросы на чтение/запись
BigTable специфика
OpenLink Virtuozo
SPARQL запросы
RDF
ExistDB
Результат: набор автоматически проверяемых заданий.
http://se.moevm.info/doku.php/staff:courses:no_sql_introduction
Генераторы задач
[WiP] Программирование
Прямые и обратные задачи на:
порядок отладки,
сообщения компилятора,
синтаксические ошибки
[WiP] Курс по инструментам отладки и профилирования (gdb, vallgrind, callgrind)
Интерактивные задачи на дебаг:
сегфолтов
неправильных вызовов
ошибок преобразования типов
поиск ошибок параллельного исполнения
обратная инженерия
проблемы с производительностью
Научиться «замусоривать» код программы кодом без побочных эффектов.
Задачи GDB:
Задачи valgrind:
Утчека памяти. Дан бинарный файл программы, в котором допущена утечка памяти. Задача: определить переменную, через которую утекает память.
Производительность. Дан бинарный файл программы, в котором ооооочень много разных функций и их вызовов. Задача: определить самую часто вызываемую функцию.
[WiP] Система автоматической проверки наиболее частых формальных ошибок в научных статьях/отчетах
Вводная часть:
Разработать веб-сервис, который проводит анализ текста научной статьи/студенческого отчета с помощью систем полнотекстового поиска для проверки критериев. Критерии включают самые типичные (но при этом машинно-проверяемые) ошибки при подготовке данных документов, например:
личные предложения и личные формы глаголов
отсутствие ссылок или битые ссылки на элементы списка литературы/рисунки/таблицы
повторы слов в пределах двух предложений
«телеграфность»
повторение начальных слов абзацев («Было принято решение»)
стоп-слова:
жаргонизмы (использовать список): скачать, пост, либа, тул
личные местоимения
там, тут, здесь
Задачи:
парсинг docx/ppt/pdf
полнотекстовый поиск
проверка выполнения больших наборов стандартизированных правил для текста на естественном языке
[WiP] Kernel programming
Цель: разработка проверяющих скриптов для заданий курса «Программирование в ядре Linux».
Задачи:
изучение механизмов работы ядра Linux и способов его модификации
создание и отлаживание проверяющих скриптов для задач по разработке модулей ядра/драйверов/ прочих расширений)
создание эталонных и ошибочных решений для задач
Требования:
знание программирования ядра на начальном уровне
C, Make, Linux
Результат: набор сценариев проверки, заинтегрированных в онлайн версию курса.
[Done] Сбор статистики курса "Основы программирования в Linux"
Цель: доработка и расширение функционала статистического фронтенда
Задачи:
изучение принципов статистического анализа в связке Python+Mongo
полнотекстовый поиск силами mongo
сбор и вычисление статистики курса (самые проблемные задачи/как быстро и часто решают и тд)
динамическая подгрузка лога
адаптивная и отзывчивая графика
генерация/экспорт отчетов
Требования:
Python, Django
JS библиотеки для визуализации графики
Результат: веб-сервис, который позволяет вести мониторинг статистики прохождения курса и отслеживать определенные события в логе.
[Done] Инструмент мониторинга статистики прохождения outdoor-квестов
Цель: создать веб-приложения для исследования подробной статистики прохождения квестов + реализовать интерфейсы сбора подобной статистики для приложений.
Задачи:
Исследовать примерные аналоги
Спроектировать веб-интерфейс, в котором можно будет просматривать и визуализировать подробную статистику.
Требования:
Результат: веб-сервис, который позволяет владельцу набора квестов просматривать статистику их прохождения.
Доработка ИС кафедры для учета дипломников
Цель: создание дополнительной подсистемы к ИС кафедры для учета дипломников
Задачи:
реализовать набор view для CRUD дипломной информации (руководитель, тема, ссылки на материалы, публикации, документы (ПЗ, отзыв, задание, рецензия)) с учетом сроков ее предоставления
реализовать сводное view прогресса работы над дипломом (по аналогии с таблицей дипломников)
реализовать набор view для редактирования критериев аттестации дипломников (сроки)
Интерфейс для рецензирования дипломов
Требования:
максимально использовать существующие наработки (в особенности БД)
python / django
[Done] Тренажер публичных выступлений
Цель: сделать тренажер, позволяющий докладчику объективно измерить
скорость речи (сколько слов в секунду он произносит)
четкость речи
скорость доклада (расход времени/слов на каждый слайд/ среднее время/слова на каждый слайд)
проверить укладываемость во временное ограничение
измерить теже самые параметры в контексте ответов на вопросы
сопоставить распознанные слова и текст речи или тезисы для выявления неосвященных тем*
Предполагаемая форма исполнения - веб-приложение.
Сценарий использования:
пользователь открывает приложение
пользователь загружает презентацию и указывает временное ограничение (количество минут на доклад)
пользователь нажимает кнопку «Начать тренировку»
на экране отображается презентация, обратный отсчет времени, номер слайда/общее количество слайдов, график (стрелочный индикатор) количества слов в минуту , кнопки переключения слайдов
пользователь осуществляет доклад
если темп речи превышает некоторый, заранее заданный порог, то график/индикатор окрашивается красным
по окончанию доклада пользователь нажимает кнопку «Доклад окончен»
на экране отображается статистика выступления - общая и по отдельным слайдам
[Done] Виртуальный тренажер Arduino
Цель: реализовать набор автоматически проверяемых (не интерктивных) задач для обучения программированию Arduino.
Задачи:
создание Docker-образа для эмулятора Arduino,
автоматизация запуска эмулятора Arduino,
сборка студенческих решений и проверка корректности их работы по сценарию задачи.
Требования:
начальные знания разработки для Arduino,
минимальный опыт работы с Docker либо Vagrant,
базовый навык работы с Bash.
Результат: набор задач, опубликованных в курсе на Stepik.org.
Построитель схем для SimulAVR
Цель - реализовать консольный редактор схем для SimulAVR с поддержкой простых компонентов:
диоды,
резисторы,
лампочки,
конденсаторы,
катушки,
фоторезисторы и другие.
Редактор должен позволять:
редактировать, сохранять в файл и визуализировать схемы;
настраивать параметры элементов, в том числе задавать сигналы вручную;
запускать программы в рамках этих схем;
визуализировать сигналы.
Требования:
Результат: консольное приложение.
[WiP] Эмулятор arduino для ArduinoIDE
Тоже что и в предыдущей теме, но GUI + интеграция к IDE.
Мини-курсы Stepik
по созданию и публикации Gem
по созданию и публикации Vagrant плагинов
как создавать Docker образы
как пользоваться screen
как искать файлы и делать grep
как пользоваться man
Права доступа в linux
рассказать о том, как
устроены права, пользователи и группы
что же делает судо и как его настроить
исполняемые файлы и права на запуск
как решать типичные ошибки (нет прав/ файл не найден/отказано в доступе)
примеры задач:
соотнесите цифровые и буквенные права
настройте права так, чтобы определенные пользователи/группы имели/не имели доступа
[Done] ssh-tricks
Мат.модели работы ПО
у студентов часто возникает задача в дипломе / курсово исследовать типовые показатели работы программы:
- расход памяти
- скорость работы
- пропускная способность (скорость передачи данных по сети)
При этом студенты демонстрируют очень низкий уровень понимания того как ставить эксперимент, обрабатывать данные и тд.
Есть гипотеза что даже хорошее преподавание статистики/метрологии не поможет сильно исправить ситуацию, так как там материал зачастую оторван от жизни.
Хочется сделать курс, где на предельно прикладных задачах (буквально надерганных с дипломов/курсовых) будет показано как применять мат. модели, но без слишком большого объема теории (а лучше - с минимумом).
Например:
- как построить зависимость скорости работы программы (дается студенту в виде бинарника/исходника) от параметра А
– какие там будут источники погрешностей, как их исключить/оценить/проверить гипотезы про распределения
– какой метод интерполяции выбрать?
– как поставить эксперимент по измерению?
– как обрабатывать полученные данные?
– какие выводы можно, а какие нельзя делать по результатам?
Курс по развитию внимательности
Как известно, 90% проблем у учащихся возникает при невнимательном чтении заданий. Необходимо сделать такой курс, чтобы окончив его, человек умел читать тексты максимально внимательно + анализировать их содержимое.
[Done] Автоматизация проверки заданий для XV6 по курсу ОС
Цель: реализовать автоматически проверяемые задачи по системе XV6 на базе проверяющей системы «Основы программирования в Linux».
Задачи:
cоставление эталонных решений к задачам;
создание скриптов проверки.
Требования:
базовое понимание того, как работают ОС (более высокий уровень знания или понимания будет плюсом);
владение С;
базовые знания Ruby, Bash;
общее предсталение о работе Vagrant.
Результат: набор автоматически проверяемых задач, заинтегрированных на Stepik.org.
Ссылки:
-
-
Плагины для jenkins
Массовая настройка слейвов (одновременный запуск на Н слейвах, анализ кодов возврата и вывода).
Запуск сложных конфигураций ВМ для job.
[Done] Плагины vagrant
Диагностика запуска ВМ.
Поддержка ограниченного пула портов|директорий.
Создание отладочных копий ВМ в случае сбоя.
Быстрая настройка доступа по ssh-key.
Поиск плагиата по комментариям в исходном коде
Дано - исходный код в git репозитории.
Задача - найти другие репозитории, в которых есть такие же комментарии в исходных кодах.
Расширения для хрома, упрощающие работу со Stepik
[Done] Автоматизация ответов на вопросы в рамках онлайн-программы
Цель: создать инструмент, ускоряющий ответы на вопросы участников онлайн-программы.
Задачи:
экспорт данных из задач Redmine
индексация
выделение ключевых слов
построение рекомендаций
[Done] Поиск/автоматическое удаление словестных пауз из видео
Очень часто при записи онлайн-курсов авторы видео делают много пауз для того, чтобы собраться с мыслями/обдумать следующее слово.
Задача - найти и удалить их.
Расширение для Google Chrome, подсчитывающее статистику изменений задач в Trello-доске
Интеграция задач на Scratch в Stepik
Портировать веб-фронтенд Scratch в удобную/контролируемую форму.
Создать (скорректировать) интерфейсы для проектирования задач.
Связать фронтенд со Stepik, так, чтобы решение задач во фронтенде приводило к соответствующим отметкам на Stepik.
Задачи для курса по ядру / программированию в Linux
Онлайн-курс для аспирантов
Идея - дать представление об общих основных этапах подготовки к защите и улучшить понимание следующих разделов:
Автоматизация заполнения шаблонов документов
Цель - инструмент, который позволит автоматически заполнять шаблоны документов (docx, odt, pptx, odp ….) данными из таблицы (каждая колонка - отдельное подставляемое поле, каждая строчка - новый документ).
Выходные данные:
CSV-файл со значениями подстановок,
путь к шаблону в формате docx, odt, pptx, odp,
текстовый шаблон именования файла.
Пример CSV-файла:
FirstName,LastName,Adress,City,State,ZIP-code
John,Doe,120 jefferson st.,Riverside, NJ, 08075
Jack,McGinnis,220 hobo Av.,Phila, PA,09119
"John ""Da Man""",Repici,120 Jefferson St.,Riverside, NJ,08075
Stephen,Tyler,"7452 Terrace ""At the Plaza"" road",SomeTown,SD, 91234
,Blankman,,SomeTown, SD, 00298
"Joan ""the bone"", Anne",Jet,"9th, at Terrace plc",Desert City,CO,00123
Соответственно, полями для подстановки являются: FirstName, LastName, Adress, City, State, ZIP-code.
В файле docx, odt, pptx, odp содержатся указанные выше поля подстановки в виде меток следующего вида:
{{ Adress }}
Текстовый шаблон именования файла содержит комбинацию полей подстановки:
{{ FirstName }}{{ LastName }}.docx
В результате работы должны появится 6 файлов, по одному для каждой строчки CSV файла.
Фреймворки:
Кирилл Кринкин
Интеграция задач на Scratch в Stepik
Портировать веб-фронтенд Scratch в удобную/контролируемую форму.
Создать (скорректировать) интерфейсы для проектирования задач.
Связать фронтенд со Stepik, так, чтобы решение задач во фронтенде приводило к соответствующим отметкам на Stepik.
Татьяна Берленко
Stepic
Комментарии
Задачей является создание новых или доработка существующих инструментов, которые бы позволили вести учет студенческих комментариев на различных курсах Stepic. Необходимо отслеживать ветки дискуссий и сохранять в БД информацию о не обработанных комментариях.
Статистика
Скрипт, который на основе .csv файла с результатами прохождения модуля/курса студентов строит статистику.
Предоставление фидбэка студентам
На основе решения студента, функции-генератора test case, функции решения и проверки получаем полный фидбэк (место ошибки)
Получение информации о коде студента
Проверка кода студента на выполнение неких правил задачи:
наличие определенных функций
невмешательство в изначальный код, который был дан преподавателем
использование каких-то определенных методов/инструментов языка
Проверка на жульничество
Сводная таблица о тех кто жульничает.
MSE
Глобальная идея: собрать все наработки по mse в одно место.
Предоставление информации об окончании этапа кураторами
Веб-форма, в которой в конце этапа куратор указывает следующее:
что необходимо было сделать
что было сделано
оценку каждому участнику
После отправки формы кураторы и организаторы получают письмо, в котором вложена google table с оценками и сводная таблица с информацией (что было сделано, что должно было быть сделано) для простоты оценивания
Geo2Tag
Map
Логгирование
Unassigned
Веб-интерфейс для инструмента версионируемой загрузки курсов на Stepik
Цель: создание веб-интерфейса к инструменту командной строки https://github.com/OSLL/stepic_uploader , позволяющего автоматизировать создание уроков и курсов в рамках платформы Stepik. Реализуемые сценарии использования:
Создание урока-контрольной по существующему набору вопросов с выбором ответа.
Загрузка и выгрузка курса в машиночитаемом виде в систему контроля версий.
Задачи:
Создание пользовательского интерфейса.
Подключение авторизации с использованием данных Github и Stepik по протоколу OAuth2.
Автоматизация установки сервиса и настройки программной среды.
Требования:
Python, Flask, JS
Результат: веб-сервис загрузки и выгрузки для курсов на stepik.org .
Создание задач по письмам meeting minutes