Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
seml:seml [2023/07/21 20:37]
127.0.0.1 external edit
seml:seml [2025/02/19 16:59] (current)
user
Line 1: Line 1:
 ===== Программная инженерия для анализа данных ===== ===== Программная инженерия для анализа данных =====
 +
 +Где читается: [[https://intsystems.github.io/ru/education/ | кафедра ИАД ФПМИ МФТИ]], магистратура, 1 курс, бакалавриат, 4 курс.
  
 В курсе рассматриваются вопросы разработки систем обработки данных и машинного обучения.  В курсе рассматриваются вопросы разработки систем обработки данных и машинного обучения. 
Line 14: Line 16:
   * Процессы и виды работ в проекте анализа данных (PROC)   * Процессы и виды работ в проекте анализа данных (PROC)
   * Обеспечение повторяемости результатов (PROC)   * Обеспечение повторяемости результатов (PROC)
-  * Тестирование наукоемкого ПО (TEST)+  * Тестирование наукоемкого ПО и верификация систем ML (TEST)
  
-{{:seml:seml-topics.doc|Список тем}} для подготовки к зачету.+Примерный {{:seml:seml-topics.doc|список тем}} для подготовки к зачету.
  
  
-==== План курса (2020) ====+==== План курса (2025) ====
  
 ^№^Тема^ ^№^Тема^
Line 27: Line 29:
 |4.| Совместная разработка. Непрерывная интеграция. Гибкие процессы разработки. | |4.| Совместная разработка. Непрерывная интеграция. Гибкие процессы разработки. |
 |5.| Процесс анализа данных. Исследовательский анализ (EDA). Представление результатов. | |5.| Процесс анализа данных. Исследовательский анализ (EDA). Представление результатов. |
-|6.| Тестирование систем анализа данных. Методы модульного тестирования. Инструменты. | +|6.| Повторное использование. Объектные методы. Структуры репозиториев. | 
-|7.| Тестирование инвариантами. Adversarial testing. Тестирование наукоемкого ПО. | +|7.| Тестирование систем анализа данных. Методы модульного тестирования. Инструменты автоматизации поставки, контейнеризация. | 
-|8.| Введение в Domain Driven Design. Микросервисы и DevOps. Контейнеризация Docker. | +|8.| Тестирование инвариантами. Атаки с соперником на модели ML. Методы противодействия. | 
-|9.| Реализация микросервисов в Python для поставки моделейСоздание APIПринципы REST и HATEOAS. |+|9.| Проблема повторяемости экспериментов. Гипотезы и планирование экспериментаКонфигурацияЛаборатория данных |
 |10.| Хранение данных. Релационная, колоночная, документная и др. модели. Транзакции ACID. Распределенные СУБД. CAP и BASE. | |10.| Хранение данных. Релационная, колоночная, документная и др. модели. Транзакции ACID. Распределенные СУБД. CAP и BASE. |
-|11.| Архитектуры систем Big Data. Обзор MapReduceЛямбда архитектура. Технологический стек SMACK/CASK. | +|11.| Продуктивизация ML в виде сервисовРеализация микросервисов в Python для поставки моделей. Создание API. Принципы REST и HATEOAS. | 
-|12.| Обработка данных в Spark/PySpark. Представление данных. RDD, Dataframe, Dataset. Оптимизация планов исполнения. | +|12.| Облачные приложения. Инфраструктура Kubernetes (pods, svcs, jobs, etc ) для размещения ML сервисов. | 
-|13.| Повторяемость экспериментов. Контроль версий данных. Процесс MLOpsПрограммные инструменты. |+|13.| Технологии GitOps, MLOps. Элементы технологий сжатия и ускорения моделей. Средства представления API моделейСтандартные протоколы. | 
  
  
 ==== Курсовой проект ==== ==== Курсовой проект ====
  
-Курсовой проект посвящен созданию собственного микросервиса с моделью машинного обучения в соответствии с процессами CI/CD.+Курсовой проект посвящен созданию собственного микросервиса с моделью машинного обучения в соответствии с процессами CI/CD или разработки повторно-используемой библиотеки с реализацией алгоритмом решения прикладной ML задачи.
  
 Задания выполняются в соответствии с процессом Scrum и CI/CD. Каждое задание - это отдельный спринт. Задания выполняются в соответствии с процессом Scrum и CI/CD. Каждое задание - это отдельный спринт.
Line 46: Line 49:
 |1.| Документирование и ревью кода | |1.| Документирование и ревью кода |
 |2.| Реализация модели. Структурирование программы | |2.| Реализация модели. Структурирование программы |
-|3.| Контейнеризация и модульное тестирование |+|3.| Автоматизация поставки и модульное тестирование |
 |4.| Тестирование. Непрерывная интеграция | |4.| Тестирование. Непрерывная интеграция |
-|5.| Реализация микросервиса. Использования СУБД | +|5.| Реализация микросервиса или микроесервиса. Использования СУБД. Воспроизводимое обучение 
-|6.| Размещение сервиса в облаке |+|6.| Размещение сервиса в облаке, публикация библиотеки. |
  
  
Line 58: Line 61:
  
 ==== Литература ==== ==== Литература ====
 +
 +=== Основная литература ===
  
   - Материалы лекций   - Материалы лекций
   - Davy Cielen, Arno D.B. Meysman, Mohamed Ali. Introducing Data Science (book)   - Davy Cielen, Arno D.B. Meysman, Mohamed Ali. Introducing Data Science (book)
   - NoSQL Distilled (book)   - NoSQL Distilled (book)
-  - A Survey on NoSQL Stores (2018) ACM CSUR (paper)+  - Poulton, N., 2023. The kubernetes book. NIGEL POULTON LTD. (book)
   - Kanewala U., Bieman J.M. Testing scientific software: A systematic literature review (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)   - 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)   - The Art of Software Testing - Second Edition (book)
 +  - Serban, A., Poll, E., & Visser, J. (2020). Adversarial examples on object recognition: A comprehensive survey. ACM Computing Surveys (CSUR), 53(3), 1-38.
   - Tarek Ziade. Python Microservices Development (book)   - Tarek Ziade. Python Microservices Development (book)
   - ГОСТ Р ИСО/МЭК 25010-2015. Модели качества (standard)   - ГОСТ Р ИСО/МЭК 25010-2015. Модели качества (standard)
 +
 +=== Дополнительные статьи ===
 +
 +  - Yakusheva, S. F., & Khritankov, A. S. (2024). A systematic review of methods for deriving metamorphic relations. Программные системы: теория и приложения, 15(2), 37-86. (paper)
 +  - A Survey on NoSQL Stores (2018) ACM CSUR (paper)
   - Test your Machine Learning Algorithm with Metamorphic Testing https://trustable.ai/testing-ai-metamorphic-testing/ (paper)   - Test your Machine Learning Algorithm with 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/ (paper) 
   - MapReduce Design Patterns. Book. Donald Miner, Adam Shook (book)   - 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)   - (2018) On Reproducible AI: Towards Reproducible Research, Open Science, and Digital Scholarship in AI Publications (paper)
 +  - Recent developments in Adversarial Example https://trustable.ai/recent-developments-in-adversarial-example-part-i/ (paper)
  
 ==== Контакты ==== ==== Контакты ====