Skip to content

relsa228/oop-bsuir

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syllabus

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

В результате прохождения курса студенты должны приобрести инженерные компетенции в области проектирования сложных информационных систем.

Структура курса

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

  • Лабораторная работа 1. Понятие инкапсуляции. Углубленное освоение базовых принципов ООП, теоретическое изучение инкапсуляции и полиморфизма, а также примеров их реализаций в ООП-языках.
    Результат: получены базовые навыки абстрактного описания предметных областей.
  • Лабораторная работа 2. Понятия полиморфизма, наследования и объектной композиции. Продвинутая работа с наследованием. Сравнение подходов объектной композиции и наследования. Практическое применение данных концепций для решения инженерных задач.
    Результат: получены углубленные навыки абстрактного описания предметных областей.
  • Лабораторная работа 3. Рефакторинг и качество кода. Знакомство с принципами из акронима SOLID. Применение их для оценки качества кода и его рефакторинга.
    Результат: выработан навык оценки качества кода на основе формализованных практик.
  • Лабораторная работа 4. GRASP и GoF паттерны. Порождающие паттерны. Знакомство с паттернами системного дизайна (в частности GoF). Практическое освоение порождающих паттернов.
    Результат: изучены GRASP принципы и получен опыт практического применения порождающих паттернов проектирования.
  • Лабораторная работа 5. GRASP и GoF паттерны. Структурные и поведенческие паттерны. Расширение набора известных паттернов проектирования. Применение структурных и порождающих паттернов через реальные инженерные задачи.
    Результат: получен опыт практического применения структурных и поведенческих паттернов проектирования.
  • Лабораторная работа 6. Продвинутое ООП. Знакомство с принципами построения усложненных связей между объектами (Dependency Injection). Взаимодействие паттернов проектирования между собой, создание интерфейсов для программных модулей. Изучение понятия юнит-тестирования и подхода TDD.
    Результат: освоен подход Dependency Injection в частности на примере создания модульных тестов.
  • Лабораторная работа 7. Проект. Освоение комплексных архитектурных паттернов. Знакомство с Clean Architecture. Применение всех предыдущих знаний для проектирование и разработки серверного приложения на одном из ООП-языков.
    Результат: спроектировано и реализовано полноценное backend приложение, освоено практическое применение лучших практик в построении архитектуры таких приложений.

Формат лабораторной работы

Каждая лабораторная работа будет иметь несколько пунктов.

  • Цель: формулировка цели работы. Краткая информация о теме и основных задачах.
  • Теоретическая часть: теоретические сведения и методические указания.
  • Задание: формулировка задания работы.
  • Definition of Done: чек-лист критериев, позволяющий объективно определить завершённость работы.

Критерии сдачи

Сдача лабораторных работ осуществляется в формате устного собеседования. Критерии сдачи в общем виде представляют собой:

  • выполнение всех пунктов из Definition of Done;
  • владение теоретическим материалом, относящимся к теме;
  • умение аргументировать выбранные архитектурные решения;
  • готовность продемонстрировать владение кодом (через выполнение дополнительных «лайв»-заданий). Также необходимо помнить, что все лабораторные необходимо сохранять в удаленный git-репозиторий (подойдет любой провайдер) со всей историей коммитов.

Сроки

Курс рассчитан на три контрольные точки. Каждая контрольная точка включает сдачу двух лабораторных работ:

  • до 1 марта: 1 и 2 лабораторные;
  • до 1 апреля: 3, 4 и 5 лабораторные
  • до 1 мая: 6 и 7 лабораторные.

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

About

Laboratory works on the subject of Object-Oriented Programming, BSUIR, FCSN, 2026

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors