• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 109028, г. Москва, Покровский бульвар, д. 11

Телефон: +7(495) 772-95-90 *28240

Руководство
Научный руководитель направления “Программная инженерия" Аветисян Арутюн Ишханович
Руководитель департамента Лебедев Сергей Аркадьевич
Заместитель руководителя департамента Максименкова Ольга Вениаминовна
Книга
Computer Networks

Rodriges Zalipynis R. A.

St. Petersburg: Naukoemkie Technologii, 2024.

Глава в книге
Game Development Education: Approaches for Teaching Software Engineering Students

Maksimenkova O. V., Lebedev S., Pozdnyakov D.

In bk.: Futureproofing Engineering Education for Global Responsibility: Proceedings of the 27th International Conference on Interactive Collaborative Learning (ICL2024), Volume 4. Springer, 2025. P. 116-125.

Препринт
Approach to Designing CV Systems for Medical Applications: Data, Architecture and AI
В печати

Ryabtsev D., Vasilyev Boris, Shershakov S.

Computer Science ::Computer Vision and Pattern Recognition. 2501.14689. arXiv, 2025

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

2022/2023
Учебный год
RUS
Обучение ведется на русском языке
8
Кредиты
Статус:
Курс по выбору
Когда читается:
2-й курс, 2-4 модуль

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

Зейналов Магеррам

Зейналов Магеррам

Кучук Александр Александрович

Кучук Александр Александрович

Семянников Глеб Валерьевич

Семянников Глеб Валерьевич

Хохлов Игорь Дмитриевич

Хохлов Игорь Дмитриевич

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

Аннотация

Курс "Конструирование программного обеспечения" предназначен для студентов 2-го курса образовательной программы «Программная инженерия» факультета компьютерных наук НИУ ВШЭ (г.Москва) в целях изучения и освоения современных методов и средств создания программного обеспечения. Курс базируется на использовании Java-платформы - наиболее популярной среды разработки современного программного обеспечения. В результате освоения курса студенты приобретают знания современных подходов к разработке программного обеспечения и овладевают средствами совремменной Java-платформы в рамках Java SE (Java Standard Edition).
Цель освоения дисциплины

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

  • Ознакомление слушателей с основами конструирования программного обеспечения и предоставление достаточного набора знаний и навыков для дальнейшего профессионального развития в этой области.
Планируемые результаты обучения

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

  • Знакомство с синтаксисом и особенностями языка Java в сравнении с другими языками программирования
  • Знание принципов объектно-ориентированного программирования, основных программных архитектур и паттернов проектирования программного обеспечения
  • Владение лучшими практиками разработки и знание код-стайла
  • Умение создавать клиент-серверные приложения с базами данных
  • Знание принципов работы с многопоточностью
  • Навыки применения инструментальных средств в разработке и тестировании
  • Навыки разработки с применением Git
  • Понимание особенностей сборки и развертывания программ
Содержание учебной дисциплины

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

  • Введение. Парадигмы программирования. Синтаксис и семантика языка 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.
Список литературы

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

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

  • Java. Библиотека профессионала. Т.1: Основы, Хорстманн, К. С., 2019

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

  • JAVA Concurrency на практике, , 2020
  • Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. - Приемы объектно-ориентированного проектирования. Паттерны проектирования - 978-5-4461-1213-5 - Санкт-Петербург: Питер - 2020 - 361851 - https://ibooks.ru/bookshelf/361851/reading - iBOOKS
  • Философия Java, Эккель, Б., 2015

Авторы

  • Александров Дмитрий Владимирович
  • Петрухина Анастасия Сергеевна