Об'єктно-орієнтоване програмування 2

Обов'язкова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5; • у навчальних годинах — 135.
Розподіл навчальних годин (аудиторні заняття / самостійна робота): 
• очна форма — 44 / 91; • заочна форма — 8 / 127.
Кількість аудиторних занять за видами (лекції / практичні заняття / лабораторні заняття): 
• очна форма — 15 / 0 / 7; • заочна форма — 2 / 0 / 2.
Індивідуальна робота: 
• очна форма — курсова робота; • заочна форма — курсова робота, контрольна робота.
Семестровий контроль: 
Екзамен. Захист курсової роботи.
Освітню компоненту забезпечує: 
Анотація: 

Мета вивчення дисципліни – формування у здобувачів глибокого розуміння принципів та методів об’єктно-орієнтованої парадигми програмування, розвиток навичок розроблення та підтримки складних програмних систем на основі об’єктно-орієнтованого аналізу і проєктування, а також підвищення рівня професійної компетентності в застосуванні сучасних мов, фреймворків та інструментів, які забезпечують ефективну реалізацію об’єктно-орієнтованих рішень. Дисципліна викладається протягом 3 та 4 семестрів для денної форми освіти та протягом 4 та 5 семестрів для заочної форми освіти, та входить до циклу професійної підготовки обов’язкової частини навчального плану освітньої програми «Інтелектуальний аналіз даних» для підготовки здобувачів першого (бакалаврського) рівня вищої освіти.
Практичне значення та використання отриманих знань – отримані знання мають практичну цінність для створення гнучких і масштабованих програмних систем, які легше підтримувати та модернізувати, а також дозволяють поліпшувати якість і надійність коду. Студенти, опанувавши основи об’єктно-орієнтованого програмування, здатні ефективно застосовувати різні мови та фреймворки у різних напрямах ІТ-індустрії, адаптуватись до вимог ринку та швидко освоювати нові технології. Вміння використовувати шаблони проєктування, принципи рефакторингу, перевірені підходи до тестування коду та інтеграції систем забезпечує більш професійний підхід до розроблення програмного забезпечення, спрощує командну взаємодію, сприяє швидшій адаптації до змінних вимог проєкту та підвищує конкурентоспроможність фахівця на сучасному ринку праці.
Тематика та види навчальних занять

Для денної форми здобування освіти

Лекційні заняття

Лекція №1 «Клієнт-серверна архітектура. Сокети. Технологія Java Servlet».
Лекція №2 «Інверсія контролю та впровадження залежностей. Технологія JavaBeans. Проект Spring».
Лекція №3 «Протоколи HTTP і HTTPS. Архітектурний стиль REST та механізм GraphQL. RESTful вебсервіси».
Лекція №4 «REST-контролери в Java Spring. Формат JSON. Програмне забезпечення для емуляції клієнта Postman».
Лекція №5 «Розгортання Spring-додатків: Розгортання Spring-додатків, налаштування серверів, використання контейнерів та основи DevOps для автоматизації процесів розгортання».
Лекція №6 «Тестування в Spring. Використання Spring Test, JUnit для тестування компонентів Spring».
Лекція №7 «Інтеграція баз даних. Технологія ORM. Фреймворк Hibernate. Модуль Spring Data JPA».
Лекція №8 «Розробка вебдодатків за допомогою фреймворку Spring MVC».
Лекція №9 «Створення представлень вебдодатку за допомогою фреймворку Thymeleaf».
Лекція №10 «Аспектно-орієнтоване програмування. Впровадження механізмів журналювання в додаток Spring».
Лекція №11 «Фреймворк Spring Security. Автентифікація та авторизація».
Лекція №12 «Фреймворк Spring Security. Сеанси, файли Сookie та Java Web Tokens. Протокол OAuth2».
Лекція №13 «Мікросервіси та їх використання в Spring: Вступ до архітектури мікросервісів, розробка мікросервісів за допомогою Spring Boot і Spring Cloud».
Лекція №14 «Spring Data Redis. Використання Redis для кешування та зберігання даних».
Лекція №15 «Підсумкова лекція. Стислий огляд інших компонентів Spring».

Лабораторні роботи

Лабораторна робота №1 «Інверсія контролю та впровадження залежностей. Створення простого Spring-додатку та клієнт-серверного додатку на Socket». Мета роботи: набуття навичок роботи з технологією JavaBeans і принципом інверсії контролю, створити перші компоненти Spring-додатку, а також реалізувати простий клієнт-серверний додаток на Socket, де сервер обробляє запити від клієнта.

Лабораторна робота №2 «Створення RESTful вебсервісу за допомогою Spring». Мета роботи: розробити базовий RESTful вебсервіс, використовуючи Spring, та налаштувати відповідні контролери.

Лабораторна робота №3 «Розгортання Spring-додатку на сервері». Мета роботи: навчитися розгортати Spring-додаток на сервері, налаштовувати сервер та використовувати основи DevOps для автоматизації процесу.

Лабораторна робота №4 «Інтеграція бази даних в Spring-додаток через Hibernate». Мета роботи: налаштувати ORM з Hibernate та інтегрувати базу даних в Spring-додаток для зберігання даних.

Лабораторна робота №5 «Впровадження журналювання в Spring-додаток». Мета роботи: реалізувати аспектно-орієнтоване програмування для журналювання в Spring-додатку, що допоможе відслідковувати важливі операції.

Лабораторна робота №6 «Розробка системи автентифікації та авторизації в Spring Security». Мета роботи: додати в Spring-додаток механізми автентифікації та авторизації за допомогою Spring Security.

Лабораторна робота №7 «Інтеграція Redis в Spring-додаток для кешування та зберігання даних». Мета роботи: налаштувати Redis для кешування та зберігання даних в Spring-додатку, покращити продуктивність та масштабованість додатку.

Для заочної форми здобування освіти

Лекційні заняття

Лекція №1 «Основи розробки корпоративних та веб додатків з використанням фреймворку Java Spring».
Лекція №2 «Розширені можливості Spring: безпека, тестування, мікросервіси та ефективне управління даними».

Лабораторні роботи
Лабораторна робота №1 « Розробка простого корпоративного додатку за допомогою Java Spring». Мета роботи: набуття навичок роботи з основними компонентами фреймворку Spring. Навчити створювати базові корпоративні додатки з використанням Spring Boot, реалізувати контролери, інтеграцію з базами даних через Spring Data JPA, а також працювати з RESTful веб-сервісами для обміну даними між клієнтом та сервером.
Лабораторна робота №2 «Робота з даними, введення та виведення, обробка помилок». Мета роботи: навчити студентів працювати з просунутими можливостями Spring, включаючи реалізацію безпеки за допомогою Spring Security (автентифікація, авторизація, JWT). Окремо буде розглянуто використання JUnit для тестування компонентів, а також створення та налаштування мікросервісів із використанням Spring Boot та Spring Cloud для побудови масштабованих додатків.

Консультації здійснюються впродовж семестру згідно встановленого розкладу.

Індивідуальна робота

Курсова робота

Мета курсової роботи – закріпити теоретичні знання та набути практичного досвіду у створенні сучасних програмних застосунків на базі Java та фреймворку Spring, інтегруючи різні компоненти та застосовуючи принципи об’єктно-орієнтованого програмування, інверсії контролю й автоматизації розгортання..
Здобувач отримує завдання на першому в семестрі лабораторному занятті.
Пояснювальна записка містить 25-30 сторінок. Кількість розділів – 3.
Змістовна послідовність виконання роботи.
1. Аналіз вимог та архітектура – визначення функціональності системи;
2. Створення каркасу Spring-додатку – ініціалізація проєкту, впровадження IoC та базових компонентів.
3. Реалізація RESTful сервісів – створення контролерів, налагодження маршрутизації, повернення даних у форматі JSON.
4. Інтеграція бази даних та ORM – налаштування підключення до СУБД, впровадження Hibernate, використання Spring Data JPA.
5. Безпека та авторизація – впровадження Spring Security, налаштування механізмів автентифікації та контролю доступу.
6. Оптимізація та кешування – використання Redis для кешування запитів і даних, покращення швидкодії.
7. Розгортання та тестування – конфігурування середовища виконання, автоматизація розгортання, тестування функціоналу й документування рішення.
Захист курсової роботи – протягом останнього навчального тижня семестру.

Для заочної форми здобуття освіти, у четвертому та п’ятому семестрах, передбачено виконання контрольної роботи.

Завдання для контрольної роботи здобувач отримує а установчій лекції. Робота містить 5 теоретичних питань та практичне завдання. Кожне теоретичне питання оцінюється у 4 бали, практичне завдання оцінюється у 40 балів. Максимальна оцінка за контрольну роботу – 60 балів.
Відповіді на теоретичні питання повинні бути написані самостійно, без використання матеріалу конспекту лекцій. Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.

Форми контрольних заходів та оцінювання результатів навчання

Для денної форми здобуття освіти

Поточний контроль полягає у виконанні:
1) 7-ми лабораторних робіт. Лабораторні роботи виконуються на комп’ютері з використанням додаткових програм IntelliJ IDEA та Postman відповідно до мети та завдань лабораторних занять. Бездоганне виконання лабораторних робіт №1 – №3 оцінюється у 8 балів, бездоганне виконання лабораторних робіт №4 – №7 оцінюється у 7 балів;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі комп'ютерного тестування. Бездоганне виконання першої модульної контрольної роботи оцінюється у 26 балів, бездоганне виконання другої модульної контрольної роботи оцінюється у 22 бали;
Підсумковий контроль – екзамен. Максимальна оцінка, яку може отримати студент – 100 балів.
Виконання курсової роботи оцінюється таким чином: перша частина курсової роботи – 30 балів, друга частина курсової роботи – 30 балів, та захист курсової роботи – 40 балів.

Для заочної форми здобуття освіти

Поточний контроль полягає у виконанні:
1) двох лабораторних робіт. Лабораторні роботи виконуються на комп’ютері з використанням додаткових програм IntelliJ IDEA та Postman відповідно до мети та завдань лабораторних занять. Бездоганне виконання кожної лабораторної роботи оцінюється у 20 балів;
2) контрольної роботи. Бездоганне виконання та захист контрольної роботи оцінюється у 60 балів;
Підсумковий контроль – екзамен. Максимальна оцінка, яку може отримати студент – 100 балів.
Виконання курсової роботи оцінюється таким чином: пояснювальна записка – 60 балів, захист курсової роботи – 40 балів.

Результати навчання: 

ПРН1. Застосовувати знання основних форм і законів абстрактно-логічного мислення, основ методології наукового пізнання, форм і методів вилучення, аналізу, обробки та синтезу інформації в предметній області комп'ютерних наук.
ПРН5. Проектувати, розробляти та аналізувати алгоритми розв’язання обчислювальних та логічних задач, оцінювати ефективність та складність алгоритмів на основі застосування формальних моделей алгоритмів та обчислюваних функцій.
ПРН9. Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.

b272515 ▪ 2025 рік