Основы программирования — зимний семестр 2026/27

Первый семестр курса «Основы программирования» (СПбГУ). Здесь публикуются конспекты занятий: их можно читать до занятия как подготовку или после — как справочник при выполнении домашнего задания.

Как устроен курс

Занятия чередуются между двумя линиями:

  • Линия языка — C и C++ (нечётные занятия, лекции с практикой): сборка, типы, функции, классы и ООП, строки, умные указатели, STL, move-семантика, шаблоны. Местами Python — для контраста и прототипов.
  • Линия алгоритмов (чётные занятия, семинары): сложность и O-символика, рекуррентные соотношения, структуры данных, двоичный поиск, сортировки, амортизационный анализ.

Контроль: домашние задания после семинаров · два рубежных контроля · зачёт с оценкой.

Инструменты: компилятор (GCC/Clang/MSVC) + редактор, Git для сдачи заданий, санитайзеры, Compiler Explorer. Всё настраивается на первом занятии.

Конспекты

  1. Сборка C++: от кода до .exe — конвейер сборки, заголовочные файлы, include guards, окружение под три ОС.
  2. Анализ сложности алгоритмов — Фибоначчи четырьмя способами, O-символика, иерархия скоростей роста.
  3. Типы данных: во что упаковываем данные? — биты и байты, IEEE 754, массивы, указатели и ссылки, size_t.
  4. Элементарная арифметика — длинные числа, умножение Карацубы, первые шаги в Git.
  5. Управление программой: функции и потоки выполнения — стек вызовов, перегрузка, ветвления, циклы и их ловушки.
  6. Рекуррентные соотношения — дерево рекурсии, основная теорема с доказательством, формула Бине.

Далее по программе: классы и ООП · базовые структуры данных · строки · амортизационный анализ · ключевые слова C++ · двоичный поиск — конспекты появляются по мере прохождения.