Как выбрать тему
Реферат по программированию обычно строится на учебниках, стандартах языков, официальной документации платформ, статьях конференций и технических публикациях. Для темы о языке программирования достаточно сопоставить его модель вычислений, типизацию, основные конструкции, экосистему и области применения без написания собственной программы или проведения измерений.
Узкая формулировка позволяет разобрать ограниченный круг источников и не превратить работу в краткий пересказ всей информатики. При согласовании руководитель обычно проверяет, относится ли тема к изучаемой дисциплине, можно ли раскрыть её обзорно на 15–25 страниц и есть ли доступные русскоязычные или англоязычные источники.
- Предмет обзора ограничен одним языком, технологией, методом или классом задач
- Для раскрытия доступны учебники, официальная документация и статьи
- Формулировка не требует собственной разработки, опроса или расчётов
- Тема позволяет сравнить подходы по нескольким понятным критериям
- Название отражает содержание разделов, а не звучит как «Программирование в целом»
Формулировку темы утверждает кафедра, а перечень тем в методичке вашего вуза или колледжа важнее этого списка.
Языки программирования и парадигмы
-
Языки программирования: классификация, основные парадигмы и области применения
В работе рассматривают классификации языков по способу программирования, типизации и назначению на материале учебников и официальной документации языков.
-
Язык Python: особенности синтаксиса, стандартная библиотека и области применения
В работе анализируют синтаксические средства Python, состав стандартной библиотеки и типичные области использования по официальной документации и учебным изданиям.
-
Объектно-ориентированное программирование: принципы и реализация в языках Java и C++
В работе сопоставляют инкапсуляцию, наследование и полиморфизм по спецификациям Java и C++ и профильной литературе.
-
Функциональное программирование: основные понятия и применение в современных языках
В работе рассматривают чистые функции, неизменяемость данных, функции высшего порядка и их реализацию по учебникам и документации языков.
-
Статическая и динамическая типизация в языках программирования
В работе сравнивают проверку типов на этапе компиляции и выполнения на примере языков со статической и динамической типизацией.
-
Управление памятью в языках программирования: ручное выделение, сборка мусора и заимствования
В работе сопоставляют модели управления памятью по документации C++, Java, C# и Rust.
-
Системы модулей и пакетов в современных языках программирования
В работе рассматривают организацию программных модулей, управление зависимостями и средства публикации пакетов по официальной документации языков и репозиториев.
Алгоритмы и структуры данных
-
Алгоритмы сортировки: классификация, сложность и области применения
В работе сравнивают сортировки по асимптотической сложности, устойчивости и потреблению памяти на материале учебников по алгоритмам.
-
Поиск в структурах данных: линейные, бинарные и хеш-методы
В работе рассматривают условия применения и вычислительную сложность методов поиска по учебной литературе и документации библиотек.
-
Деревья поиска и сбалансированные деревья в программировании
В работе описывают устройство бинарных деревьев поиска, AVL-деревьев и красно-чёрных деревьев по учебникам алгоритмов.
-
Хеш-таблицы: принципы работы, коллизии и методы разрешения
В работе разбирают хеширование, коэффициент заполнения и стратегии обработки коллизий на материале учебников и технической документации.
-
Графовые алгоритмы: обход, поиск кратчайшего пути и прикладные задачи
В работе рассматривают обходы графа и алгоритмы поиска путей по учебникам алгоритмов и примерам задач из технической литературы.
-
Рекурсивные алгоритмы: принципы построения и ограничения применения
В работе анализируют рекурсивные вызовы, базовый случай, глубину стека и альтернативные итеративные решения по учебной литературе.
-
Оценка сложности алгоритмов с использованием нотации Big O
В работе рассматривают временную и пространственную сложность алгоритмов по учебникам дискретной математики и программирования.
Разработка программного обеспечения
-
Жизненный цикл программного обеспечения: модели разработки и их применение
В работе сравнивают каскадную, итеративную, спиральную и гибкие модели по стандартам, учебникам и публикациям по инженерии программного обеспечения.
-
Требования к программному обеспечению: классификация и способы документирования
В работе рассматривают функциональные и нефункциональные требования, пользовательские сценарии и спецификации по литературе по разработке ПО.
-
Архитектурные стили программных систем: монолит, клиент-сервер и микросервисы
В работе сопоставляют устройство, преимущества и ограничения архитектурных стилей по технической документации и профильным статьям.
-
Шаблоны проектирования программного обеспечения: назначение и классификация
В работе рассматривают порождающие, структурные и поведенческие шаблоны по классическим изданиям и документации языков программирования.
-
Контроль версий в разработке программного обеспечения: принципы и рабочие процессы
В работе описывают фиксацию изменений, ветвление, слияние и разрешение конфликтов по документации систем контроля версий.
-
Тестирование программного обеспечения: уровни, виды и методы
В работе рассматривают модульное, интеграционное, системное и приёмочное тестирование по учебникам и стандартам тестирования.
-
Непрерывная интеграция и непрерывная поставка программного обеспечения
В работе анализируют назначение автоматической сборки, запуска тестов и доставки версий по технической документации инструментов разработки.
Базы данных и веб-разработка
-
Реляционные базы данных: модель данных, ключи и ограничения целостности
В работе рассматривают таблицы, связи, первичные и внешние ключи, а также ограничения целостности по учебникам баз данных.
-
Язык SQL: назначение, структура запросов и операции обработки данных
В работе описывают средства определения, выборки и изменения данных по стандарту SQL и документации систем управления базами данных.
-
Нормализация реляционных баз данных: нормальные формы и устранение аномалий
В работе разбирают функциональные зависимости, нормальные формы и аномалии обновления по учебной литературе по базам данных.
-
Нереляционные базы данных: модели хранения и области применения
В работе сравнивают документоориентированные, ключ-значение, графовые и колоночные модели по технической документации и обзорам.
-
REST API: принципы проектирования интерфейсов веб-приложений
В работе рассматривают ресурсы, HTTP-методы, коды состояния и представления данных по спецификациям HTTP и технической документации.
-
Клиентская и серверная части веб-приложения: взаимодействие и распределение функций
В работе описывают обмен данными между браузером и сервером, обработку запросов и роль веб-протоколов по учебникам и документации.
-
Аутентификация и авторизация в веб-приложениях: подходы и угрозы
В работе разграничивают проверку личности и прав доступа, рассматривая механизмы сессий, токенов и типовые риски по техническим рекомендациям.
Системное программирование и безопасность
-
Операционные системы: процессы, потоки и планирование выполнения программ
В работе рассматривают различия процессов и потоков, состояния выполнения и принципы планирования по учебникам операционных систем.
-
Межпроцессное взаимодействие в операционных системах
В работе описывают каналы, очереди сообщений, разделяемую память и сокеты по учебной литературе и документации операционных систем.
-
Параллельное программирование: модели, проблемы синхронизации и средства реализации
В работе рассматривают потоки, блокировки, гонки данных и средства синхронизации по учебникам и документации языков программирования.
-
Компиляторы и интерпретаторы: этапы обработки исходного кода
В работе описывают лексический и синтаксический анализ, построение промежуточного представления и генерацию кода по учебникам компиляторов.
-
Уязвимости программного обеспечения: классификация и способы предотвращения
В работе рассматривают ошибки ввода, управления памятью и контроля доступа по материалам OWASP и учебной литературе по безопасной разработке.
-
Криптографические методы защиты данных в программных системах
В работе описывают назначение симметричного и асимметричного шифрования, хеширования и электронной подписи по учебникам криптографии и стандартам.
-
Безопасная разработка программного обеспечения: принципы и практики
В работе рассматривают учёт угроз, проверку кода, управление зависимостями и тестирование безопасности по рекомендациям OWASP и технической литературе.
