Основы программирования — зимний семестр 2026/27
Первый семестр курса «Основы программирования» (СПбГУ). Здесь публикуются конспекты занятий: их можно читать до занятия как подготовку или после — как справочник при выполнении домашнего задания.
Как устроен курс
Занятия чередуются между двумя линиями:
- Линия языка — C и C++ (нечётные занятия, лекции с практикой): сборка, типы, функции, классы и ООП, строки, умные указатели, STL, move-семантика, шаблоны. Местами Python — для контраста и прототипов.
- Линия алгоритмов (чётные занятия, семинары): сложность и O-символика, рекуррентные соотношения, структуры данных, двоичный поиск, сортировки, амортизационный анализ.
Контроль: домашние задания после семинаров · два рубежных контроля · зачёт с оценкой.
Инструменты: компилятор (GCC/Clang/MSVC) + редактор, Git для сдачи заданий, санитайзеры, Compiler Explorer. Всё настраивается на первом занятии.
Конспекты
- Сборка C++: от кода до .exe — конвейер сборки, заголовочные файлы, include guards, окружение под три ОС.
- Анализ сложности алгоритмов — Фибоначчи четырьмя способами, O-символика, иерархия скоростей роста.
- Типы данных: во что упаковываем данные? — биты и байты, IEEE 754, массивы, указатели и ссылки, size_t.
- Элементарная арифметика — длинные числа, умножение Карацубы, первые шаги в Git.
- Управление программой: функции и потоки выполнения — стек вызовов, перегрузка, ветвления, циклы и их ловушки.
- Рекуррентные соотношения — дерево рекурсии, основная теорема с доказательством, формула Бине.
Далее по программе: классы и ООП · базовые структуры данных · строки · амортизационный анализ · ключевые слова C++ · двоичный поиск — конспекты появляются по мере прохождения.