• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2022/2023

Конструирование программного обеспечения

Статус: Курс обязательный (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 2-й курс, 1-3 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Преподаватели: Шампоров Василий Александрович, Шишкин Михаил Владимирович
Язык: русский
Кредиты: 5
Контактные часы: 100

Программа дисциплины

Аннотация

Дисциплина "Конструирование программного обеспечения" знакомит студентов с подходами к написанию программ различной сложности и размера на языке С++. В курсе рассматриваются структурный, объектно-ориентированный и и функциональный подходы. Особое внимание уделяется стандартной библиотеке шаблонов (STL), широко применяемой в промышленном программировании.
Цель освоения дисциплины

Цель освоения дисциплины

  • Знакомство с основными парадигмами программирования и их использования на практике
  • Освоение современного С++
  • Изучение некоторых важнейших паттернов объектно-ориентированного программирования
  • Овладение приемами модульного тестирования
Планируемые результаты обучения

Планируемые результаты обучения

  • Демонстрировать использование паттернов при анализе предметной области и проектировании ПО
  • Демонстрировать использование принципа объектной декомпозиции
  • Демонстрировать применение наследования и полиморфизма
  • Демонстрировать создание шаблонов для решения широкого круга задач
  • Демонстрировать уверенную работу с указателями и ссылками
  • Демонстрировать умение инициализировать встроенные объекты и использовать дружественность
  • Использовать контейнеры и алгоритмы для решения прикладных задач
  • Описывать механизм вызова функций
  • Определять возможности различных типов данных и правильно их использовать
  • Определять временную сложность алгоритмов работы STL и методов контейнеров
  • Определять вывод типов при инстанцировании шаблонов
  • Определять типы отношений при анализе предметной области
  • Создавать классы с конструкторами и деструктором
  • Формулировать архитектурные принципы STL
  • Формулировать назначение механизма шаблонов
  • Формулировать назначение ООП
  • Формулировать назначение перегрузки операций
  • Формулировать особенности отношений классов и объектов при декомпозиции задачи
  • Формулировать особенности размещения различных объектов программы в памяти
  • Формулировать понятие и свойства механизма наследования
  • Формулировать понятие механизма шаблонов классов
  • Формулировать понятия многопоточного программирования (поток, гонка за ресурсы и другие)
  • Формулировать понятия функционального программирования (функтор, лямбда-выражение и другие)
  • Формулировать способы перегрузки и уметь их использовать
  • Формулировать тонкости перегрузки отдельных операций
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Память и базовые механизмы программ
  • Шаблоны функций
  • Классы и объекты
  • Перегрузка операций
  • Отношения между классами и объектами
  • Наследование и полиморфизм
  • Шаблоны и паттерны
  • Стандартная библиотека шаблонов
  • Функциональное и параллельное программирование на С++
Элементы контроля

Элементы контроля

  • неблокирующий Практические домашние задания - модуль 1
  • неблокирующий Практические домашние задания - модуль 2
  • неблокирующий Практические домашние задания - модуль 3
  • блокирующий Экзамен - модуль 2
  • блокирующий Экзамен - модуль 3
Промежуточная аттестация

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

  • 2022/2023 учебный год 2 модуль
    1 * Экзамен - модуль 2
  • 2022/2023 учебный год 3 модуль
    1 * Экзамен - модуль 3
Список литературы

Список литературы

Рекомендуемая основная литература

  • Gregoire, M. (2018). Professional C++ (Vol. Fourth edition). Indianapolis, IN: Wrox. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1729638
  • Язык программирования C++ для профессионалов - Страуструп Б. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100542 - ЛАНЬ - 100542

Рекомендуемая дополнительная литература

  • Осваиваем C++17 STL - О’Двайр А. - Издательство "ДМК Пресс" - 978-5-97060-663-6 - 2018 - русский - https://e.lanbook.com/book/116126 - ЛАНЬ - 116126
  • Программирование на языке C++ - Павловская Т.А. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100409 - ЛАНЬ - 100409

Авторы

  • Штанюк Антон Александрович
  • Шампоров Василий Александрович