9.4 KiB
9.4 KiB
40 тем для докладов и презентаций
Раздел 1. Математическая логика в программировании
- Логические операторы в языках программирования: от булевой алгебры до ветвлений.
- Таблицы истинности и их применение для оптимизации условий в коде.
- Законы де Моргана: как упрощать сложные логические выражения в условных операторах.
- Схемы приоритетов логических операций (AND, OR, NOT) — почему в Python и Java разные нюансы.
- Предикаты и кванторы: проверка условий в массивах и коллекциях (any, all, exists).
- Логический вывод в системах проверки типов (TypeScript, MyPy).
- Проблема выполнимости булевых формул (SAT) и её роль в тестировании ПО.
- Логика Хоара: формальная верификация простых алгоритмов (пред- и постусловия).
Раздел 2. Теория множеств и типы данных
- Множества в математике и структуры данных set/hashset: сходства и различия.
- Операции над множествами (объединение, пересечение, разность) как аналоги SQL-операторов (UNION, INTERSECT, EXCEPT).
- Декартово произведение множеств и его связь с JOIN в реляционных базах данных.
- Отношения и функции: что такое «сюръекция» и «инъекция» в контексте отображений в API.
- Классы эквивалентности и их применение для группировки данных (MapReduce, группировка в SQL).
Раздел 3. Комбинаторика и теория вероятностей в IT
- Комбинаторные принципы в тестировании: попарное тестирование (pairwise testing).
- Подсчёт количества паролей: правило суммы и произведения на практике.
- Сочетания и бином Ньютона: как работает биномиальная куча в алгоритмах приоритетных очередей.
- Размещения и перестановки для генерации тестовых данных (permutations в Python).
- Принцип Дирихле (принцип ящиков) и коллизии хеш-функций.
Раздел 4. Теория графов и структуры данных
- Графы: матрица смежности vs список смежности — что быстрее для социальных сетей.
- Алгоритм Дейкстры и математическое обоснование кратчайших путей.
- Обходы графов (DFS/BFS) в поисковых системах и социальных графах.
- Эйлеровы и гамильтоновы циклы: задача коммивояжёра и оптимизация маршрутов доставки.
- Планарные графы и дизайн печатных плат (PCB layout).
- Двудольные графы: рекомендательные системы и задача о назначениях.
- Минимальные остовные деревья: алгоритмы Прима и Краскала для построения сетей.
Раздел 5. Алгоритмы, рекурсия и индукция
- Математическая индукция — доказательство корректности рекурсивных функций.
- Рекуррентные соотношения и анализ сложности рекурсивных алгоритмов (базовый уровень).
- Алгоритм быстрой сортировки: доказательство через индуктивный инвариант.
- Ханойские башни — классический пример рекурсии и экспоненциальной сложности.
- Жадные алгоритмы и матроиды: почему жадность работает для задачи о выборе заявок.
Раздел 6. Булевы функции и цифровая логика
- Булевы функции и логические вентили: от математики к цифровым схемам процессора.
- СДНФ и СКНФ: минимизация логических схем (карты Карно).
- Полные системы булевых функций: почему набор {И, НЕ} — базис для всей цифровой логики.
- Сумматор и триггер: как дискретная математика лежит в основе АЛУ.
Раздел 7. Теория кодирования и информационная безопасность
- Коды Хэмминга: обнаружение и исправление ошибок в памяти RAM.
- Циклические коды и контрольные суммы (CRC) в сетевых протоколах.
- Хеш-функции с точки зрения отображения множеств: коллизии и криптостойкость.
- Коды Рида-Соломона в QR-кодах и компакт-дисках.
Раздел 8. Формальные языки и автоматы
- Конечные автоматы как математическая модель лексического анализатора (регулярные выражения).
- Контекстно-свободные грамматики и синтаксический разбор: связь с деревьями вывода в компиляторах.
Система оценивания доклада и презентации (макс. 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 формул без контекста.