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

Обов'язкова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 6.0.
Кількість аудиторних занять: 
: 15 лекцій, 7 практичних занять, 8 лабораторних занять.
Самостійна робота: 
складає 90 годин. Самостійна робота здобувача відбувається впродовж семестру та складається з підготовки до аудиторних занять, контрольних заходів, виконання завдань до практичних занять.
Індивідуальна робота: 
• очна форма — курсова робота.
Семестровий контроль: 
Екзамен. Захист курсової роботи.
Освітню компоненту забезпечує: 
Анотація: 

Анотація навчальної дисципліни

Мета вивчення дисципліни 
Формування комплексу знань і вмінь для застосування методів об’єктно-орієнтованого аналізу та моделювання для розробки програмного забезпечення на основі Java. Оволодіння практикою сучасного програмування на мові Java в рамках парадигм об’єктно-орієнтованого підходу до створення програмних продуктів . 

Практичне значення та використання отриманих знань 
Оволодіння методологією об’єктно-орієнтованого підходу до створення програмного забезпечення; практичне застосування принципів абстрагування і моделювання в проектуванні програмних класів; вміння формулювати вимоги до проектування та звіти по результатах розробки і тестування; вміння обирати ефективні структури класів і алгоритмів, які вони реалізують;  вміння працювати у сучасних середовищах програмування і повною мірою використовувати їх можливості.

Основні результати навчання

ПРН04. Знати і застосовувати професійні стандарти і інші нормативно-правові документи в галузі інженерії програмного забезпечення.
ПРН05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
ПРН12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення.
ПРН13. Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
ПРН14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.

Тематика та види навчальних занять

1 тиждень
Лекція 1. Визначення Особливості та призначення мови Java. Віртуальна Java-машина, байт-код, JIT-компіляція. Найпростіші конструкції мови. Типи даних. Рядки (клас String)
Лабораторне заняття 1. Робота з рядками у мові  Java

2 тиждень
Лекція 2. Математичні функції. Робота з масивами. Особливості використання оперaторів break і continue. 
Практичне заняття 1. Робота з масивами і операторами break і continue. 

3 тиждень
Лекція 3. Класи та об’єкти. Створення класу, конструктори, ключове слово this. 
Лабораторне заняття 2. Класи у мові Java.

4 тиждень
Лекція 4. Статичні  дані та методи. Модифікатор final. Константи. Знищення об'єкту. Метод finalize
Практичне заняття 2. Робота з статичними даними і методами.

5 тиждень
Лекція 5. Успадкування. Доступ до елементів класу. Конструктори базового і похідного класів.  
Лабораторне заняття 3. Спадкування у мові Java

6 тиждень
Лекція 6. Сумісність об'єктів при спадкуванні. Поліморфізм. Перевантаження методів. Динамічне зв'язування. Використання ключового слова final для запобігання спадкування.
Практичне заняття 3. Побудова ієрархії класів перевантаження методів.

7 тиждень
Лекція 7. Інтерфейси. Опис і реалізація інтерфейсу. Спадкування інтерфейсів. Посилання на інтерфейс.
Лабораторне заняття 4. Застосування інтерфейсів.
Модульна контрольна робота №1

8 тиждень
Лекція 8. Обробка виняткових ситуацій. Класифікація виняткових ситуацій. Принцип обробки виняткових ситуацій. Оператори try і catch. 
Практичне заняття 4. Обробка виняткових ситуацій. Застосування блоків try і catch.

9 тиждень
Лекція 9. Генерація виняткової ситуації. Створення власних класів виняткових ситуацій. Оголошення виняткових ситуацій, які може згенерувати метод. Оператор finally
Лабораторне заняття 5. Обробки виняткових ситуацій

10 тиждень
Лекція 10. Узагальнення (шаблони). Параметризовані типи. Узагальнені класи. Узагальнення і спадкування.
Практичне заняття 5. Проектування узагальнених класів.

11 тиждень
Лекція 11. Колекції. Типи колекцій. Інтерфейс Collection. Класи колекцій: ArrayList, LinkedList, ArrayDeque, HashSet, TreeSet. 
Лабораторне заняття 6. Робота з колекціями

12 тиждень
Лекція 12. Потоки введення-виведення. Робота з файлами. Форматоване введення та виведення. Читання та запис текстових файлів. Серіалізація.
Практичне заняття 6. Читання і запис текстових файлів. Серіалізація об’єктів.

13 тиждень
Лекція 13. Графіка. Компонент і контейнер. Клас Graphics. Графічні примітиви. Можливості Java 2D. Розробки Java 3 D.
Лабораторне заняття 7. Графіка.

14 тиждень
Лекція 14. Події і слухачі. Типи подій і слухачів. Обробники подій. Адаптери.
Практичне заняття 7. Створення програм керованих подіями.
Модульна контрольна робота №2

15 тиждень
Лекція 15. Створення проекту. Створення контейнера JFrame. Управління компоновкою. Розміщення панелі на фреймі і на іншій панелі. Заповнення панелей компонентами. Додавання методів обробки подій. 
Лабораторне заняття 8. Графічний інтерфейс користувача.

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

Курсова робота виконується згідно з графіком навчального процесу. На її виконання відводиться 30 годин індивідуальної роботи студента. Робота повинна підтвердити опанування студентом дисципліни та прищепити навички самостійної  і колективної розробки, освоєння інтегрованих середовищ програмування і налагодження програм, набуття навичок в оформлені проектної документації.
Тематика курсової роботи періодично зазнає уточнення і коригування. Курсова робота виконується окремо кожним студентом.
Етапи виконання курсової роботи:
−    видача завдань (1-2 тиждень);
−    самостійна робота студентів (3-14 тиждень);
−    захист курсової роботи (15 тиждень).

Оцінювання результатів навчання

Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Оцінка за виконання практичних робіт (1 – 3) – максимально 10 балів за модуль. 
Оцінка за виконання лабораторних робіт (1 – 4) – максимально 10 балів за модуль. 
Модульна контрольна робота 1 – бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання). 

Модуль 2
Оцінка за виконання практичних робіт (4 – 6) – максимально 10 балів за модуль.
Оцінка за виконання лабораторних робіт (5 – 8) – максимально 10 балів за модуль. 
Модульна контрольна робота 2 – бездоганне виконання 30  балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання). 
Оцінка за виконання курсової роботи – бездоганне виконання 100 балів.

Посилання на рекомендовані джерела
1.    Iuliana Cosmina. Java 17 for Absolute Beginners: Learn the Fundamentals of Java Programming. Edinburgh, UK. 2022. – 792 р.
2.    Nick Samoylov. Learn Java 12 Programming Published by Packt Publishing Ltd.  2019. – 666 р.
3.    Kishori Sharan. Java Language Features:With Modules, Streams, Threads, I/O, and Lambda Expressions. Library of Congress Control Number: 2018932349. 2018 -  892 р.
4.    Java-програмування: комп’ютерний практикум  уклад.: Ю. А. Тарнавський. –Київ : КПІ ім. Ігоря Сікорського, 2021. – 95 с.
 

2022 рік