Направление 09.03.04 «Программная инженерия», профиль «ТОП-ИТ: Разработка и сопровождение программного обеспечения», МТУСИ, кафедра «Программная инженерия». Дисциплина Б1.О.30, 2 курс, 4 учебный семестр, форма промежуточной аттестации — экзамен.
Репозиторий содержит рабочую программу дисциплины (РПД) и фонд оценочных средств (ФОС): контрольно-измерительные материалы (КИМ) лабораторных работ, дополнительных практических заданий по кейсам индустриальных партнёров, банков тестов и экзамена. Структура следует шаблону репозитория fundamentals-of-ann.
Цель — изучение фундаментальных принципов организации и эффективного управления данными, базовых структур данных и алгоритмов их обработки (Python, C/C++, Java), развитие навыков анализа сложности алгоритмов и выбора оптимальных структур данных. Особое внимание — навыкам критической проверки и верификации программных решений, полученных с использованием технологий ИИ (см. docs/ai-verification.md).
Состав дисциплины (один семестр): 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 |
| Экзамен (письменный тест; балл 10-балльной рубрики × 3,0) | 30 |
| Итого (потолок БРС) | 100 |
Текущий контроль даёт до 74 баллов, экзамен — до 30. Номинальная сумма составляющих равна 104 баллам; итоговый балл ограничивается потолком БРС в 100 баллов. Результаты кейс-чемпионата (см.
Cases/) учитываются в порядке, установленном для дополнительных практических заданий.
| Оценка | Условие (сумма — баллы текущего контроля и экзамена, не более 100) | Уровень сформированности компетенций |
|---|---|---|
| Отлично (5) | Сумма не менее 84 баллов и балл экзаменационной рубрики не ниже 8 | высокий |
| Хорошо (4) | Сумма не менее 70 баллов; без экзамена — при 60 и более баллах текущего контроля | хороший |
| Удовлетворительно (3) | Сумма не менее 55 баллов | достаточный |
| Неудовлетворительно (2) | Сумма менее 55 баллов или балл экзаменационной рубрики ниже 4 | недостаточный |
- Допуск к экзамену — выполнение и защита всех лабораторных работ.
- Автомат «хорошо» — при 60 и более баллах текущего контроля (ЛР, тестирования и ДЗ, из 74) и защите всех лабораторных работ; экзамен для такого обучающегося необязателен.
- «Отлично» — только по результатам экзамена. Получивший «хорошо» автоматически вправе писать экзамен на «отлично»: ему достаточно балла рубрики 8 (60 + 24 = 84). Если «отлично» не получено, сохраняется «хорошо».
- Экзамен сдан, если балл экзаменационной рубрики не ниже 4 (не менее 12 баллов БРС). При уровне 0–3 (незнание основной части программного материала) выставляется «неудовлетворительно» независимо от баллов текущего контроля; автомат «хорошо» при этом сохраняется.
- Баллы текущего контроля и сумма округляются до целого по правилам математического округления.
- Шкала отличается от раздела «Экзамен» ФОС актуализации 2026 (там 68 / 58 / 47 и нет автомата); обоснование и минимальные баллы экзамена для каждой оценки — в
methodical-guidelines/teachers-assessment/, требования к каждой оценке — вExam/rubric-01-final-test.md.
- Рубрика каждой ЛР, ДЗ и экзамена — 10-балльная с уровнями 10 / 8 / 6 / 4 / 0–3; в БРС балл рубрики умножается на коэффициент составляющей (0,6 для ЛР; 0,2/0,3 для ДЗ; 3,0 для экзамена).
- Критерии рубрик соответствуют ФОС дисциплины: корректность реализации, вычислительная эффективность, полнота верификации, качество и оформление кода, обоснованность выводов — веса см. в
methodical-guidelines/teachers-assessment/.
- Лекционные материалы для обучающихся —
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. - Изменения БРС вносятся согласованно: § 4 настоящего README, § 6
docs/rpd.md,Exam/,methodical-guidelines/teachers-assessment/и раздел «Связь с БРС» каждой рубрики.
Дополнительные практические задания построены на кейсах, включённых в РПД актуализации 2026:
- «Семантический подбор резюме и вакансий» (hh.ru) — ДЗ 4;
- «Обнаружение аномалий в журналах событий ОС» (ГК «Астра») — ДЗ 3;
- «Скоринг подозрительных вакансий» (hh.ru) — признаковая часть доступна как вариант ДЗ 3; полное развёртывание (жадные стратегии и ДП при отборе признаков) выходит за рамки разделов 1–4.
Порядок интеграции кейсов и таблицы рисков — в документе кафедры «Алгоритм интеграции практико-ориентированных кейсов индустриальных партнёров в РПД и ФОС» (2026).
Состав и вклад участников — в team/README.md.
CC BY 4.0 — см. LICENSE.md. © ФГБОУ ВО МТУСИ, кафедра «Программная инженерия», 2026.