Бакалавриат
2022/2023




Конструирование программного обеспечения
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 2-4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Александров Дмитрий Владимирович,
Зейналов Магеррам,
Калинин Антон Игоревич,
Кучук Александр Александрович,
Семянников Глеб Валерьевич,
Сосновский Григорий Михайлович,
Терлыч Никита Андреевич,
Хохлов Игорь Дмитриевич
Язык:
русский
Кредиты:
8
Контактные часы:
104
Программа дисциплины
Аннотация
Дисциплина охватывает ключевые аспекты современных методов и средств создания программного обеспечения с применением инструментов и технологий используемых в промышленной разработке. В процессе освоения курса студенты получат представление о программировании как технологическом процессе, познакомятся с ключевыми архитектурами программного обкспечения и паттернами проектирования, приобретут навыки применения инструментальных средств в разработке и тестировании ПО и развертывания программ.
Цель освоения дисциплины
- Целью освоения дисциплины является теоретическая и практическая подготовка студентов в области технологий разработки программ в такой степени, чтобы они могли выбирать необходимые технические, алгоритмические, программные и технологические решения, уметь объяснить принципы их функционирования и правильно их использовать. Иметь представление о каждом этапе жизненного цикла программы от проектирования до внедрения и сопровождения. Знать современные стандарты качества программного обеспечения и перспективные направления развития технологии разработки ПО для дальнейшего профессионального развития в этой области.
Планируемые результаты обучения
- Знание принципов объектно-ориентированного программирования, основных программных архитектур и паттернов проектирования программного обеспечения
- Умение создавать клиент-серверные приложения с базами данных
- Навыки применения инструментальных средств в разработке и тестировании
Содержание учебной дисциплины
- Введение. Парадигмы программирования. Синтаксис и семантика языка Java в сравнении с С++ и C#. Код-стайл
- Классы и объекты. Примитивы и обертки. Обзор ООП
- Объекты, классы и их повторное использование. Интерфейсы и абстрактные классы, внутренние и вложенные классы
- Object и методы equals/hashCode/toString и т.д. FileIterator. Обработка исключительных ситуаций
- Контейнеры и коллекции. Дженерики
- Основы функционального программирования
- Основы компонентно-ориентированного программирования
- Особенности тестирования ПО
- Лучшие практики в программной разработке
- Особенности и проблемы многопоточности
- Знакомство с языком программирования Golang. Java vs Golang
- Модель OSI. HTTP(s). Сокеты
- Основные особенности и принципы REST API
- Основы и примеры реализации клиент-серверного взаимодействия в различных языках программирования
- Знакомство с языком JS. Основы создания пользовательских веб-интерфейсов
- Принципы SOLID и KISS. IoC и DI
- Шаблоны проектирования. Примеры
- MVC, MVVM, MVP, VIPER, микросервисы
- Введение в проектирование БД. ERM, SQL
- Аутентификация и авторизация в микросервисных приложениях
- Основы UML. Документирование программ
- Тренды в развитии языков программирования и в разработке ПО
Элементы контроля
- Экзамен (задача)
- Накопленная оценка за модуль NИтоговая оценка за работу студента в модуле N: ОМ
= Min(ДЗ x 0.7 + СА x 0.2 + КР x 0.3, 10), где ДЗ – оценка за выполнение домашних заданий в модуле N; КР – оценка за контрольные работы в модуле N; СА – бонус за активность на семинарах в модуле N (баллы начисляются в качестве поощрения за активную работу на семинарах исключительно на усмотрение преподавателя), N = 1, ..., 3. Накопленная оценка за курс (cреднее значение оценок за каждый модуль): НАКОП = (ОМ1 + ОМ2 + ОМ3) / 3.
Промежуточная аттестация
- 2022/2023 учебный год 3 модульИтоговая оценка за работу студента в модуле N: ОМ
= Min(ДЗ x 0.7 + СА x 0.2 + КР x 0.3, 10), где ДЗ – оценка за выполнение домашних заданий в модуле N; КР – оценка за контрольные работы в модуле N; СА – бонус за активность на семинарах в модуле N (баллы начисляются в качестве поощрения за активную работу на семинарах исключительно на усмотрение преподавателя), N = 1, ..., 3. - 2022/2023 учебный год 4 модульИтоговая оценка за работу студента в модуле N: ОМ
= Min(ДЗ x 0.7 + СА x 0.2 + КР x 0.3, 10), где ДЗ – оценка за выполнение домашних заданий в модуле N; КР – оценка за контрольные работы в модуле N; СА – бонус за активность на семинарах в модуле N (баллы начисляются в качестве поощрения за активную работу на семинарах исключительно на усмотрение преподавателя), N = 1, ..., 3.