Направление 09.03.04 «Программная инженерия», профиль «ТОП-ИТ: Разработка и сопровождение программного обеспечения», МТУСИ, кафедра «Программная инженерия». Дисциплина Б1.О.30, 2 курс, 4 учебный семестр (первый семестр курса), форма промежуточной аттестации — зачёт.
Репозиторий содержит рабочую программу первого семестра дисциплины (РПД) и фонд оценочных средств (ФОС): контрольно-измерительные материалы (КИМ) лабораторных работ, дополнительных практических заданий по кейсам индустриальных партнёров, банков тестов и зачёта. Структура следует шаблону репозитория fundamentals-of-ann.
Цель — изучение фундаментальных принципов организации и эффективного управления данными, базовых структур данных и алгоритмов их обработки (Python, C/C++, Java), развитие навыков анализа сложности алгоритмов и выбора оптимальных структур данных. Особое внимание — навыкам критической проверки и верификации программных решений, полученных с использованием технологий ИИ (см. docs/ai-verification.md).
Состав семестра 1: 8 лекций (16 ч) + 8 лабораторных работ (32 ч) + 4 промежуточных тестирования + 4 дополнительных практических задания (на материалах кейсов индустриальных партнёров hh.ru и ГК «Астра») + зачёт. Разделы 1–4 тематического плана. Общая трудоёмкость семестра — 108 ч.
Компетенции: ОПК-6 (индикаторы ОПК-6.1–6.4, соответствуют ППК-Р1.1/Р1.4/Р1.5/Р1.6) и ОПК-7 (индикаторы ОПК-7.1, ОПК-7.2). Новые коды индикаторов не вводятся.
Подробнее — в docs/rpd.md.
Связка результатов обучения с индикаторами компетенций и оценочными средствами. Машиночитаемая матрица — в data/kim-indicator-matrix.csv.
| Модуль / КИМ | Тема | Индикаторы | Форма контроля | КИМ |
|---|---|---|---|---|
| M1 / ЛР 1 | Анализ временной сложности элементарных алгоритмов | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-01 |
| M1 / ЛР 2 | Рекурсия, динамический массив, стек и дек | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-02 |
| M2 / ЛР 3 | Простые сортировки и QuickSort с рандомизацией | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-03 |
| M2 / ЛР 4 | MergeSort, Counting, Radix, HeapSort | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-04 |
| M3 / ЛР 5 | Бинарное дерево поиска: построение, обходы, вставка, удаление | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-05 |
| M4 / ЛР 6 | Линейный, бинарный и интерполяционный поиск | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-06 |
| M4 / ЛР 7 | Поиск подстрок: КМП, Рабин–Карп, Бойер–Мур | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-07 |
| M4 / ЛР 8 | Хеш-таблица с цепочечным хешированием | ОПК-6.1, ОПК-7.2, ОПК-6.3, ОПК-6.4 | Текущая | КИМ-08 |
| Cases / ДЗ 1 | Верификация ИИ-сгенерированной сортировки | ОПК-6.1, ОПК-6.2, ОПК-7.2 | Текущая | КИМ-01 |
| Cases / ДЗ 2 | Эксперимент: высота BST и деградация операций | ОПК-6.1, ОПК-7.1, ОПК-7.2 | Текущая | КИМ-02 |
| Cases / ДЗ 3 | Кейс ГК «Астра»: аномалии в журналах событий ОС | ОПК-6.1, ОПК-6.2, ОПК-7.1, ОПК-7.2 | Текущая | КИМ-03 |
| Cases / ДЗ 4 | Кейс hh.ru: семантический подбор по эмбеддингам | ОПК-6.1, ОПК-6.2, ОПК-7.1, ОПК-7.2 | Текущая | КИМ-04 |
| Тесты 1–4 | Промежуточные тестирования по разделам 1–4 | ОПК-6.1, ОПК-7.1, ОПК-7.2 | Текущая | test-banks |
| Exam | Зачёт (письменный тест) | ОПК-6.1–6.4; ОПК-7.1, ОПК-7.2 | Промежуточная | КИМ-01 |
Каждый КИМ содержит: назначение и формируемые результаты, привязку к компетенциям, цель, условия проведения, материалы и ресурсы, пошаговое задание, формат сдачи, критерии и шкалу, правила использования генеративного ИИ, вопросы для защиты.
| Группа | Расположение |
|---|---|
| Модуль 1 «Введение и базовые структуры» (ЛР 1–2) | M1-intro-and-basic-structures/ |
| Модуль 2 «Алгоритмы сортировки» (ЛР 3–4) | M2-sorting/ |
| Модуль 3 «Деревья и иерархические структуры» (ЛР 5) | M3-trees/ |
| Модуль 4 «Алгоритмы поиска и хеш-таблицы» (ЛР 6–8) | M4-search-and-hashing/ |
| Дополнительные практические задания / кейсы (ДЗ 1–4) | Cases/ |
| Зачёт (Exam) | Exam/ |
Применяется балльно-рейтинговая система (БРС), максимум 100 баллов.
| Составляющая | Баллы |
|---|---|
| Выполнение и защита 8 лабораторных работ (балл 10-балльной рубрики × 0,6 — до 6 баллов БРС за ЛР) | 48 |
| Промежуточные тестирования № 1–4 (по 4 балла) | 16 |
| Дополнительные практические задания № 1–4 (рубрика × 0,2 для ДЗ 1–2 и × 0,3 для ДЗ 3–4: 2+2+3+3) | 10 |
| Зачёт (письменный тест) | 30 |
| Итого (потолок БРС) | 100 |
Номинальная сумма составляющих равна 104 баллам; итоговый балл ограничивается потолком БРС в 100 баллов. При наборе более 70 баллов по итогам семестра зачёт выставляется автоматически, без письменного теста. Результаты кейс-чемпионата (см.
Cases/) учитываются в порядке, установленном для дополнительных практических заданий.
- Рубрика каждой ЛР/ДЗ — 10-балльная с уровнями 10 / 8 / 6 / 4 / 0–3; в БРС балл рубрики умножается на коэффициент составляющей (0,6 для ЛР; 0,2/0,3 для ДЗ).
- Критерии рубрик соответствуют ФОС дисциплины: корректность реализации, вычислительная эффективность, полнота верификации, качество и оформление кода, обоснованность выводов — веса см. в
methodical-guidelines/teachers-assessment/. - Допуск к зачёту — выполнение и защита всех лабораторных работ.
| Результат зачёта | Условие |
|---|---|
| Зачтено | Более 70 баллов БРС (автомат) либо успешное написание зачётного теста |
| Незачтено | Незнание основной части программного материала |
- Лекционные материалы для обучающихся —
lectures/. - Обучающимся —
methodical-guidelines/students/. - Преподавателям (оценивание) —
methodical-guidelines/teachers-assessment/. - Преподавателям (ресурсы) —
methodical-guidelines/teachers-resources/.
- Окружение —
requirements.txt(Python 3.10+); настройка, seed по варианту и методика бенчмаркинга —docs/reproducibility.md. - Методика верификации ИИ-решений (сквозная для всех КИМ) —
docs/ai-verification.md. - Стартовые заготовки для всех ЛР и ДЗ — в
attachments/модулей. - Генерация данных —
scripts/generate_data.py(массивы, тексты, журналы событий, псевдо-эмбеддинги; детерминированно по seed варианта). - Smoke-тесты окружения —
pytest tests/(секунды, CPU): версии пакетов, воспроизводимость генераторов. - Проверка ссылок и структуры —
python scripts/check_links.py: внутренние ссылки и якоря, пары КИМ/рубрика, обязательные разделы КИМ, шкала рубрик, согласованность БРС. Запускается в CI (.github/workflows/check.yml) на каждый push и pull request.
data-structures-and-algorithms/
├── README.md (этот файл)
├── LICENSE.md
├── .gitignore
├── requirements.txt (окружение Python)
├── scripts/ (генерация данных, проверка ссылок и структуры)
├── tests/ (smoke-тесты окружения)
├── docs/ (РПД, воспроизводимость, верификация ИИ-решений)
├── lectures/ (лекционные материалы)
├── M1-intro-and-basic-structures/ (ЛР 1–2 + рубрики + заготовки)
├── M2-sorting/ (ЛР 3–4 + рубрики + заготовки)
├── M3-trees/ (ЛР 5 + рубрика + заготовка)
├── M4-search-and-hashing/ (ЛР 6–8 + рубрики + заготовки)
├── Cases/ (ДЗ 1–4 на кейсах hh.ru и ГК «Астра»)
├── Exam/ (зачёт)
├── methodical-guidelines/ (students, teachers-assessment, teachers-resources)
├── resources/ (textbooks, datasets, software, test-banks, problem-banks, …)
├── data/ (матрица «КИМ ↔ индикатор»)
├── team/
└── other/
- Изучить
docs/rpd.mdи исходные документы дисциплины (РПД и ФОС актуализации 2026, хранятся на кафедре ПИ). - Сверить коды индикаторов с матрицей
data/kim-indicator-matrix.csv. - После любых правок документов запускать
python scripts/check_links.py. - Материалы второго семестра курса (разделы 5–7: жадные алгоритмы и ДП, графы, продвинутые концепции; экзамен) добавляются модулями M5–M7 без изменения настоящей структуры.
Дополнительные практические задания построены на кейсах, включённых в РПД актуализации 2026:
- «Семантический подбор резюме и вакансий» (hh.ru) — ДЗ 4;
- «Обнаружение аномалий в журналах событий ОС» (ГК «Астра») — ДЗ 3;
- «Скоринг подозрительных вакансий» (hh.ru) — признаковая часть доступна как вариант ДЗ 3; полное развёртывание (жадные стратегии и ДП при отборе признаков) — во втором семестре курса.
Порядок интеграции кейсов и таблицы рисков — в документе кафедры «Алгоритм интеграции практико-ориентированных кейсов индустриальных партнёров в РПД и ФОС» (2026).
Состав и вклад участников — в team/README.md.
CC BY 4.0 — см. LICENSE.md. © ФГБОУ ВО МТУСИ, кафедра «Программная инженерия», 2026.