• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2024/2025

C++

Статус: Маго-лего
Когда читается: 3, 4 модуль
Охват аудитории: для своего кампуса
Язык: английский
Кредиты: 3

Course Syllabus

Abstract

Курс знакомит с основами C++: типами данных, управляющими конструкциями, функциями и памятью. Рассматриваются ООП, STL (vector, list, map), работа с файлами и сборка программ (Makefile, CMake). Студенты познакомятся с принципами написания эффективного и безопасного кода, научатся писать библиотеки\консольные приложения и использовать современные инструменты C++.
Learning Objectives

Learning Objectives

  • Освоить основы программирования на C++, включая типы данных, управляющие конструкции, циклы и функции.
  • Изучить работу с вводом/выводом, включая потоки и файловые операции.
  • Понять процесс компиляции и сборки программ, освоить инструменты Makefile и CMake.
  • Научиться проектировать собственные типы данных (структуры, классы) и работать с динамической памятью.
  • Изучить принципы работы с памятью, указателями и умными указателями.
  • Овладеть контейнерами и алгоритмами STL для эффективной работы с данными.
  • Освоить основы ООП и шаблонов для создания универсальных и масштабируемых решений.
Expected Learning Outcomes

Expected Learning Outcomes

  • -Владеет основами ООП: наследование, полиморфизм, перегрузка операторов.
  • -Использует контейнеры и алгоритмы STL: (vector, list, map, ..), итераторы.
  • -Работает с памятью: стек, куча, указатели, динамическое выделение.
  • -Умеет проектировать собственные типы: структуры, классы, инкапсуляция.
  • -Понимает процесс компиляции и сборки: Makefile, CMake, линковка.
  • -Знает принципы ввода-вывода: стандартные потоки и файловые операции.
  • -Владеет основами C++: типы данных, управляющие конструкции, циклы, функции.
Course Contents

Course Contents

  • 1. Сборка приложений на C++
  • 2. Циклы, функции и средства сборки.
  • 3. Работа с памятью
  • 4. Классы, статический полиморфизм [, Move-семантика]*
  • 5. Динамический полиморфизм [ и unit-тестирование]
  • 6. Работа с файлами, STL
Assessment Elements

Assessment Elements

  • non-blocking Регулярные домашние задания
  • non-blocking Большое домашнее задание
    Вместо экзамена будет большое домашнее задание: написание мини-проекта с использованием STL, Move-семантики, умных указателей, unit-тестов и CMake. На выполнение большого домашнего задания отводится три недели.
  • non-blocking Квиз
    В течение модуля будет проведено 2 квиза на седьмой и десятой неделе.
Interim Assessment

Interim Assessment

  • 2024/2025 4th module
    [итоговая оценка] = min(1.; 0.5*[большое д.з.] + 0.125*4*[регулярные д.з.] + 0.05*2*[квизы]).
Bibliography

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). — Режим доступа: для авториз. пользователей.

Authors

  • Ахмедова Гюнай Интигам кызы