МОВА ПРОГРАМУВАННЯ JAVA

Силабус освітнього компонента

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання Заочна/дистанційна
Рік підготовки, семестр 3 курс, осінній семестр
Обсяг дисципліни 4 кредити ECTS / 120 годин (6 годин лекцій, 6 годин лабораторних робіт, 108 годин – СРС)
Семестровий контроль/ контрольні заходи Залік, МКР, захист лабораторних робіт
Розклад занять http://roz.kpi.ua/ 3 лекції, 3 лабораторних заняття, залік
Мова викладання Українська
Інформація прокерівника курсу / викладачів Лектор / Лабораторні: Старший викладач кафедри ІСТ., Ph.D, Орленко С.П., orlenko_sergey@tk.kpi.ua
Розміщення курсу В Телеграм групі дисципліни, в Campus та в Google Classroom: https://classroom.google.com/c/NzMwNjU1NDEyOTgz?cjc=kju2f7w

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

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

Дана дисципліна орієнтована на вивчення мови програмування 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. Типи відносин між класами і інтерфейсами
Тема 3.8. Архітектурний шаблон MVC
Тема 3.9. Створення і використання пакетів
Розділ 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

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

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

  • К. Кеті, Б. Бейтс Head First Java – Х.: Фабула, 2022. – 720 с.
    1. Bloch Effective Java (3rd edition) – Addison-Wesley Professional, 2018. – 392 p.
  • Б. Еккель Thinking in Java (4 видання) – Print2print, 2022. – 1168 с.
  • С.А. Кравчук, Шонин В.А. Основы программирования на языке Java. – К.: Норіта-плюс, 2007. – 280 с.
  • Java Documentation (Oracle) – https://docs.oracle.com/en/java

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

    1. Gamma, R. Helm, R. Johnson, J. Vlissides Design Patterns: Elements of Reusable Object-Oriented Software (1st Edition). - Addison-Wesley Professional, 1994. - 416 p.
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to the algorithms. – The MIT Press, 2001. – 1180p.
  • R.-G. Urma, M. Fusco, A. Mycroft Modern Java in Action: Lambdas, streams, functional and reactive programming (2nd edition) – Print2print, 2018 – 592 p.
  • Р. Мартін Чистий код – Х.: Фабула, 2019. – 368 с.

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

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

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

№з/п Назва теми лекції та перелік основних питань(перелік дидактичних засобів, посилання на інформаційні джерела)
1 Теми 1.1. Історія розвитку та застосування 1.2. Структура, функції та робота JVM 2.1. Основні оператори 2.2. Типи даних 2.3. Масиви 2.4 Конструювання класів та 2.7. Вирішення перевантажень
Основні питання: На першому занятті коротко розглядається історія створення та розвитку мови програмування Java. На прикладі простого додатку розглядається механізм виконання Java програм, структура, функції та робота Java віртуальної машини. Також студенти отримують базову інформацію про модульне тестування. Вивчаються основні оператори їх пріоритети та особливості роботи. Типи даних, виділення пам’яті; для примітивних типів розглядаються процеси розширення/звуження та упаковки/розпаковки їх у відповідні класи-обгортки, наводяться спеціальні класи, здатні працювати без втрати точності. Масиви одновимірні та багатовимірні. Вводиться поняття класу, розглядаються різноманітні особливості конструювання та створення його екземплярів; докладно розглядається вирішення перевантажень на різних етапах.
2 Теми 3.1. Принципи ООП 3.2. Модифікатори доступу 3.3. Абстрактні класи 3.4. Інтерфейси 3.5. Вкладені, локальні та анонімні класи. 4.2. Узагальнене програмування на мові Java 7.1 Організація потоків 7.2. Серіалізація
Основні питання: розглядається парадигма об’єктно-орієнтованого програмування її принципи та застосування; використання модифікаторів доступу та їх вплив на області видимості, робота з класами та інтерфейсами з точки зору принципів ООП. Причини появи узагальненого програмування, розгляд можливостей та обмежень при узагальненні. оняття потоку вводу/виводу, їх класифікація по типам даних, помилки та методи роботи з ними, ланцюги потоків. Об'єктні потоки та серіалізація, особливості роботи зі складеними об’єктами.
3 Теми 9.2. Багато поточність 9.3. Взаємодія потоків. 9.4. Синхронізація 12.3. Робота з базами даних у Java
Основні питання: Паралельні обчислення, потоки виконання їх типи, стани, запуск та блокування; взаємодія та взаємне блокування потоків, використання спільних ресурсів. Реляційні бази даних, мова SQL, створення запитів, робота з БД в Java, JDBC, транзакції.

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

№ з/п Перелік лабораторних робіт
1 Лабораторна робота 1. Використання ООП та шаблону MVC.
Мета роботи – закріплення на практиці знань з принципів об’єктно орієнтованого програмування: абстракція, інкапсуляція, поліморфізм та наслідування; створення додатку з використанням архітектурного шаблону model-view-controller.
2 Лабораторна робота 2. Використання узагальненого програмування.
Мета роботи – засвоїти принципи та підходи використання узагальненого програмування; знайомство з модульним тестуванням за допомогою фреймворку JUnit.
3 Лабораторна робота 3. Потоки вводу/виводу та серіалізація.
Мета роботи – створення додатків для роботи з файлами з використанням потоків вводу/виводу, опанування користувацької серіалізації, підключення до інтернет джерел та їх аналіз їх вмісту.
4 Лабораторна робота 4. Multithreading.
Мета роботи – ознайомлення з поняттям розпаралелювання та потоків виконання, практичне освоєння алгоритму запуску потоку виконання, синхронізації, блокування та спілкування між ними.
5 Лабораторна робота 5. Databases.
Мета роботи – практично дослідити можливості рефлексії, освоїти створення та налаштування лог-журналів за допомогою Log4j, набути навички створення додатків з можливістю локалізації.

Матеріали до лекційних та лабораторних робіт доступні для завантаження в телеграм групі дисципліни та в системі підтримки навчального процесу «Електронний кампус» виключно здобувачам, які обрали на курс «Мова програмування Java» за посиланням https://ecampus.kpi.ua/ а також на відповідному курсі в в Google Classroom: https://classroom.google.com/c/NzMwNjU1NDEyOTgz?cjc=kju2f7w

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

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

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

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

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

  • правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та лабораторних заняттях.
  • правила поведінки на заняттях: студент має можливість отримувати бали за відповідні види навчальної активності на лекційних та практичних заняттях, передбачені РСО дисципліни. За наявності конфліктних ситуацій, вони мають відкрито обговорюватись з викладачем, необхідно бути взаємно толерантним, поважати думку іншого. Використання засобів зв’язку для пошуку інформації в інтернеті здійснюється за умови вказівки викладача;
  • заохочувальні бали виставляються за підготовку та проведення доповідей на лекційних заняттях чи виконання додаткової лабораторної роботи. Кількість заохочуваних балів не більше 10;
  • виставлення оцінок: кожна оцінка виставляється відповідно до розробленої викладачем та оголошеної на першому занятті РСО; у разі невиконання студентом всіх передбачених робочим навчальним планом завдань (лабораторних робіт) до заліку він не допускається. Якщо студент не може бути присутніми на заняттях, він повинен відпрацювати самостійно лабораторні роботи та здійснити захист на занятті або відповідно до графіку на консультації у викладача.
  • штрафні бали виставляються за невчасне подання до захисту лабораторних робіт – за кожне пропущене заняття або захист на додатковій сесії -1 бал, але не більше -4 балів за 1 роботу.
  • політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Мова програмування Java»»;
  • при використанні цифрових засобів зв’язку з викладачем (мобільний зв’язок, електронна пошта, месенджери, форуми чи соціальні мережі, тощо) необхідно дотримуватись загальноприйнятих етичних норм, зокрема бути ввічливим та обмежувати спілкування робочим часом викладача.

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

Поточний контроль: вправи на лекційних заняттях, тестування, , виконання та захист лабораторних робіт. Календарний контроль: - відсутній для заочної форми навчання. Семестровий контроль: залік. Умови допуску до семестрового контролю: виконані та захищені лабораторні роботи, семестровий рейтинг більше 35 балів. Рейтинг студента з дисципліни складається із балів стартового рейтингу (протягом семестру). Бали стартового рейтингу протягом семестру студент отримує за:

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

Лабораторні роботи Ваговий бал. Всі лабораторні роботи мають ваговий бал 20. Максимальна кількість балів за всі лабораторні роботи складає 20 балів * 5 робіт = 100 балів. На лабораторних роботах студенти перевіряють працездатність написаних програм за попередньо вирішеними вдома задачами. Для допуску до поточної лабораторної роботи необхідно мати Протокол, оформлений відповідно до норм оформлення технічної документації, який має містити всі необхідні пункти, відповідно до Методичних вказівок. Також для допуску до лабораторної роботи (окрім 1-ї) необхідно захистити попередню. Студенти, що не захистили попередню лабораторну роботу можуть бути не допущені до виконання наступної. Критерії оцінювання лабораторних робіт: «відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 20-19 балів; «добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 18-15 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 14-10 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів. УВАГА! Захист всіх лабораторних робіт є умовою допуску до складання заліку. Студенти, що на момент консультації перед заліком не захистили лабораторні роботи, не допускаються до основної здачі та готуються до перескладання. Заохочувальні бали За активну роботу на лекційному занятті та проведення доповідей на лекційних заняттях чи виконання додаткової лабораторної роботи, але в сумі не більше 10 балів. Штрафні бали За кожне запізнення з поданням лабораторної роботи оцінка знижується на 1 бал (в тому числі на додатковій сесії), але не більше 4 балів за одну роботу. Календарний контроль Відсутній для заочної форми навчання Форма семестрового контролю – Залік Необхідною умовою заліку є виконання усіх лабораторних робіт та стартовий рейтинг не нижче 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, Орленко Сергій Петрович

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

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