## 40 тем для докладов и презентаций ### Раздел 1. Математическая логика в программировании 1. Логические операторы в языках программирования: от булевой алгебры до ветвлений. 2. Таблицы истинности и их применение для оптимизации условий в коде. 3. Законы де Моргана: как упрощать сложные логические выражения в условных операторах. 4. Схемы приоритетов логических операций (AND, OR, NOT) — почему в Python и Java разные нюансы. 5. Предикаты и кванторы: проверка условий в массивах и коллекциях (any, all, exists). 6. Логический вывод в системах проверки типов (TypeScript, MyPy). 7. Проблема выполнимости булевых формул (SAT) и её роль в тестировании ПО. 8. Логика Хоара: формальная верификация простых алгоритмов (пред- и постусловия). ### Раздел 2. Теория множеств и типы данных 9. Множества в математике и структуры данных set/hashset: сходства и различия. 10. Операции над множествами (объединение, пересечение, разность) как аналоги SQL-операторов (UNION, INTERSECT, EXCEPT). 11. Декартово произведение множеств и его связь с JOIN в реляционных базах данных. 12. Отношения и функции: что такое «сюръекция» и «инъекция» в контексте отображений в API. 13. Классы эквивалентности и их применение для группировки данных (MapReduce, группировка в SQL). ### Раздел 3. Комбинаторика и теория вероятностей в IT 14. Комбинаторные принципы в тестировании: попарное тестирование (pairwise testing). 15. Подсчёт количества паролей: правило суммы и произведения на практике. 16. Сочетания и бином Ньютона: как работает биномиальная куча в алгоритмах приоритетных очередей. 17. Размещения и перестановки для генерации тестовых данных (permutations в Python). 18. Принцип Дирихле (принцип ящиков) и коллизии хеш-функций. ### Раздел 4. Теория графов и структуры данных 19. Графы: матрица смежности vs список смежности — что быстрее для социальных сетей. 20. Алгоритм Дейкстры и математическое обоснование кратчайших путей. 21. Обходы графов (DFS/BFS) в поисковых системах и социальных графах. 22. Эйлеровы и гамильтоновы циклы: задача коммивояжёра и оптимизация маршрутов доставки. 23. Планарные графы и дизайн печатных плат (PCB layout). 24. Двудольные графы: рекомендательные системы и задача о назначениях. 25. Минимальные остовные деревья: алгоритмы Прима и Краскала для построения сетей. ### Раздел 5. Алгоритмы, рекурсия и индукция 26. Математическая индукция — доказательство корректности рекурсивных функций. 27. Рекуррентные соотношения и анализ сложности рекурсивных алгоритмов (базовый уровень). 28. Алгоритм быстрой сортировки: доказательство через индуктивный инвариант. 29. Ханойские башни — классический пример рекурсии и экспоненциальной сложности. 30. Жадные алгоритмы и матроиды: почему жадность работает для задачи о выборе заявок. ### Раздел 6. Булевы функции и цифровая логика 31. Булевы функции и логические вентили: от математики к цифровым схемам процессора. 32. СДНФ и СКНФ: минимизация логических схем (карты Карно). 33. Полные системы булевых функций: почему набор {И, НЕ} — базис для всей цифровой логики. 34. Сумматор и триггер: как дискретная математика лежит в основе АЛУ. ### Раздел 7. Теория кодирования и информационная безопасность 35. Коды Хэмминга: обнаружение и исправление ошибок в памяти RAM. 36. Циклические коды и контрольные суммы (CRC) в сетевых протоколах. 37. Хеш-функции с точки зрения отображения множеств: коллизии и криптостойкость. 38. Коды Рида-Соломона в QR-кодах и компакт-дисках. ### Раздел 8. Формальные языки и автоматы 39. Конечные автоматы как математическая модель лексического анализатора (регулярные выражения). 40. Контекстно-свободные грамматики и синтаксический разбор: связь с деревьями вывода в компиляторах. --- ## Система оценивания доклада и презентации (макс. 100 баллов) Оценивается как содержание, так и защита. ### 1. Содержание доклада (40 баллов) - **Полнота раскрытия темы (15)** – есть ли введение, основная часть, примеры из ИТ, заключение. - **Терминологическая точность (10)** – правильное использование мат. понятий (множества, графы, кванторы и т.д.). - **Связь с практикой (10)** – приведены реальные примеры из программирования, баз данных, тестирования, сетей. - **Актуальность / примеры из современных технологий (5)** – упоминание конкретных языков, алгоритмов, инструментов. ### 2. Качество презентации (30 баллов) - **Структура и логика слайдов (10)** – титульный слайд, оглавление, заголовки, заключение, слайд «вопросы». - **Визуальное оформление (10)** – читаемый шрифт, минимум текста, схемы/графики вместо длинных формул, единый стиль. - **Наглядность примеров (10)** – блок-схемы, графы, таблицы истинности, фрагменты кода (в читаемом виде). ### 3. Подача и защита (30 баллов) - **Владение материалом (10)** – студент не читает с листа, свободно объясняет термины. - **Тайминг (5)** – укладывается в регламент (обычно 5–7 минут). - **Ответы на вопросы (10)** – понятные, по существу, демонстрирует понимание. - **Привлечение внимания аудитории (5)** – контакт с группой, логические переходы, отсутствие монотонности. ### Шкала перевода в оценку. - **85–100 баллов** – отлично (5) - **70–84** – хорошо (4) - **50–69** – удовлетворительно (3) - **0–49** – неудовлетворительно (2, но в рамках учебного доклада обычно просят доработать) ### Доп рекомендасьен: - На 1 слайде – не более 5–7 строк текста. - Обязательно приводите маленький пример кода или визуализацию. - Для графов используйте простые редакторы (draw.io, Graphviz online). - Не перегружайте формулами: лучше одна ключевая формула + пояснение, чем 10 формул без контекста.