Об'єктно-орієнтоване програмування 1
Мета вивчення дисципліни – формування у здобувачів глибокого розуміння принципів та методів об’єктно-орієнтованої парадигми програмування, розвиток навичок розроблення та підтримки складних програмних систем на основі об’єктно-орієнтованого аналізу і проєктування, а також підвищення рівня професійної компетентності в застосуванні сучасних мов, фреймворків та інструментів, які забезпечують ефективну реалізацію об’єктно-орієнтованих рішень. Дисципліна викладається протягом 3 та 4 семестрів для денної форми освіти та протягом 4 та 5 семестрів для заочної форми освіти, та входить до циклу професійної підготовки обов’язкової частини навчального плану освітньої програми «Інтелектуальний аналіз даних» для підготовки здобувачів першого (бакалаврського) рівня вищої освіти.
Практичне значення та використання отриманих знань – отримані знання мають практичну цінність для створення гнучких і масштабованих програмних систем, які легше підтримувати та модернізувати, а також дозволяють поліпшувати якість і надійність коду. Студенти, опанувавши основи об’єктно-орієнтованого програмування, здатні ефективно застосовувати різні мови та фреймворки у різних напрямах ІТ-індустрії, адаптуватись до вимог ринку та швидко освоювати нові технології. Вміння використовувати шаблони проєктування, принципи рефакторингу, перевірені підходи до тестування коду та інтеграції систем забезпечує більш професійний підхід до розроблення програмного забезпечення, спрощує командну взаємодію, сприяє швидшій адаптації до змінних вимог проєкту та підвищує конкурентоспроможність фахівця на сучасному ринку праці.
Тематика та види навчальних занять
Для денної форми здобування освіти
Лекційні заняття
Лекція №1 «Вступ до об'єктно-орієнтованого програмування. Основи ООП, принципи та переваги».
Лекція №2 «Створення класів та об'єктів. Примітивні та посилальні типи. Конструктор. Ключове слово this. Основи UML. Діаграма класів UML».
Лекція №3 «Основні принципи ООП. Поняття інкапсуляції. Інтерфейс і реалізація. Інкапсуляція в Java. Гетери та сетери. Інкапсуляція в дизайні класу».
Лекція №4 «Повторне використання коду. Композиція і наслідування. Клас Object. Порівняння композиції і наслідування».
Лекція №5 «Поліморфізм та його види. Статичне і динамічне зв’язування. Перевантаження методу. Перевизначення методу».
Лекція №6 «Принцип абстракції. Додаткові принципи ООП. Абстрактні класи та інтерфейси».
Лекція №7 «Анонімні об'єкти, класи та методи. Лямбда-вирази та функціональні інтерфейси».
Лекція №8 «Узагальнене програмування. Автопакування та авторозпакування типів. Узагальнений клас, інтерфейс, метод, конструктор. Стирання типів».
Лекція №9 «Колекції. Списки та черги. Класи Collections та Arrays».
Лекція №10 «Колекції. Множини та словники. Деякі корисні методи колекцій. Шаблон ‘Ітератор’».
Лекція №11 «Потоки даних в Java».
Лекція №12 «Налагодження та обробка помилок. Механізм винятків у Java. Перевірені проти неперевірених винятків».
Лекція №13 «Статичні поля, методи та класи. Перерахування та аргументи змінної довжини».
Лекція №14 «Введення та виведення в Java. Java I/O, NIO та NIO.2. Серіалізація та десеріалізація».
Лекція №15 «Як працює Java. JRE і JVM. Завантажувачі класу. Збір сміття. Типи посилань в Java».
Лабораторні роботи
Лабораторна робота №1 «Вступ до об'єктно-орієнтованого програмування. Основи ООП в Java». Мета роботи: набуття навичок роботи з основами об'єктно-орієнтованого програмування та створити просту програму на Java, що використовує основні принципи ООП.
Лабораторна робота №2 «Створення класів та об'єктів. UML діаграма класів». Мета роботи: розробити класи та об'єкти в Java, використовуючи UML діаграму класів для візуалізації структури програми.
Лабораторна робота №3 «Інкапсуляція в Java. Використання гетерів та сетерів». Мета роботи: реалізувати принцип інкапсуляції в класах, використовуючи приватні поля та методи доступу (гетери та сетери).
Лабораторна робота №4 «Композиція і наслідування в Java». Мета роботи: створити програми, що використовують композицію та наслідування для повторного використання коду.
Лабораторна робота №5 «Поліморфізм та перевантаження методів». Мета роботи: реалізувати поліморфізм у Java, використовуючи перевантаження та перевизначення методів.
Лабораторна робота №6 «Абстракція в Java. Абстрактні класи та інтерфейси». Мета роботи: розробити абстрактні класи та інтерфейси, реалізуючи принцип абстракції у програмі.
Лабораторна робота №7 «Анонімні класи та лямбда-вирази». Мета роботи: використати анонімні класи та лямбда-вирази для спрощення коду та використання функціональних інтерфейсів.
Лабораторна робота №8 «Узагальнене програмування в Java». Мета роботи: реалізувати узагальнені класи, методи та інтерфейси, застосувати автопакування та авторозпакування типів.
Лабораторна робота №9 «Колекції в Java. Списки та черги». Мета роботи: створити програми, що використовують різні типи колекцій, зокрема списки та черги.
Лабораторна робота №10 «Колекції в Java. Множини та словники». Мета роботи: реалізувати програми з використанням множин та словників для збереження даних та виконання операцій з ними.
Лабораторна робота №11 «Потоки даних в Java». Мета роботи: освоїти роботу з потоками даних у Java, зчитувати та записувати дані з файлів.
Лабораторна робота №12 «Обробка винятків в Java». Мета роботи: розробити програми з обробкою перевірених та неперевірених винятків, застосовуючи конструкції try-catch.
Лабораторна робота №13 «Статичні поля та методи в Java». Мета роботи: реалізувати статичні методи та поля, а також вивчити роботу з перерахуваннями та аргументами змінної довжини.
Лабораторна робота №14 «Введення та виведення даних в Java». Мета роботи: освоїти основні механізми вводу-виводу в Java, працювати з файлами за допомогою I/O та NIO.
Лабораторна робота №15 «Як працює Java. JRE і JVM». Мета роботи: розібратися в принципах роботи Java, дослідити роль JRE та JVM, а також зрозуміти процес управління пам'яттю та збір сміття. Для заочної форми здобування освіти
Лекційні заняття
Лекція №1 «Базові поняття та основні принципи об’єктно-орієнтованого програмування».
Лекція №2 «Розширене об’єктно-орієнтоване програмування: робота з колекціями та потоками даних, обробка помилок, введення та виведення».
Лабораторні роботи
Лабораторна робота №1 «Розробка класів та об'єктів з використанням основних принципів ООП». Мета роботи: набуття навичок роботи з основами створення класів та об'єктів у Java, застосовуючи принципи ООП, такі як інкапсуляція, наслідування та поліморфізм. Навчити використовувати гетери та сетери для доступу до приватних полів, реалізувати перевантаження та перевизначення методів, а також застосовувати абстракцію через абстрактні класи та інтерфейси.
Лабораторна робота №2 «Робота з даними, введення та виведення, обробка помилок». Мета роботи: навчити студентів працювати з даними за допомогою стандартних колекцій Java, здійснювати введення та виведення даних з використанням класів Java I/O. Набуття навичок роботи з механізмами обробки помилок через винятки, реалізувати обробку перевірених і неперевірених винятків, працювати з файлами для збереження та зчитування даних, а також використовувати потоки даних для ефективної обробки інформації в програмі. Індивідуальна робота
Для денної форми здобування освіти Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні:
1) 15-ти лабораторних робіт. Лабораторні роботи виконуються на комп’ютері з використанням додаткової програми IntelliJ IDEA відповідно до мети та завдань лабораторних занять. Бездоганне виконання лабораторних робіт №1 – №7 оцінюється у 4 бали, бездоганне виконання лабораторних робіт №8 – №15 оцінюється у 3 бали;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі комп'ютерного тестування. Бездоганне виконання першої модульної контрольної роботи оцінюється у 22 бали, бездоганне виконання другої модульної контрольної роботи оцінюється у 26 балів;
Підсумковий контроль – екзамен. Максимальна оцінка, яку може отримати студент – 100 балів. Для заочної форми здобуття освіти
Поточний контроль полягає у виконанні:
1) двох лабораторних робіт. Лабораторні роботи виконуються на комп’ютері з використанням додаткової програми IntelliJ IDEA відповідно до мети та завдань лабораторних занять. Бездоганне виконання кожної лабораторної роботи оцінюється у 20 балів;
2) контрольної роботи. Бездоганне виконання та захист контрольної роботи оцінюється у 60 балів;
Підсумковий контроль – екзамен. Максимальна оцінка, яку може отримати студент – 100 балів.
ПРН1. Застосовувати знання основних форм і законів абстрактно-логічного мислення, основ методології наукового пізнання, форм і методів вилучення, аналізу, обробки та синтезу інформації в предметній області комп'ютерних наук.
ПРН5. Проектувати, розробляти та аналізувати алгоритми розв’язання обчислювальних та логічних задач, оцінювати ефективність та складність алгоритмів на основі застосування формальних моделей алгоритмів та обчислюваних функцій.
ПРН9. Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.