Files
diskrete_math/README_project1.md

92 lines
9.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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)
- **7084** хорошо (4)
- **50–69** – удовлетворительно (3)
- **0–49** – неудовлетворительно (2, но в рамках учебного доклада обычно просят доработать)
### Доп рекомендасьен:
- На 1 слайде – не более 5–7 строк текста.
- Обязательно приводите маленький пример кода или визуализацию.
- Для графов используйте простые редакторы (draw.io, Graphviz online).
- Не перегружайте формулами: лучше одна ключевая формула + пояснение, чем 10 формул без контекста.