2024/2025





C++
Type:
Mago-Lego
Delivered by:
Big Data and Information Retrieval School
When:
3, 4 module
Open to:
students of one campus
Language:
English
ECTS credits:
3
Course Syllabus
Abstract
Курс знакомит с основами C++: типами данных, управляющими конструкциями, функциями и памятью. Рассматриваются ООП, STL (vector, list, map), работа с файлами и сборка программ (Makefile, CMake). Студенты познакомятся с принципами написания эффективного и безопасного кода, научатся писать библиотеки\консольные приложения и использовать современные инструменты C++.
Learning Objectives
- Освоить основы программирования на C++, включая типы данных, управляющие конструкции, циклы и функции.
- Изучить работу с вводом/выводом, включая потоки и файловые операции.
- Понять процесс компиляции и сборки программ, освоить инструменты Makefile и CMake.
- Научиться проектировать собственные типы данных (структуры, классы) и работать с динамической памятью.
- Изучить принципы работы с памятью, указателями и умными указателями.
- Овладеть контейнерами и алгоритмами STL для эффективной работы с данными.
- Освоить основы ООП и шаблонов для создания универсальных и масштабируемых решений.
Expected Learning Outcomes
- -Владеет основами ООП: наследование, полиморфизм, перегрузка операторов.
- -Использует контейнеры и алгоритмы STL: (vector, list, map, ..), итераторы.
- -Работает с памятью: стек, куча, указатели, динамическое выделение.
- -Умеет проектировать собственные типы: структуры, классы, инкапсуляция.
- -Понимает процесс компиляции и сборки: Makefile, CMake, линковка.
- -Знает принципы ввода-вывода: стандартные потоки и файловые операции.
- -Владеет основами C++: типы данных, управляющие конструкции, циклы, функции.
Course Contents
- 1. Сборка приложений на C++
- 2. Циклы, функции и средства сборки.
- 3. Работа с памятью
- 4. Классы, статический полиморфизм [, Move-семантика]*
- 5. Динамический полиморфизм [ и unit-тестирование]
- 6. Работа с файлами, STL
Assessment Elements
- Регулярные домашние задания
- Большое домашнее заданиеВместо экзамена будет большое домашнее задание: написание мини-проекта с использованием STL, Move-семантики, умных указателей, unit-тестов и CMake. На выполнение большого домашнего задания отводится три недели.
- КвизВ течение модуля будет проведено 2 квиза на седьмой и десятой неделе.
Interim Assessment
- 2024/2025 4th module[итоговая оценка] = min(1.; 0.5*[большое д.з.] + 0.125*4*[регулярные д.з.] + 0.05*2*[квизы]).
Bibliography
Recommended Core Bibliography
- Язык программирования C++: Базовый курс, Липпман, С. Б., 2014
Recommended Additional Bibliography
- Гримм, Р. C++20 в деталях / Р. Гримм , под редакцией А. Ю. Романова , перевод с английского А. В. Борескова, под науч. ред. А. Ю. Романова, И. И. Романовой. — Москва : ДМК Пресс, 2023. — 518 с. — ISBN 978-5-97060-956-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/315479 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.