Автоматизация программирования весна 2026 — различия между версиями
Yakusheva (обсуждение | вклад) (→Описание) |
Yakusheva (обсуждение | вклад) (→Описание) |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| + | |||
| + | '''Дисклеймер: данная информация дублирует информацию с '''[https://objectoriented.ru/apmdd сайта курса]''' .''' | ||
| + | |||
== Описание == | == Описание == | ||
| − | |||
| − | |||
Курс посвящен применению интеллектуальных методов (machine learning) и средств автоматизации в информатике (computer science) и программной инженерии (software engineering). | Курс посвящен применению интеллектуальных методов (machine learning) и средств автоматизации в информатике (computer science) и программной инженерии (software engineering). | ||
Текущая версия на 15:31, 30 января 2026
Дисклеймер: данная информация дублирует информацию с сайта курса .
Содержание
Описание
Курс посвящен применению интеллектуальных методов (machine learning) и средств автоматизации в информатике (computer science) и программной инженерии (software engineering).
В первой части курса студентам предлагается познакомиться с методами автоматического создания программ с применением грамматик, предметно-ориентированных языков, машинного обучения и NLP, с методами верификации и тестирования сложных систем с применением автоматических и модельно-ориентированных подходов, средств детерминированной и стохастической проверки моделей.
Вторая часть курса посвящена выполнению небольшого исследовательского проекта, направленного на изучение выбранной темы в автоматизации программирования, проведении обзора и анализе выбранной публикации, повторения экспериментальных результатов.
Форма отчетности по курсу: дифференцированный зачет.
Альтернативные варианты сдачи курса
- Сдача экстерном
Для уточнения возможности и условий сдачи курса экстерном, свяжитесь с лектором курса в течение первых четырех недель курса.
- Перезачет
Курс может быть перезачтен, если он уже был пройден с оценкой "хорошо" или "отлично". В противном случае курс необходимо сдать повторно.
Система оценивания
- Оценка за дифференцированный зачет по курсу выставляется преподавателем с учетом баллов, набранных при основении курса в течение семестра.
- Итоговые баллы = Лабораторные работы (50%) + исследовательский проект (50%).
- Всего для получения оценки отл(10) нужно 60 баллов из 82 максимально возможных.
- Каждая лабораторная работа дает до 10 баллов при сдаче вовремя. 30 баллов - это 50% оценки. Максимум 40 баллов - это 67%. Пропуск срока по лабораторной - штраф 50%. Если за лабораторную набрано менее 50% баллов, они не засчитываются.
- При пропусках занятий более 2-х раз или недостаточном количестве баллов (в сумме менее 24 баллов) к концу двенадцатой недели курса, или невыполнении исследовательского проекта, для получения оценки по курсу нужно пройти устный опрос по билетам по темам курса (добавит до 12 баллов до оценки удовл., на усмотрение преподавателя). Если и в этом случае баллов недостаточно, невыполненные задания по курсу могут быть сделаны к пересдаче.
Сдача лабораторных работ
Темы
- Лабораторная работа 0 вступительная - автоматические методы (до XX.XX)
- Лабораторная работа 1 по DSL - создание языка для Karel (до XX.XX)
- Лабораторная работа 2 по синтезу программ - NPS для Karel (до XX.XX)
- Лабораторная работа 3 по metamorphic testing (до XX.XX)
- Лабораторная работа 4 по верификации блокчейн (до XX.XX)
Каждая лабораторная работа дает до 10 баллов при сдаче вовремя. 30 баллов - это 50% оценки. Максимум 40 баллов - это 67%. Пропуск срока по лабораторной - штраф в половину баллов.
Лабораторные работы поделены на задания. За каждое задание засчитывается указанное в нем число баллов. Если за лабораторную набрано менее 50% баллов, они не засчитываются.
Ориентировочные критерии оценки заданий лабораторных работ:
- правильность выполнения задач и ответов на вопросы, сформулированные в лабораторной работе,
- полнота решения, доля решенных пунктов и отвеченных вопросов,
- понимание примененных методов и способность аргументировать решение и разобраться и исправить ошибки.
Исследовательский проект
Проект включает два задания на выбранную и согласованную тему: проведение систематического обзора и повторение вычислительного эксперимента.
Ориентировочные критерии оценки исследовательского проекта:
- степень погружения и освоения выбранной темы проекта
- следование методам проведения исследований, наличие и качество выполнения сопровождающих проект артефактов (таблиц, отчетов, слайдов)
- научная ценность проведенного исследования, пригодность результатов для представления на научной конференции
Баллы за исследовательский проект складываются из баллов за выбор и обоснование темы (5 баллов), выполнение систематического обзора (10 баллов), повторение эксперимента (10 баллов), выступление с финальным докладом (5 баллов). Итого за проект - максимум 30 баллов.
Из суммы баллов за исследовательский проект вычитается 50% от максимальной суммы, результат умножается на 2. Нулевая и отрицательная оценка не засчитывается и считается равной нулю.
Систематический обзор
Систематический обзор литературы в определенной области - это метод исследования предметной области с целью получения ответов на интересующие вопросы. Систематический обзор, при должном исполнении, может быть отнесен к методам исследований, которые допускают проверку и повторение результатов.
Порядок выполнения систематического обзора приведен в таблице ниже. Результаты систематического обзора оформляются в виде набора документов
- полный список источников (long list)
- список отобранных источников (short list)
- отчет с результатами
| № | Что делать | Результат | Отчетность |
|---|---|---|---|
| 1 | Сформулировать цели проведения обзора | Формулировка цели, перечень вопросов (Research Questions, напр. RQ1, RQ2..) | Отдельный раздел в отчете с результатами |
| 2 | Описать протокол поиска источников | Приведен перечень баз данных, библиографический и реферативных баз, сформулированы критерии поиска в них (поисковые запросы) | Отдельный раздел в отчете с результатами |
| 3 | Сформулировать критерии выбора источников | Требования, предъявляемые к источникам и их содержанию для включения в обзор (полезна ли информация для ответа на вопросы, качественная ли она и т.д.) | Отдельный раздел в отчете с результатами |
| 4 | Выполнить поиск источников согласно протоколу | Полный список найденных источников | Таблица с полным списком в отдельном документе |
| 5 | Отобрать источники из полного списка, при необходимости вернуться к п.4 | Список отобранных источников | Таблица с отобранными источниками в отдельном документе |
| 6 | По каждому вопросу исследования собрать информацию из отобранных источников | Ответ на вопрос с отсылками к источникам | Для каждого вопроса - отдельный подраздел |
| 7 | Подготовить заключение: удалось ли ответить на вопросы, сделать выводы | Выводы о достижении цели обзора, рекомедации по использованию результатов обзора | Отдельный раздел отчета с результатами |
Литература:
- Kitchenham, B.A. and S. Charters (2007) Guidelines for performing systematic literature reviews in software engineering, Technical Report EBSE-2007-01, School of Computer Science and Mathematics, Keele University.
- См. также слайды.
Повторение эксперимента
Повторение опубликованных ранее результатов другими исследователями - важная процедура в научном исследовании, направленная на выявления неточностей, расхождений, неполноты в опубликованных результатах исследований и методах и достижения.
Порядок повторения результатов по теме приведен в таблице ниже. Результаты фиксируются в следующих документах
- отчет о повторении результатов
- исходный код и данные
Требования к статье для повторения
- должен быть доступен исходный код для основного результата статьи
- доступны данные, использованные в статье
- результат отражает state-of-the-art
| № | Что делать | Результат | Где фиксируется результат |
|---|---|---|---|
| 1 | Найти и согласовать статью, актуальную для темы | Выбрана статья для повторения результатов. | В электронной почте, в первом разделе отчета |
| 2 | Получить и сохранить код и данные, проверить возможность использования | Готовый к исполнению код, данные для проведения эксперимента | Исходный код и данные (выложены для доступа) |
| 3 | Повторить эксперимент по описанию в статье | Выявлены отклонения и неточности в описании эксперимента, упущения и пропуски | Раздел в отчете о повторении результатов |
| 4 | Сравнить результаты с полученными в статье | Получены собственные количественные результаты эксперимента, указаны расхождения с результатами в статье | Раздел в отчете о повторении результатов |
| 5 | Сделать выводы о повторяемости результатов статьи | Выводы о повторяемости результатов статьи и возможности их использования | Раздел в отчете о повторении результатов |
Литература
- Geir Kjetil Sandve, Anton Nekrutenko, James Taylor, Eivind Hovig. Ten Simple Rules for Reproducible Computational Research
- См. также сайт reproducibleresearch.net
Контакты
Хританков Антон Сергеевич, соавтор курса, читает разделы по машинному обучению и исследовательскому проекту, prog.autom [at] gmail.com
Федотов Иван Андреевич, соавтор курса, рассказывает про верификацию распределенных блокчейн систем и проверку моделей.
Якушева Софья Федоровна, соавтор курса, читает разделы по тестированию и верификации.
Темы курса
- Введение в автоматические методы разработкии. Организационные вопросы, программа курса. Критерии оценки.
- Предметно-ориентированные языки. DSL. Грамматики. Парсеры. Разработка языков.
- Анализ кода репозиториев. Индукция и синтез программ. Задача программирования на естественном языке. Задача для робота Karel
- Методы синтеза программ. Элементы обучения с подкреплением. Beam search. Execution. Partial programs, Meta-induction. Language models
- Введение в тестирование. Моделирование и верификация программ. Модели конечных автоматов, pre- post- условий. *Генерация тестов. Мутационное тестирование
- Автоматизация тестирования. Фаззинг. Тестирование свойств. Инварианты. Применения к различным задачам
- Формальные методы верификации. Введение в блокчейн и смарт контракты. Применение метода “Проверка модели” для верификации блокчейн систем. Статистические методы верификации.
- Систематичекий обзор. Поиск и изучение литературы. Systematic Literature Review (SLR). Mapping Study. Link Review.
- Проблемы воспроизводимости в научных исследованиях. Методы и программные средства автоматизации воспроизводимых экспериментов. Оформление и требования к эксперименту. Анализ результатов.