ИВТ. Практикум по объектно-ориентированному программированию. Продвинутый поток весна 2026
Содержание
О курсе
Дисциплина направлена на освоение концепций объектно-ориентированного программирования на примере языка C++. В ходе изучения будут рассмотрены основные такие понятие объектно-ориентированного программирования, как инкапсуляция данных, наследование классов, и использование шаблонов. Кроме того, будут разобраны практические примеры проектирования программ и изучено устройство стандартной библиотеки C++.
Пререквизиты
Студенту рекомендуется:
- знать основные конструкции языков программирования: переменные, типы данных, операторы, функции, циклы и условные конструкции;
- понимать принципы построения алгоритмов и структур данных;
- иметь опыт разработки программ на языке Си, C++ или другом языке высокого уровня;
- владеть базовыми навыками работы с памятью и модульной организацией программ;
- понимать основы компиляции, сборки и отладки программ;
- иметь навыки работы со средами разработки и стандартными инструментами программирования.
Программа курса
| Неделя | Семинары | Лабораторные | Домашние задания |
|---|---|---|---|
| 1-7 | Раздел 1. Основы объектно-ориентированного программирования. Парадигмы программирования: процедурное, модульное, объектно-ориентированное. Абстракции данных. Классы и члены классов. Приватные, защищенные и открытые поля класса. Инкапсуляция данных. Конструкторы и деструктор класса. Перегрузка операторов. Реализация конструкторов копирования и присваивания. |
Темы уточняются | Темы уточняются |
| 8-15 | Раздел 2. Проектирование и разработка классов на языке C++. Константные аргументы, поля и методы класса. Ссылочные типы данных, их отличия от указателей. Статические поля и методы класса. Синглетоны и фабричные методы создания объектов класса. Наследование классов. Множественное наследование. Виртуальные методы. Чистые виртуальные методы и абстрактные классы. Интерфейсы. |
Темы уточняются | Темы уточняются |
Коммуникация
Информация уточняется
Чат курса (Telegram)
Прогресс студентов
Таблица с оценками, доступная студентам
Критерии оценивания и формы контроля успеваемости
Успешное освоение курса требует напряжённой самостоятельной работы студента.
Самостоятельная работа включает в себя:
- проработку учебного материала (по конспектам лекций, учебной и научной литературе),
- подготовку ответов на вопросы, предназначенных для самостоятельного изучения.
Команда курса
Лектор курса: Дединский Илья Рудольфович
Материалы курса
Примерный перечень заданий для текущего контроля успеваемости:
Задание 1. Реализация класса с конструкторами.
Реализуйте класс Stack, реализующий структуру стека для целочисленных элементов. В классе необходимо реализовать основные методы добавления и извлечения элементов, конструктор и деструктор.
Задание 2. Перегрузка операторов, константные методы и передача аргументов по ссылке.
Реализуйте класс String, который является представлением строки символов. Для класса реализуйте все возможные конструкторы, деструктор, операции сравнения строк, и доступ к отдельным символам строки.
Основная литература
- Объектно-ориентированное описание и моделирование систем на языке UML [Текст] : Лабораторный практикум : учеб. пособие для вузов / Е. Б. Степанова, А. В. Тимофеев ;
М-во образования и науки Рос. Федерации, Фед. агентство по образованию, Моск. физ.-техн. ин-т (гос. ун-т), Фак. инноваций и высоких технологий .— М. : Изд-во МФТИ, 2007 .— 99 с.