Справочник вопросов¶
Краткие вопросы и ответы по основам программирования, структурам данных и алгоритмам — для подготовки к экзамену и для быстрого освежения базы. Вопросы из экзаменационных билетов разобраны по отдельности, к каждому дан короткий ответ; примеры кода — на Python (с параллелями в Go, где уместно).
Как устроен экзамен
Экзаменационный билет состоит из трёх заданий: (1) теоретические вопросы по темам курса, (2) составление блок-схемы по предложенному алгоритму, (3) реализация алгоритма на произвольном языке (Python или Go). Этот справочник покрывает теоретическую часть — все вопросы сгруппированы по темам ниже. Блок-схемы и реализацию отрабатывайте на DSA-лабах и в практическом задании.
Темы¶
- Алгоритмы и сложность — понятие и свойства алгоритма, формы записи, конструкции, O-нотация, «разделяй и властвуй».
- Логические основы — логические операции, приоритет, законы де Моргана, таблицы истинности.
- Языки и методы программирования — парадигмы, классификация и эволюция ЯП, системы программирования, SDLC, типы приложений.
- Данные и представление — типы данных, системы счисления, машинное представление чисел, кодировки.
- Python: функции, файлы, обработка ошибок — циклы, ввод/вывод, функции и область видимости, декораторы, рекурсия, файлы, исключения.
- ООП — объект, класс, интерфейс, принципы ООП, событийно-управляемая модель.
- Шаблоны проектирования — типы шаблонов и 21 паттерн GoF: назначение и когда применять.
- Структуры данных — массивы, списки, стек, очередь, деревья, BST, обходы.
- Сортировка и поиск — классификация и характеристики, основные алгоритмы сортировки и поиска.
- Тестирование, GUI и конкурентность — виды тестирования, оконные приложения, параллельные вычисления.
Не путать с лабораторными
Это справочник для самопроверки. Учебные курсовые лабораторные (задания по темам лекций) и DSA-лабы lab00–lab11 (код прямо в репозитории) — отдельные материалы.