Files
diskrete_math/README_project1.md

9.4 KiB
Raw Permalink Blame History

40 тем для докладов и презентаций

Раздел 1. Математическая логика в программировании

  1. Логические операторы в языках программирования: от булевой алгебры до ветвлений.
  2. Таблицы истинности и их применение для оптимизации условий в коде.
  3. Законы де Моргана: как упрощать сложные логические выражения в условных операторах.
  4. Схемы приоритетов логических операций (AND, OR, NOT) — почему в Python и Java разные нюансы.
  5. Предикаты и кванторы: проверка условий в массивах и коллекциях (any, all, exists).
  6. Логический вывод в системах проверки типов (TypeScript, MyPy).
  7. Проблема выполнимости булевых формул (SAT) и её роль в тестировании ПО.
  8. Логика Хоара: формальная верификация простых алгоритмов (пред- и постусловия).

Раздел 2. Теория множеств и типы данных

  1. Множества в математике и структуры данных set/hashset: сходства и различия.
  2. Операции над множествами (объединение, пересечение, разность) как аналоги SQL-операторов (UNION, INTERSECT, EXCEPT).
  3. Декартово произведение множеств и его связь с JOIN в реляционных базах данных.
  4. Отношения и функции: что такое «сюръекция» и «инъекция» в контексте отображений в API.
  5. Классы эквивалентности и их применение для группировки данных (MapReduce, группировка в SQL).

Раздел 3. Комбинаторика и теория вероятностей в IT

  1. Комбинаторные принципы в тестировании: попарное тестирование (pairwise testing).
  2. Подсчёт количества паролей: правило суммы и произведения на практике.
  3. Сочетания и бином Ньютона: как работает биномиальная куча в алгоритмах приоритетных очередей.
  4. Размещения и перестановки для генерации тестовых данных (permutations в Python).
  5. Принцип Дирихле (принцип ящиков) и коллизии хеш-функций.

Раздел 4. Теория графов и структуры данных

  1. Графы: матрица смежности vs список смежности — что быстрее для социальных сетей.
  2. Алгоритм Дейкстры и математическое обоснование кратчайших путей.
  3. Обходы графов (DFS/BFS) в поисковых системах и социальных графах.
  4. Эйлеровы и гамильтоновы циклы: задача коммивояжёра и оптимизация маршрутов доставки.
  5. Планарные графы и дизайн печатных плат (PCB layout).
  6. Двудольные графы: рекомендательные системы и задача о назначениях.
  7. Минимальные остовные деревья: алгоритмы Прима и Краскала для построения сетей.

Раздел 5. Алгоритмы, рекурсия и индукция

  1. Математическая индукция — доказательство корректности рекурсивных функций.
  2. Рекуррентные соотношения и анализ сложности рекурсивных алгоритмов (базовый уровень).
  3. Алгоритм быстрой сортировки: доказательство через индуктивный инвариант.
  4. Ханойские башни — классический пример рекурсии и экспоненциальной сложности.
  5. Жадные алгоритмы и матроиды: почему жадность работает для задачи о выборе заявок.

Раздел 6. Булевы функции и цифровая логика

  1. Булевы функции и логические вентили: от математики к цифровым схемам процессора.
  2. СДНФ и СКНФ: минимизация логических схем (карты Карно).
  3. Полные системы булевых функций: почему набор {И, НЕ} — базис для всей цифровой логики.
  4. Сумматор и триггер: как дискретная математика лежит в основе АЛУ.

Раздел 7. Теория кодирования и информационная безопасность

  1. Коды Хэмминга: обнаружение и исправление ошибок в памяти RAM.
  2. Циклические коды и контрольные суммы (CRC) в сетевых протоколах.
  3. Хеш-функции с точки зрения отображения множеств: коллизии и криптостойкость.
  4. Коды Рида-Соломона в QR-кодах и компакт-дисках.

Раздел 8. Формальные языки и автоматы

  1. Конечные автоматы как математическая модель лексического анализатора (регулярные выражения).
  2. Контекстно-свободные грамматики и синтаксический разбор: связь с деревьями вывода в компиляторах.

Система оценивания доклада и презентации (макс. 100 баллов)

Оценивается как содержание, так и защита.

1. Содержание доклада (40 баллов)

  • Полнота раскрытия темы (15) – есть ли введение, основная часть, примеры из ИТ, заключение.
  • Терминологическая точность (10) – правильное использование мат. понятий (множества, графы, кванторы и т.д.).
  • Связь с практикой (10) – приведены реальные примеры из программирования, баз данных, тестирования, сетей.
  • Актуальность / примеры из современных технологий (5) – упоминание конкретных языков, алгоритмов, инструментов.

2. Качество презентации (30 баллов)

  • Структура и логика слайдов (10) – титульный слайд, оглавление, заголовки, заключение, слайд «вопросы».
  • Визуальное оформление (10) – читаемый шрифт, минимум текста, схемы/графики вместо длинных формул, единый стиль.
  • Наглядность примеров (10) – блок-схемы, графы, таблицы истинности, фрагменты кода (в читаемом виде).

3. Подача и защита (30 баллов)

  • Владение материалом (10) – студент не читает с листа, свободно объясняет термины.
  • Тайминг (5) – укладывается в регламент (обычно 5–7 минут).
  • Ответы на вопросы (10) – понятные, по существу, демонстрирует понимание.
  • Привлечение внимания аудитории (5) – контакт с группой, логические переходы, отсутствие монотонности.

Шкала перевода в оценку.

  • 85100 баллов отлично (5)
  • 7084 хорошо (4)
  • 5069 – удовлетворительно (3)
  • 049 – неудовлетворительно (2, но в рамках учебного доклада обычно просят доработать)

Доп рекомендасьен:

  • На 1 слайде – не более 5–7 строк текста.
  • Обязательно приводите маленький пример кода или визуализацию.
  • Для графов используйте простые редакторы (draw.io, Graphviz online).
  • Не перегружайте формулами: лучше одна ключевая формула + пояснение, чем 10 формул без контекста.