Дисципліна: Алгоритми мовою Java
Форма анотації дисципліни Алгоритми мовою Java
(назва дисципліни)
Обсяг дисципліни, годин (кредитів ЄКТС): 150 (5).
Мета дисципліни:
Метою даного курсу є закріплення у студентів базових знань по програмуванню на мові JAVA. Засвоєння основних принципів об'єктного підходу, ознайомлення з історією мови програмування JAVA і його еволюцією на базі тих, що існують. Студенти повинні освоїтися з термінологією програмування та алгоритмами мови JAVA і навчитися використовувати переваги об'єктно-орієнтованого програмування для комп'ютерного моделювання реальних і концептуальних систем.
Завдання дисципліни:
Набуття компетенцій, знань, умінь та навиків на рівні новітніх досягнень у розробці операційних систем, відповідно до кваліфікації фахівець з інформаційних технологій, у тому числі технологій Java
Попередні умови для вивчення даної дисципліни:
- Основи алгоритмізації та програмування
- Інформаційні технології
- Основи WEB-дизайну
Навчальні цілі дисципліни полягають у формуванні у студентів:
інтегративної компетентності:
Бакалавр (FQ-EHEA – перший цикл, EQF LLL – 6 рівень, HPK – 6 рівень) здатний розв’язувати складні спеціалізовані задачі та практичні проблеми у галузі комп’ютерних наук або у процесі навчання, що передбачає застосування теорій та методів комп’ютерних наук, інформаційних технологій.
загальних компетентностей:
ЗК 1. Здатність до абстрактного мислення, аналізу та синтезу.
ЗК 2. Здатність застосовувати знання у практичних ситуаціях.
ЗК 3. Здатність планувати та управляти часом.
ЗК 4. Знання і розуміння предметної області та розуміння професії.
ЗК 7. Навички використання інформаційних і комунікаційних технологій.
ЗК 8. Здатність проведення досліджень на відповідному рівні.
ЗК 9. Здатність вчитися і бути сучасно навченим.
ЗК 10. Здатність до пошуку, оброблення та аналізу інформації зрізних джерел.
ЗК 12. Здатність до адаптації та дії в новій ситуації.
ЗК 13. Здатність генерувати нові ідеї (креативність).
ЗК 14. Уміння виявляти, ставити та вирішувати проблеми.
ЗК 22. Здатність працювати автономно.
ЗК 23. Здатність розробляти та управляти проектами.
ЗК 24. Прихильність безпеці.
фахових компетентностей:
ФК 2. Здатність використовувати сучасні методи і мови програмування для розроблення алгоритмічного та програмного забезпечення.
ФК 3. Здатність створювати системне та прикладне програмне забезпечення комп’ютерних систем та мереж.
ФК 11. Здатність оформляти отримані робочі результати у вигляді презентацій, науково-технічних звітів.
ФК 15. Здатність аргументувати вибір методів розв’язування спеціалізованих задач, критично оцінювати отримані результати, обґрунтовувати та захищати прийняті рішення.
Програмні результати навчання:
ПРН 1. Знати і розуміти наукові положення, що лежать в основі функціонування комп’ютерних засобів, систем та мереж.
ПРН 2. Мати навички проведення експериментів, збирання даних та моделювання в комп’ютерних системах.
ПРН 6. Вміти застосовувати знання для ідентифікації, формулювання і розв’язування технічних задач спеціальності, використовуючи методи, що є найбільш придатними для досягнення поставлених цілей.
ПРН 7. Вміти розв’язувати задачі аналізу та синтезу засобів, характерних для спеціальності.
ПРН 8. Вміти системно мислити та застосовувати творчі здібності до формування нових ідей.
ПРН 9. Вміти застосовувати знання технічних характеристик, конструктивних особливостей, призначення і правил експлуатації програмно-технічних засобів комп’ютерних систем та мереж для вирішення технічних задач спеціальності.
ПРН 10. Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати, експлуатувати, типове для спеціальності обладнання.
ПРН 13. Вміти ідентифікувати, класифікувати та описувати роботу комп’ютерних систем та їх компонентів.
ПРН 14. Вміти поєднувати теорію і практику, а також приймати рішення та виробляти стратегію діяльності для вирішення завдань спеціальності з урахуванням загальнолюдських цінностей, суспільних, державних та виробничих інтересів.
ПРН 15. Вміти виконувати експериментальні дослідження за професійною тематикою.
ПРН 16. Вміти оцінювати отримані результати та аргументовано захищати прийняті рішення.
ПРН 20. Усвідомлювати необхідність навчання впродовж усього життя з метою поглиблення набутих та здобуття нових фахових знань, удосконалення креативного мислення.
В результаті вивчення дисципліни студент повинен
знати:
- принципи та алгоритми мови JAVA в історичному контексті
- парадигма ООП
- об'єктно-орієнтований підхід до створення програм
- що таке клас
- що таке об'єкт
- зв'язок між об'єктами
- переваги і цілі ООП
o природність
o надійність
o повторне використання
o супровід
o здібність до розширення
- інкапсуляція
- спадкоємство
o множинне спадкоємство
o абстракції
- поліморфізм
- інтерфейси
- об'єкти на реальному світі
- використання попередніх технологій в ООП
вміти:
- розбити вихідну програму на взаємозв'язаних логічних модулі відповідно до принципів ООП
- користуватися середовищем програмування NetBeans
- закодувати програму і отримати виконуваний модуль
Зміст дисципліни (тематика):
Змістовий модуль 1.
Тема 1. Вступ до програмування мовою Java
Вступ до програмування мовою Java
Java як платформа та мова програмування.
Базові типи даних у мові Java.
Лексичні основи мови програмування Java.
Управління ходом виконання Java-програми.
Основи роботи з винятками та твердженнями
Тема 2. Інкапсуляція та взаємодія класів у Java додатках
Об’єктна модель Java.
Посилальні типи даних для математичних обчислень.
Масиви та рядки як посилальні типи даних.
Інкапсуляція та приховування інформації в Java.
Огляд відношень між класами.
Наслідування. Інші відношення
Тема 3. Поліморфізм, інтерфейси та узагальнене програмування мовою Java
Поліморфізм.
Зміна форми.
Інтерфейси та їх реалізація.
Узагальнені типи (дженерики) Java.
Лямбда-вирази та функціональні типи даних у мові Java
Змістовий модуль 2.
Тема 4. Принципи побудови й тестування об’єктно-орієнтованого коду
Принципи SOLID та їх реалізація в Java-коді.
Ефективне об'єктно-орієнтоване програмування в Java.
Створення та використання анотацій у коді.
Вступ до модульного тестування. Фреймворк JUnit.
Приклад розробки через тестування (TDD)
Тема 5. Колекції в мові програмування Java
Архітектура Collections Framework.
Поширені структури даних з Collections Framework.
Функціональні операції з колекціями за допомогою функцій вищого порядку
Тема 6. Програмування Java-додатків з підтримкою багатопоточності
Об’єкти-потоки Runnable і Thread.
Синхронізація потоків за допомогою Java Threads API.
Екзекутори та робота з ними.
Синхронізатори в Java Concurrency Utilities.
Огляд багатопоточних колекцій.
Огляд Locking Framework.
Тема 7. Асинхронне виконання коду за допомогою стрімів
Реактивне програмування та технологія RxJava.
Спостерігачі та спостережувані об’єкти в реактивному програмуванні мовою Java.
Життєвий цикл підписки. Суб’єкти в RxJava.
Робота з мережею засобами RxJava та Retrofit
Тема 8. Програмні засоби вводу-виводу в мові Java
Класичний файловий ввід-вивід у мові програмування Java.
Робота з потоками даних, райтерами та рідерами.
Новий ввід-вивід. Буфери.
Канали. Селектори.
Регулярні вирази.
Основи доступу до баз даних
Види робіт: лабораторні завдання, самостійна робота , усне опитування, колоквіум тощо.
Форма підсумкового контролю: залік
