seml:seml

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
seml:seml [2026/08/29 07:53] – Bulk sync migration userseml:seml [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +===== Программная инженерия для анализа данных =====
  
 +В курсе рассматриваются вопросы разработки систем обработки данных и машинного обучения.
 +
 +  * Как вывести разработанную модель в продакшен?
 +  * Что делать для совместной работы над наукоемким ПО?
 +  * Как не потерять ранее достигнутые исследовательские результаты?
 +
 +В результате освоения курса слушатели приобретают навыки промышленной разработки алгоритмов машинного обучения, проведения повторяемых экспериментов, использования больших данных, тестирования и процессов выполнения проектов в области машинного обучения.
 +
 +Темы курса
 +
 +  * Структурирование программ обработки данных (CODE)
 +  * Написание надежного кода (CODE)
 +  * Проектирование систем и хранение данных в системах машинного обучения (DATA)
 +  * Процессы и виды работ в проекте анализа данных (PROC)
 +  * Обеспечение повторяемости результатов (PROC)
 +  * Тестирование наукоемкого ПО (TEST)
 +
 +{{seml:seml:seml-topics.doc|Список тем}} для подготовки к зачету.
 +
 +==== План курса (2020) ====
 +
 +^ № ^ Тема ^
 +| 1. | Введение. Проблемы разработки наукоемкого ПО. Качество программных систем. |
 +| 2. | Понятный код. Оформление и стандарты. Технический долг. Проведение код ревью. |
 +| 3. | Декомпозиция программ обработки данных. Метод постепенного уточнения. Повторное использование. |
 +| 4. | Совместная разработка. Непрерывная интеграция. Гибкие процессы разработки. |
 +| 5. | Процесс анализа данных. Исследовательский анализ (EDA). Представление результатов. |
 +| 6. | Повторное использование. Объектные методы. Структуры репозиториев. |
 +| 7. | Тестирование систем анализа данных. Методы модульного тестирования. Инструменты автоматизации поставки, контейнеризация. |
 +| 8. | Тестирование инвариантами. Adversarial testing. Тестирование наукоемкого ПО. |
 +| 9. | Проблема повторяемости экспериментов. Что входит в эксперимент. Конфигурация. Лаборатория данных |
 +| 10. | Продуктивизация ML в виде сервисов. Реализация микросервисов в Python для поставки моделей. Создание API. Принципы REST и HATEOAS. |
 +| 11. | Хранение данных. Релационная, колоночная, документная и др. модели. Транзакции ACID. Распределенные СУБД. CAP и BASE. |
 +| 12. | Технологии параллельной обработки данных. Master/Slave, MapReduce, RDD(Spark). Если успеем - Kubernetes (pods, svcs, jobs, etc ) для размещения ML сервисов. |
 +| 13. | Технологии GitOps, MLOps. Технологии сжатия и ускорение моделей. Средства представления API моделей. Стандартные протоколы. |
 +
 +==== Курсовой проект ====
 +
 +Курсовой проект посвящен созданию собственного микросервиса с моделью машинного обучения в соответствии с процессами CI/CD или разработки повторно-используемой библиотеки с реализацией алгоритмом решения прикладной ML задачи.
 +
 +Задания выполняются в соответствии с процессом Scrum и CI/CD. Каждое задание - это отдельный спринт.
 +
 +^ # ^ Тема задания ^
 +| 1. | Документирование и ревью кода |
 +| 2. | Реализация модели. Структурирование программы |
 +| 3. | Автоматизация поставки и модульное тестирование |
 +| 4. | Тестирование. Непрерывная интеграция |
 +| 5. | Реализация микросервиса или микроесервиса. Использования СУБД. Воспроизводимое обучение |
 +| 6. | Размещение сервиса в облаке, публикация библиотеки. |
 +
 +==== Критерии оценивания ====
 +
 +Итоговая оценка по курсу формируется из успешности выполнения заданий по ходу семестра - по 10% за каждое задание, и подтверждение на устном опросе владения каждой из тем курса (CODE, TEST, DATA, PROC) - 40% оценки.
 +
 +==== Литература ====
 +
 +  - Материалы лекций
 +  - Davy Cielen, Arno D.B. Meysman, Mohamed Ali. Introducing Data Science (book)
 +  - NoSQL Distilled (book)
 +  - A Survey on NoSQL Stores (2018) ACM CSUR (paper)
 +  - Kanewala U., Bieman J.M. Testing scientific software: A systematic literature review (paper)
 +  - Gerardo Cerda Neumann, Héctor Antillanca Espina, Víctor Parada Daza. Development of Scientific Software and Practices for Software Development A Systematic Literature Review (paper)
 +  - The Art of Software Testing - Second Edition (book)
 +  - Tarek Ziade. Python Microservices Development (book)
 +  - ГОСТ Р ИСО/МЭК 25010-2015. Модели качества (standard)
 +  - Test your Machine Learning Algorithm with Metamorphic Testing [[https://trustable.ai/testing-ai-metamorphic-testing/|https://trustable.ai/testing-ai-metamorphic-testing/]] (paper)
 +  - Recent developments in Adversarial Example [[https://trustable.ai/recent-developments-in-adversarial-example-part-i/|https://trustable.ai/recent-developments-in-adversarial-example-part-i/]] (paper)
 +  - MapReduce Design Patterns. Book. Donald Miner, Adam Shook (book)
 +  - (2018) On Reproducible AI: Towards Reproducible Research, Open Science, and Digital Scholarship in AI Publications (paper)
 +
 +==== Контакты ====
 +
 +Контактный адрес: course [at] objectoriented.ru 
 +
 +Хританков Антон Сергеевич, к.ф.-м.н. - автор курса
  • seml/seml.txt
  • Last modified: 2026/08/29 07:59
  • by 127.0.0.1