Программирование на основе классов и шаблонов

Цели и задачи дисциплины

Аладин Дмитрий Владимирович

iu5edu.ru/wiki/cpp2

О лекторе

Аладин Дмитрий Владимирович

ассистент кафедры ИУ5 МГТУ им. Н.Э. Баумана
системный архитектор

Образование

МГТУ им. Н.Э. Баумана, факультет "Информатика и системы управления", кафедра "Системы обработки информации и управления" (ИУ5) (магистр)

Дополнительная информация

Более 100 научных работ в сфере систем обработки информации и управления.
• В IT-сфере с 2016 года.

О себе

Основная деятельность: проектирование и разработка интеллектуальных систем поддержки принятия решений и экспертных систем нового поколения.

Языки программирования: Go, С#, Python, C/C++, SQL, PL/SQL, JavaScript.

Персональная страница: dmitry.icu.

Преподаватели дисциплины

  • Аладин Дмитрий Владимирович
  • Бурмистрова Мария Валентиновна
  • Плужникова Ольга Юрьевна
  • Правдина Анна Дмитриевна

Магистры

(Будут объявлены позже)

Контакты

Взаимодействие:

  • Чат потока в Telegram
  • Отдельные чаты с группами
    (по усмотрению преподавателей)

Методический материал

Зачем мы здесь собрались?

center

Цель изучения дисциплины

  • Подготовка в области проектирования и разработки информационных систем на основе объектно-ориентированного подхода (ООП);
  • Освоение современных систем объектного программирования и систем классов;
  • Постижение процессов отладки сложных программных систем и оформления проектной и эксплуатационной документации программных систем, построенных на основе ООП.

Задачи преподавания дисциплины

  • Формирование базовых знаний по объектно-ориентированному программированию информационных систем;
  • Получение навыков самостоятельного изучения и использования существующих систем классов и современных технологий, основанных на ООП;
  • Овладение знаниями и умениями создания собственных систем классов для создания информационных систем, их отладки и документирования;
  • Формирование умения применять современные технологии, основанные на ООП при разработке и проектировании автоматизированных систем обработки информации и управления;
  • Формирование навыков и умения оформлять проектную, эксплуатационную и приемно-сдаточную документацию на программные продукты;
  • Научиться проводить приемно-сдаточные испытания программных продуктов, основанных на системах классов.

Обзор разделов дисциплины

Принципы и технологии программирования на основе:

  • Классов
    Модуль 1. Основны ООП
  • Шаблонов
    Модуль 2. Шаблоны ООП

Обзор разделов дисциплины

Модуль 1. Основны ООП

  1. Системы сборки кроссплатформенного программного обеспечения из исходного кода
  2. Концепции и парадигмы программирования
  3. Теоретические основы ООП
  4. Описание и реализация классов
  5. Перегрузка операций и отношения между классами
  6. Наследование

Обзор разделов дисциплины

Модуль 2. Шаблоны ООП

  1. Шаблоны
  2. Дополнительные сведения об ООП
  3. Стандартная библиотека шаблонов C++
  4. Коллекции универсальных библиотек C++
  5. Принципы ОО дизайна
  6. Шаблоны проектирования
  7. Отладка и тестирование объектно-ориентированных программ
  8. Документация и диаграммы, разрабатываемые в ООП
  9. Системы объектно-ориентированного программирования, их особенности. Состав и технологии создания программ

Семинары

Каждый преподаватель индивидуально выбирает обсуждаемые темы, ориентируясь на рабочую программу дисциплины.

center

Домашнее задание и практика

У нас два вида работ:

  • практика (проект);
  • домашнее задание (часть задач по проекту).

См. подробнее в iu5edu.ru/wiki/cpp2.

Практика проверяется в рамках РК!

ЛР: Нюанс 1. Отказываемся от Windows

windows-mem center

ЛР: Нюанс 2. Используем кроссплатформенные IDE

  • Visual Studio Code - основная IDE
  • CLion с весны 2023 года JetBrains получили статус "нерукпожатные"
  • Visual Studio - без Windows нагрузок
  • VIM/NVIM (на свой страх и риск)
  • Zed - надо пробовать 🤷‍♂️

ЛР: Нюанс 3. Используем CMake для сборки программ

Как это делать, вы узнаете в следующей лекции.

center

ЛР: Нюанс 4. Используем статический анализатор

  • Код должен проходить все проверки статического анализатора.
  • В качестве статического анализатора использовать Cppcheck.
  • Результат проверки кода статическим анализатором кода демонстрируется студентом при защите лабораторной работы.
  • В случае, если проверка анализатора кажется избыточной, необходимо уметь объяснить, почему замечание анализатора по данной ошибке не было учтено.

ЛР: Нюанс 5. "Презумпция виновности"

questions center

Студент должен подтвердить, что код был написан им (отсутствие плагиата). Это достигается за счет:

  1. Демонстрация понимания работы программы и ее алгоритмов функционирования.
  2. Ориентации в коде программы.
  3. Умения реализовать дополнительные функциональные возможности в программе.

ЛР: Нюанс 6. Дедлайны и оценка

За каждую работу выставляется оценка.

Дедлайнов нет, НО Но можно выставить оценку , если студент значительно задержал работу.

Другие нюансы

Другие нюансы вы узнаете при изучении электронного ресурса предыдущей дисциплины "Основы программирования": iu5edu.ru/wiki/cpp1.

Особенности дисциплины

Зачем следим

Правило трёх П :

  • Посещаемость на семинарах и лекциях
  • Прогресс по выполнению домашнего задания и практики
  • Прилежность в выполнении лабораторных работ (см. нюансы ЛР)

Экзамен

На оценку влияет:

  • Ответ на билет
  • Успешность следованию "правилу трёх П"
  • Результат выполнения домашнего задания и практики

questions center

Вопросы?

questions