• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

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

2022/2023
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты

Преподаватель


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

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

Аннотация

Дисциплина "Конструирование программного обеспечения" знакомит студентов с подходами к написанию программ различной сложности и размера на языке С++. В курсе рассматриваются структурный, объектно-ориентированный и и функциональный подходы. Особое внимание уделяется стандартной библиотеке шаблонов (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++ для профессионалов : учебное пособие / Б. Страуструп. — 2-е изд. — Москва : ИНТУИТ, 2016. — 670 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100542 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • О’Двайр, А. Осваиваем C++17 STL / А. О’Двайр. — Москва : ДМК Пресс, 2018. — 352 с. — ISBN 978-5-97060-663-6. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/116126 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Павловская, Т. А. Программирование на языке C++ : учебное пособие / Т. А. Павловская. — 2-е изд. — Москва : ИНТУИТ, 2016. — 154 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100409 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.