+7 (812) 703-02-02 info@hse.spbstu.ru Max Rutube

С++ для олимпиадного программированияНовый курс!

C 9 класса | 26 занятий | Очно

Длительность курса: 26 занятий по 4 ак. часа и выполнение домашних заданий

О чём курс

Цель курса — обучить школьников языку C++.

C++ — это язык высокого уровня, предназначенный для решения широкого круга задач. C++ — это тот язык, к которому программисты обращаются, когда им требуется, чтобы программы работали быстро. Ядра операционных систем, браузеры, игровые движки — всё это написано на C++. И, конечно же, на любой олимпиаде по программированию львиная доля участников использует C++.

На курсе ученики пройдут путь от написания простейших программ (Hello, World) до работы в парадигме объектно-ориентированного программирования (ООП).

По завершении курса слушатели выполняют экзаменационную работу, в которой они напишут собственный игровой движок в миниатюре.

Чему научим

Основы языка C++

  • Базовые типы данных.
  • Консольный и файловый ввод/вывод.
  • Алгоритмические конструкции: ветвление, циклы.
  • Функции, включая рекурсивные.
  • Ссылки и указатели.

Работа со структурированными данными

  • C-style строки и специализированные библиотеки для работы с ними.
  • Одномерные и многомерные массивы.
  • Структуры, перечисления и объединения.

Профессиональные инструменты программиста на C++

  • Декомпозиция.
  • Работа с динамической памятью.
  • Перегрузка функций и операторов.
  • Продвинутая работа с файлами.
  • Шаблоны.
  • Алгоритмы сортировки.
  • Бинарный поиск.
  • Битовые поля.

Работа в парадигме ООП

  • Классы и объекты.
  • Конструкторы и деструкторы.
  • Инкапсуляция.
  • Наследование и полиморфизм.
  • Абстракция.

Занятие 1

Введение

  • Содержание семестра, организация занятий.
  • Знакомство с Visual Studio.
  • Написание первой программы.
  • Структура программы.
  • Алфавит и лексемы C++.
  • Комментарии.
  • Консольный ввод/вывод.
  • Управляющие последовательности.
  • Библиотека <iomanip>.

Занятие 2

Типы данных

  • Переменные.
  • Инициализация переменных, неинициализированные переменные, типы инициализации.
  • Стандартные типы данных.
  • Литералы.
  • Уровни видимости переменных.

Занятие 3

Выражения и вычисления

  • Понятие выражения.
  • Унарные, бинарные и тернарный операторы.
  • Префиксные и постфиксные операторы.
  • Хранение вещественных и целочисленных типов данных.
  • Приведение типов данных.
  • Приоритеты операторов.

Занятие 4

Ветвления и цикл while

  • Понятие ветвления.
  • Синтаксис if.
  • Вложенные ветвления.
  • Логические операторы.
  • Тернарный оператор.
  • Синтаксис цикла while.
  • Цикл do-while.
  • Команды break и continue.

Занятие 5

Цикл for и команда switch

  • Синтаксис цикла for.
  • Вложенные циклы.
  • Синтаксис команды switch.
  • Fall-through.

Занятие 6

Массивы

  • Понятие массива.
  • Синтаксис объявления массива.
  • Инициализация массива, список инициализации.
  • Оператор sizeof.

Занятие 7

Указатели и C-style строки

  • Понятие указателя.
  • Специализированные операторы для работы с указателями.
  • Типизация указателей.
  • Арифметика указателей.
  • Использование указателей для работы с массивами.
  • C-style строки и их отличия от std::string.
  • Нуль-терминатор.
  • Строковые литералы.
  • Работа с C-style строками как с массивами.
  • Ввод и вывод C-style строк.

Занятие 8

Ссылки и библиотека <cstring>

  • Понятие ссылки.
  • Отличия ссылок от указателей.
  • Специализированные функции для работы с C-style строками, их особенности, преимущества и недостатки.
  • Поиск необходимой функции с помощью документации.

Занятие 9

Структуры и перечисления

  • Синтаксис структур.
  • Объявление переменных типа структура.
  • Селекторы точка и стрелочка.
  • Инициализация структуры.
  • Значения по умолчанию.
  • Функции и структуры.
  • Понятие перечисления.
  • Синтаксис перечислений.
  • Ввод/вывод перечислений.
  • Обработка перечислений с помощью конструкции switch.
  • Перечисления с областью видимости.

Занятие 10

Функции

  • Понятие функции.
  • Синтаксис функций.
  • Параметры и аргументы.
  • Объявление, определение и вызов функций.
  • Возвращаемое значение.
  • Передача аргументов по адресу и по значению.
  • Изменение аргументов внутри функции.
  • Особенности массивов при передаче их в функцию.
  • Параметры по умолчанию и перегрузка функций.
  • Рекурсия.

Занятие 11

Базовая работа с файлами

  • Запись в файл, использование библиотеки <iomanip>.
  • Чтение из файла.
  • Оператор извлечения, функция getline(), прочие способы чтения.
  • Работа с несколькими файлами в параллель.
  • Флаги открытия файлов.

Занятие 12

Продвинутая работа с файлами

  • Произвольный доступ к файлу.
  • Перемещение указателя.
  • Побайтовое чтение и запись.
  • Множество инструментов чтения, их преимущества, особенности и недостатки.
  • Флаги текущего состояния потока.
  • Удобные трюки для работы с файлами.

Занятие 13

Промежуточная аттестация

  • Полугодовой экзамен.

Занятие 14

Директивы препроцессора и форматированный ввод/вывод

  • От исходного кода до исполняемого файла.
  • Директива include.
  • Директива define и множество подводных камней, связанных с ней.
  • Директивы условной компиляции (if, elseif, else, endif).
  • Гард (pragma once).
  • Управление процессом компиляции.
  • Перечисления.
  • Форматированный ввод/вывод.

Занятие 15

Динамическая память

  • Понятие динамической памяти.
  • Специализированные операторы для работы с динамической памятью.
  • Утечка памяти.
  • Массивы и динамическая память.
  • Массивы указателей — преимущества, особенности и недостатки.
  • Изменение размера массива в ходе работы программы.
  • Строковые литералы и функции.

Занятие 16

Динамические двумерные массивы

  • Синтаксис динамических двумерных массивов.
  • Разница между обычными двумерными массивами и динамическими — на уровне программиста и на уровне процессора.
  • Массивы строк и массивы строковых литералов.

Занятие 17

Декомпозиция

  • Понятие декомпозиции.
  • Разбитие программы на модули.
  • Синтаксис работы с модулями.
  • Ключевые слова static и extern.

Занятие 18

Перегрузка функций и операторов.

  • Понятие перегрузки функций.
  • Синтаксис перегрузки функций.
  • Понятие перегрузки операторов.
  • Синтаксис перегрузки унарных и бинарных операторов.
  • Синтаксис перегрузки префиксных и постфиксных операторов.
  • Перегрузка операторов ввода и вывода.

Занятие 19

Шаблоны и пузырьковая сортировка

  • Понятие шаблона (template).
  • Синтаксис шаблона.
  • Пузырьковая сортировка.
  • Длинная арифметика.

Занятие 20

Объединения, побитовые операции, битовые поля, бинарный поиск

  • Понятие объединения.
  • Синтаксис объединения.
  • Отличия объединений от структур.
  • Понятие битовых полей.
  • Синтаксис битовых полей.
  • Побитовые операции, унарные и бинарные.
  • Маски.
  • Бинарный поиск.

Занятие 21

Знакомство с классами, get/set функции

  • Парадигмы программирования, знакомство с парадигмой ООП.
  • Понятия класса и объекта.
  • Спецификаторы доступа, инкапсуляция.
  • get/set функции.
  • inline функции.

Занятие 22

Конструкторы, деструкторы, перегрузка операторов сравнения

  • Понятие конструктора.
  • Конструктор по умолчанию.
  • Конструктор с параметрами.
  • Перегрузка конструкторов.
  • Понятие деструктора.
  • Перегрузка операторов сравнения.

Занятие 23

Статические переменные и методы класса, конструктор копирования, перегрузка операторов присваивания

  • Статические переменные и методы класса.
  • Константные переменные и методы класса.
  • Конструктор копирования.
  • Указатель this.
  • Перегрузка операторов присваивания.

Занятие 24

Наследование

  • Понятие наследования.
  • Типы наследования.
  • Специфика вызова конструкторов при наследовании.
  • Перегрузка функций при наследовании.
  • Конструктор копирования, оператор присваивания и оператор сравнения при наследовании.

Занятие 25

Полиморфизм

  • Понятие полиморфизма.
  • Ключевое слово virtual.
  • Виртуальный деструктор.
  • Абстрактные классы.

Занятие 26

Экзамен

  • Годовой экзамен.

Стоимость

56 400 ₽

Социальные скидки для многодетных и других категорий семей.
Скидки по акциям.
Оплата материнским капиталом.
Можно оформить налоговый вычет по расходам на обучение - 13%.

Как поступить

Для тех, кто еще не учится в АИШ:

  • Вступительное тестирование

Для уже обучающихся в АИШ:

  • «Процедурное программирование на языке С#» – промежуточная аттестация не менее 50 баллов или итоговая оценка не ниже «удовлетворительно».
  • «Функциональное программирование и структуры данных на языке Python» – промежуточная аттестация не менее 50 баллов или итоговая оценка не ниже «удовлетворительно».
  • «Основы программирования на языке Java» – промежуточная аттестация не менее 50 баллов или итоговая оценка не ниже «удовлетворительно».
Тест № АИШ-330 Вступительный тест для обучения на семестре "Структурное программирование на C/C++"

Для успешного прохождения вступительного практического теста необходимы следующие знания и умения:

  1. Базовые знания по курсу информатики:
    • Представление числовой, текстовой, графической информации в памяти компьютера;
    • Организация процесса работы компьютера (назначение и возможности операционной системы, структура файловой системы);
  2. Опыт процедурного программирования на любом языке:
    • Типы данных, их объявление;
    • Операторы консольного ввода и вывода, присваивания;
    • Операторы для организации циклов и ветвлений;
    • Массивы и стандартные алгоритмы работы с ними (поиск, нахождение максимума, сортировка, сдвиг и т.п.);
    • Создание процедур и функций, способы передачи данных между подпрограммами;
    • Владение приёмами работы со строками (выделение и поиск подстроки);
    • Знание классических численных алгоритмов (НОД, выделение цифр числа).

По результатам выполнения практического задания необходимо набрать не менее 50 баллов.

Для сдачи теста предоставляется 1 попытка.

Как записаться на занятия

Если ребёнок уже обучается

Оставьте заявку в Личном кабинете

Если ребёнок ещё не обучается

заполните форму

среда 23.09.2026 - 28.04.2027 18:00 - 21:30

Группа
116.02.01
Свободных мест: 12
Аудитория
№334
ул. Обручевых, д.1, вход с ул. Гидротехников
пятница 25.09.2026 - 23.04.2027 18:00 - 21:30

Группа
116.02.02
Свободных мест: 9
Аудитория
№334
ул. Обручевых, д.1, вход с ул. Гидротехников

Академия информатики для школьников в цифрах

21 год

успешной работы
в Политехническом университете Петра Великого

11

направлений обучения

83

учебные программы

2 800

школьников
проходят обучение
ежегодно

151

выпускник АИШ
в 2025 году поступил
в Политехнический университет

3

учебные площадки

40

компьютерных классов