Основы программирования — зимний семестр 2026/27
Первый семестр курса «Основы программирования» (СПбГУ). Здесь публикуются конспекты занятий: их можно читать до занятия как подготовку или после — как справочник при выполнении домашнего задания.
Как устроен курс
Занятия чередуются между двумя линиями:
- Линия языка — C и C++ (нечётные занятия, лекции с практикой): сборка, типы, функции, классы и ООП, строки, умные указатели, STL, move-семантика, шаблоны. Местами Python — для контраста и прототипов.
- Линия алгоритмов (чётные занятия, семинары): сложность и O-символика, рекуррентные соотношения, структуры данных, двоичный поиск, сортировки, амортизационный анализ.
Контроль: домашние задания после семинаров (сдача через Git + контест на HackerRank) · два рубежных контроля · зачёт с оценкой.
Инструменты: компилятор (GCC/Clang/MSVC) + редактор, Git для сдачи заданий, санитайзеры, Compiler Explorer. Всё настраивается на первом занятии.
Конспекты
Конспект каждого занятия открывается в день самого занятия — список пополняется по ходу семестра.
-
Занятие 0. Вступление: от перфокарт до LLM
история разработки, хронология стандартов C++ и эпоха LLM-ассистентов.
-
Занятие 1. Сборка C++: от кода до .exe
конвейер сборки, заголовочные файлы, include guards, окружение под три ОС.
-
Занятие 2. Анализ сложности алгоритмов
Фибоначчи четырьмя способами, O-символика, иерархия скоростей роста.
-
Занятие 3. Типы данных: во что упаковываем данные?
биты и байты, IEEE 754, массивы, указатели и ссылки, size_t.
-
Занятие 4. Элементарная арифметика
длинные числа, умножение Карацубы, первые шаги в Git. {class=“children children-type-tree children-sort-weight”}