МОВА ПРОГРАМУВАННЯ JAVA - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання Очна(денна)/заочна/дистанційна
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 4 кредити ECTS / 120 годин (36 годин лекцій, 18 годин лабораторних робіт, 66 годин – СРС)
Семестровий контроль/ контрольні заходи Екзамен, МКР, захист лабораторних робіт
Розклад занять

1 лекція (2 години) 1 раз на тиждень;

1 лабораторна робота (2 години) 1 раз на 2 тижні.

Мова викладання Українська
Інформація про
керівника курсу / викладачів
Лектор / Лабораторні: Старший викладач кафедри ІСТ., Ph.D, Орленко С.П., orlenko_sergey@tk.kpi.ua
Розміщення курсу В Телеграм групі дисципліни та в Campus

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Дана дисципліна орієнтована на вивчення мови програмування Java людьми як з мінімальним рівнем знання програмування, так і студентами, які хочуть покращити свої знання з певних нюансів мови. Завдяки передбаченим до виконання лабораторним роботам, слухачі курсу засвоюють теоретичний матеріал та отримують практичні навички розробки програмного забезпечення.

Метою навчальної дисципліни є оволодіння студентами базових засобів мови програмування Java для проектування, розробки та супроводу прикладних додатків при вирішенні прикладних задач; формування навичок роботи з інструментальними засобами. Важливою метою є формування та закріплення у студентів наступних компетентностей: Здатність аналізувати об’єкт проектування або функціонування та його предметну область; Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфокомунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші); Здатність використовувати сучасні інформаційні системи та технології (виробничі, підтримки прийняття рішень, інтелектуального аналізу даних та інші), методики захисту інформації та кібербезпеки під час виконання функціональних завдань та обов’язків; Здатність вибору, проектування, розгортання, інтегрування, управління, адміністрування та супроводжування інформаційних систем, технологій, інфокомунікацій, сервісів та інфраструктури організацій.

Предмет навчальної дисципліни – мова програмування Java, принципи і шаблони проектування додатків, їх реалізація та тестування з використанням інструментальних засобів розробки програмного забезпечення.

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

Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою).

Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами «Вища математика», «Дискретна математика», «Основи програмування», «Структури даних та алгоритми», «Бази даних».

Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальшого вивчення освітніх компонентів «Розроблення застосунків на платформі Jakarta EE», «Розроблення застосунків з використанням Spring Framework», «Технології розроблення програмного забезпечення», «Управління проектами», «Проектування інформаційних систем».

Зміст навчальної дисципліни

Розділ 1. Особливості мови програмування Java

Тема 1.1. Історія розвитку та застосування

Тема 1.2. Структура, функції та робота JVM

Розділ 2. Лексична структура мови

Тема 2.1. Основні оператори

Тема 2.2. Типи даних

Тема 2.3. Масиви

Тема 2.4. Конструювання класів

Тема 2.5. Обробка строк

Тема 2.6. Регулярні вирази

Тема 2.7. Вирішення перевантажень

Розділ 3. ООП в Java

Тема 3.1. Принципи ООП

Тема 3.2. Модифікатори доступу

Тема 3.3. Абстрактні класи

Тема 3.4. Інтерфейси

Тема 3.5. Вкладені, локальні та анонімні класи.

Тема 3.6. Типи відносин між класами і інтерфейсами

Тема 3.7. Архітектурний шаблон MVC

Тема 3.8. Створення і використання пакетів

Розділ 4. Виключні ситуації та узагальнене програмування

Тема 4.1. Виключні ситуації

Тема 4.2. Узагальнене програмування на мові Java (Generics).

Розділ 5. Архітектура та принципи проектування ПЗ

Тема 5.1. Архітектура ПЗ

Тема 5.2. Принципи та шаблони проектування ПЗ

Розділ 6. Колекції (Java Collections Framework)

Тема 6.1. Використання колекцій

Тема 6.2. Ієрархія колекцій

Тема 6.3. Реалізації колекцій

Розділ 7. Потоки вводу/виводу

Тема 7.1 Організація потоків

Тема 7.2. Серіалізація

Тема 7.3. Робота з файлами

Тема 7.4. Робота з успадкуванням

Розділ 8. Лямбда вирази в Java

Тема 8.1. Поняття лямбда виразу

Тема 8.2. Функціональні інтерфейси

Тема 8.3. Потокова обробка даних

Розділ 9. Потоки виконання.

Тема 9.1. Потоки та JVM

Тема 9.2. Багато поточність

Тема 9.3. Взаємодія потоків.

Тема 9.4. Синхронізація

Тема 9.5. Організація конкурентного доступу

Розділ 10. Рефлексія. Інтернаціоналізація та логування.

Тема 10.1. Рефлексія

Тема 10.2. Інтернаціоналізація

Тема 10.3. Логування

Розділ 11. СКВ та модульне тестування

Тема 11.1. Системи керування версій

Тема 11.2. Модульне тестування

Розділ 12. Бази даних

Тема 12.1. SQL бази даних

Тема 12.2. NoSQL бази даних

Тема 12.3. Робота з базами даних у Java

Навчальні матеріали та ресурси

Основна література:

  • Б. Эккель Thinking in Java (4 видання) – Print2print, 2022. – 1168 с.

  • К. Арнольд, Дж. Гослинг, Д. Холмс. Язык программирования Java. 3-е изд.-М: «Вильямс», 2010.-624 с.

  • К.С. Хорстманн, Г.Корнелл. Библиотека профессионала. Java . Том 1. Основы, 7-е изд. -М: «Вильямс», 2008.-896 с. К.С. Хорстманн, Г.Корнелл. Библиотека профессионала. Java 2. Том 2. Тонкости программирования, 7-е изд. -М: «Вильямс», 2007. – 1168 с.

  • Фишер Т. Java Карманный справочник . М. ООО «Вильмс», 2008. – 224с.

  • Карабин П. Язык программирования Java. Создание интерактивных приложений для Internet, М. «Познавательна книга», 2001. – 224с.

  • С.А. Кравчук, Шонин В.А. Основы программирования на языке Java. –

    К.: Норіта-плюс, 2007. – 280 с.

Додаткова література:

    1. Gamma, R. Helm, R. Johnson, J. Vlissides Design Patterns: Elements of Reusable Object-Oriented Software (1st Edition). - Addison-Wesley Professional, 1994. - 416 p.
  • П. Ноутон, Г Шилдт Java. – СПб.: БХВ-Петербург, 2007. – 1072с.

  • Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. – М.: Мир, 1981. – 368с.

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to the algorithms. – The MIT Press, 2001. – 1180p.

  • Библиотека профессионала. Java 2. Том 1. – М: Издательский дом «Вильямс», 2003. – 848 с.

  • Библиотека профессионала. Java 2. Том 2. – М: Издательский дом «Вильямс», 2002. – 1120 с.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

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

з/п

Назва теми лекції та перелік основних питань

(перелік дидактичних засобів, посилання на інформаційні джерела)

1

Розділ 1. Особливості мови програмування Java

Основні питання: Теми 1.1. та 1.2. На першому занятті розглядається історія створення та розвитку мови програмування Java, перехід до шестимісячної моделі випуску нових та Long Term Support релізів, визначаються сфери застосування. На прикладі простого прикладу розглядається механізм виконання Java програм, структура, функції та робота Java віртуальної машини. Також студенти отримують базову інформацію про процес тестування додатків, основна увага приділена модульному тестуванню.

2

Теми 2.1. Основні оператори 2.2. Типи даних 2.3. Масиви 2.4 Конструювання класів

Основні питання: оператори їх пріоритети та особливості роботи. Типи даних, виділення пам’яті; для примітивних типів розглядаються процеси розширення/звуження та упаковки/розпаковки їх у відповідні класи-обгортки, наводяться спеціальні класи, здатні працювати без втрати точності. Масиви одновимірні та багатовимірні. Вводиться поняття класу, розглядаються різноманітні особливості конструювання та створення його екземплярів.

3

Теми 2.5. Обробка строк 2.6. Регулярні вирази 2.7. Вирішення перевантажень

Основні питання: дослідження методів роботи зі строками, в тому числі з використанням регулярних виразів; докладно розглядається вирішення перевантажень на різних етапах.

4

Теми 3.1. Принципи ООП та 3.2. Модифікатори доступу

Основні питання: розглядається парадигма об’єктно-орієнтованого програмування її принципи та застосування; використання модифікаторів доступу та їх вплив на області видимості.

5

Теми 3.3. Абстрактні класи 3.4. Інтерфейси 3.5. Вкладені, локальні та анонімні класи.

Основні питання: розглядається робота з класами та інтерфейсами з точки зору принципів ООП.

6

Теми 3.6. Типи відносин між класами і інтерфейсами 3.7. Архітектурний шаблон MVC 3.8. Створення і використання пакетів

Основні питання: зв’язки між класами та інтерфейсами з точки зору уніфікованої мови моделювання; проектування додатків на основі шаблону Model-View-Controller; робота з пакетами в Java.

7

Теми 4.1. Виключні ситуації та 4.2. Узагальнене програмування на мові Java

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

8

Теми 5.1. Архітектура ПЗ 5.2. Принципи та шаблони проектування ПЗ

Основні питання: Основні принципи розробки архітектури ПЗ, основні типи архітектур, принципи SOLID, шаблони GRASP.

9

Теми 6.1. Використання колекцій 6.2. Ієрархія колекцій 6.3. Реалізації колекцій

Основні питання: Поява Java Collections Framework, основні інтерфейси Collections API, абстрактні класи для власних реалізацій колекцій, методи класу Collection, ітерування елементів колекцій.

10

Теми 6.3. Реалізації колекцій

Основні питання: Множини (Set), списки (List), черги (Queue), асоціативні масиви (Map), важливість правильного перевизначення методів equals() та hashCode().

11

Теми 7.1 Організація потоків та 7.2. Серіалізація

Основні питання: Поняття потоку вводу/виводу, їх класифікація по типам даних, помилки та методи роботи з ними, ланцюги потоків. Об'єктні потоки та серіалізація, особливості роботи зі складеними об’єктами.

12

Теми 7.3. Робота з файлами та 7.4. Робота з успадкуванням

Основні питання: Файлові потоки вводу/виводу, особливості роботи з файлами, автоматичне управління ресурсами. Розглядаються особливості серіалізації при успадкуванні.

13

Теми 8.1. Поняття лямбда виразу 8.2. Функціональні інтерфейси 8.3. Потокова обробка даних

Основні питання: Використання лямбда виразів, існуючі та власні функціональні інтерфейси, їх сімейства, області видимості; потокова обробка даних (Stream API).

14

Теми 9.1. Потоки та JVM 9.2. Багато поточність 9.3. Взаємодія потоків.

Основні питання: Паралельні обчислення, потоки виконання їх типи, стани, запуск та блокування; взаємодія та взаємне блокування потоків, використання спільних ресурсів.

15

Теми 9.4. Синхронізація 9.5. Організація конкурентного доступу

Основні питання: високорівневі методи паралельного виконання та взаємодії потоків, взаємодія потоків на основі умовних змінних, синхронізовані колекції, використання пулу потоків, фреймворк Fork/Join, механізм синхронізаторів загального призначення.

16

Теми 10.1. Рефлексія 10.2. Інтернаціоналізація 10.3. Логування

Основні питання: Процес завантаження класів, можливості та використання рефлексії, інтернаціоналізація, локалізація додатків, створення пакетів ресурсів, Log4j, рівні та форматування логування.

17

Теми 11.1. Системи керування версій 11.2. Модульне тестування

Основні питання: Проблеми контрою версій, системи їх контролю: локальні, централізовані, розподілені, Git. Використання та створення модульних тестів, фреймворки JUunit.

18

Теми 12.1. SQL бази даних 12.2. NoSQL бази даних 12.3. Робота з базами даних у Java

Основні питання: Реляційні бази даних, мова SQL, NoSQL бази даних, створення запитів, робота з БД в Java, JDBC, транзакції.

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

№ з/п Перелік лабораторних робіт
1

Лабораторна робота 1. Робота з циклами, масивами та рядками в Java.

Мета роботи – здобути досвід роботи з Java Development Kit та обраним інтегрованим середовищем розробки при практичному вирішенні обраного завдання, ознайомитись з процесом виконання Java програм.

2

Лабораторна робота 2. Робота з класами.

Мета роботи – практичне закріплення набутих знань з конструювання класів, створення та робота з їх екземплярами, ознайомлення з поняттям серіалізації за допомогою сторонніх бібліотек та використання методів класу Object.

3

Лабораторна робота 3. Використання ООП та шаблону MVC.

Мета роботи – закріплення на практиці знань з принципів об’єктно орієнтованого програмування: абстракція, інкапсуляція, поліморфізм та наслідування; створення додатку з використанням архітектурного шаблону model-view-controller.

4

Лабораторна робота 4. Використання узагальненого програмування.

Мета роботи – засвоїти принципи та підходи використання узагальненого програмування; знайомство з модульним тестуванням за допомогою фреймворку JUnit.

5

Лабораторна робота 5. Потоки вводу/виводу та серіалізація.

Мета роботи – створення додатків для роботи з файлами з використанням потоків вводу/виводу, опанування користувацької серіалізації, підключення до інтернет джерел та їх аналіз їх вмісту.

6

Лабораторна робота 6. Java Collections Framework.

Мета роботи – практичне освоєння роботи з фреймворком колекцій в Java, доцільність вибору конкретних реалізацій та особливості їх роботи.

7

Лабораторна робота 7. Лямбда вирази в Java.

Мета роботи – набуття навиків у роботі з лямбда виразами та функціональними інтерфейсами, використання потокової обробки даних (Stream API).

8

Лабораторна робота 8. Multithreading.

Мета роботи – ознайомлення з поняттям розпаралелювання та потоків виконання, практичне освоєння алгоритму запуску потоку виконання, синхронізації, блокування та спілкування між ними.

9

Лабораторна робота 9. Організація конкурентного доступу.

Мета роботи – набуття практичних навичок у використанні високорівневих методів паралельного виконання та взаємодії потоків, взаємодія потоків на основі умовних змінних, використання пулу потоків, створення додатків з використанням фреймворку Fork/Join.

10

Лабораторна робота 10. Reflection, Logging, Internalization.

Мета роботи – практично дослідити можливості рефлексії, освоїти створення та налаштування лог-журналів за допомогою Log4j, набути навички створення додатків з можливістю локалізації.

Матеріали до лекційних та лабораторних робіт доступні для завантаження в телеграм групі дисципліни та в системі підтримки навчального процесу «Електронний кампус» виключно здобувачам, які обрали на курс «Мова програмування Java» за посиланням https://ecampus.kpi.ua/

Самостійна робота студента

№ з/п Вид самостійної роботи Кількість годин СРС
1 Повторення лекційного матеріалу 18
2 Підготовка до лабораторних робіт 42
3 Підготовка до заліку 6
Всього 66

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які викладач ставить перед студентом:

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та лабораторних заняттях.

правила поведінки на заняттях: студент має можливість отримувати бали за відповідні види навчальної активності на лекційних та практичних заняттях, передбачені РСО дисципліни. За наявності конфліктних ситуацій, вони мають відкрито обговорюватись з викладачем, необхідно бути взаємно толерантним, поважати думку іншого. Використання засобів зв’язку для пошуку інформації в інтернеті здійснюється за умови вказівки викладача;

  • заохочувальні бали виставляються за підготовку та проведення доповідей на лекційних заняттях. Кількість заохочуваних балів не більше 10;

  • виставлення оцінок: кожна оцінка виставляється відповідно до розробленої викладачем та оголошеної на першому занятті РСО; у разі невиконання студентом всіх передбачених робочим навчальним планом завдань (лабораторних робіт) до заліку він не допускається. Якщо студент не може бути присутніми на заняттях, він повинен відпрацювати самостійно лабораторні роботи та здійснити захист на занятті або відповідно до графіку на консультації у викладача.

  • штрафні бали виставляються за невчасне подання до захисту лабораторних робіт – за кожне пропущене заняття -1 бал, але не більше -4 балів за 1 роботу.

  • політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Мова програмування Java»»;

  • при використанні цифрових засобів зв’язку з викладачем (мобільний зв’язок, електронна пошта, месенджери, форуми чи соціальні мережі, тощо) необхідно дотримуватись загальноприйнятих етичних норм, зокрема бути ввічливим та обмежувати спілкування робочим часом викладача.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Поточний контроль: вправи на лекційних заняттях, тестування, , виконання та захист лабораторних робіт.

Календарний контроль: провадиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу.

Семестровий контроль: залік.

Умови допуску до семестрового контролю: виконані та захищені лабораторні роботи, семестровий рейтинг більше 35 балів.

Рейтинг студента з дисципліни складається із балів стартового рейтингу (протягом семестру). Бали стартового рейтингу протягом семестру студент отримує за:

  • виконання та захист лабораторних робіт;

  • проведення доповідей на лекційних заняттях (заохочувальні бали).

Система рейтингових балів та критерії оцінювання

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

Ваговий бал. Всі лабораторні роботи мають ваговий бал 10. Максимальна кількість балів за всі лабораторні роботи складає 10 балів * 10 робіт = 100 балів.

На лабораторних роботах студенти перевіряють працездатність написаних програм за попередньо вирішеними вдома задачами. Для допуску до поточної лабораторної роботи необхідно мати Протокол, оформлений відповідно до норм оформлення технічної документації, який має містити всі необхідні пункти, відповідно до Методичних вказівок. Також для допуску до лабораторної роботи (окрім 1-ї) необхідно захистити попередню. Студенти, що не захистили попередню лабораторну роботу можуть бути не допущені до виконання наступної.

Критерії оцінювання лабораторних робіт: «відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 10 балів; «добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 9-8 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 7-6 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.

За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал, але не більше 4 балів за одну роботу.

УВАГА! Захист всіх лабораторних робіт є умовою допуску до складання заліку. Студенти, що на момент консультації перед заліком не захистили лабораторні роботи, не допускаються до основної здачі та готуються до перескладання.

Заохочувальні бали

За активну роботу на лекційному занятті та проведення доповідей на лекційних заняттях, але в сумі не більше 10 балів.

Штрафні бали

За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал, але не більше 4 балів за одну роботу.

Календарний контроль

На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 21 бал. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 42 бали.

Форма семестрового контролю – Залік

Необхідною умовою заліку є виконання усіх лабораторних робіт та стартовий рейтинг не нижче 35 балів (частина робіт може бути захищена на оцінку «незадовільно»).

Залік проводиться на останньому за розкладом занятті в семестрі. Якщо стартовий рейтинг протягом семестру становить 60 балів та вище, залікова оцінка, за згодою студента, переноситься в залікову відомість.

У випадку, коли семестровий рейтинг нижчий за 60 балів (усі роботи виконані) або рейтинг вищий за 60 балів, але студент виявив бажання підвищити оцінку – його поточний рейтинг множиться на ваговий коефіцієнт 0,6 та призначається залікова контрольна робота, яка оцінюється у 40 балів.

Система оцінювання залікової контрольної роботи

Залікова контрольна робота містить лише теоретичну складову направлену на перевірку набутих в результаті вивчення освітнього компонента знань студентів за лекційним матеріалом семестру – необхідно дати повну та розгорнуту відповідь на 4 питання, кожне з яких оцінюється в 10 балів: «відмінно» – студент навів правильну відповідь та повністю розкрив питання – 10 балів; «добре» – відповідь правильна, але можливо неповна, або ж повна, але з допущенням дрібних помилок, які студент здатен виправити після зауваження – 9-8 балів; «задовільно» – допускається відповідь з помилками, але не менш ніж 60% правильних відповідей – 7-6 балів; «незадовільно» питання взагалі не розкрите або дана неправильна відповідь – 0 балів.

Сума стартових балів або сума стартових балів * 0,6 плюс бали за залікову контрольну роботу переводиться до залікової оцінки згідно з таблицею:

Кількість балів Оцінка
95-100 Відмінно
85-94 Дуже добре
75-84 Добре
65-74 Задовільно
60-64 Достатньо
Менше 60 Незадовільно
Менше 30 Не допущено

Робочу програму навчальної дисципліни (силабус):

Складено старшим викладачем кафедри інформаційних систем та технологій ФІОТ, Ph.D, Орленко Сергій Петрович

Ухвалено кафедрою інформаційних систем та технологій (протокол №21 від 29.06.2023 р.)

Погоджено Методичною комісією факультету (протокол №11 від 29.06.2022 р.)