ІНФРАСТРУКТУРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ WEB-ЗАСТОСУВАНЬ

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

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем
Статус дисципліни Вибіркова
Форма навчання Заочна/дистанційна
Рік підготовки, семестр 4 курс, осінній семестр
Обсяг дисципліни 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/NzE3MjA0NzEzOTc5?cjc=iekz5n2

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

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

Силабус навчальної дисципліни “Інфраструктура програмного забезпечення WEB-застосувань” передбачає виконання навчальних завдань та практик програмування. Це дозволяє отримати досвід практичної роботи із розробки розподіленого web-застосунку і розгортання інфраструктури для нього на базі контейнерних технологій. Передбачаються навички самостійного набуття знань у цій галузі.
Присутній стандартний підхід із навчання програмуванню, коли на перших етапах (практиках програмування) виконується відносно складне завдання, що дає можливість зацікавити студентів до подальшого навчання. Фінальним завданням є розподілена програмна інфраструктура web-застосунку на базі технології Docker, що моделює роботу професійного web-порталу. Для виконання цього завдання студенти використовують теоретичні знання та застосовують практичні навички, отримані під час всього курсу.
Завдяки поєднанню лекцій і лабораторних робіт студенти отримають практичний досвід побудови надійної ІТ-інфраструктури.

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

Метою навчальної дисципліни “Інфраструктура програмного забезпечення” є надання системних знань, вмінь і навичок про планування, розробку, тестування і будову інфраструктури програмного забезпечення на основі складної, розподіленої інфраструктури web-застосунку на базі Java з використанням технології Docker.
Крім того дисципліна надає відомості про загальні принципи розробки розподіленого web-застосунку і розгортання програмної інфраструктури на базі систем контейнерної технології.

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

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

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

Пререквізити
Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами «Програмування. Частина 1», «Програмування. Частина 2», «Комп'ютерні мережі.»

Постреквізити
Отримані при засвоєнні дисципліни теоретичні знання та практичні уміння забезпечують успішне виконання курсових проєктів та бакалаврських робіт за спеціальністю 126 Інформаційні системи та технології, а також спеціальностями 121 Інженерія програмного забезпечення та 123 Комп'ютерна інженерія

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

Розділ 1 Віртуалізація: Тема 1.1 Віртуалізація у комп'ютерних системах., Тема 1.2 Спрощення формування, встановлення та керування образами віртуальних машин, Тема 1.3 Синтаксис скриптів vagrant та принципи роботи, Тема 1.4 Віртуалізація на рівні операційних систем, Тема 1.5. Використання оркестраторів для підняття ІТ-інфраструктури

Розділ 2. Архітектура програмного забезпечення: Тема 2.1 Монолітна архітектура програмного застосунку, Тема 2.2 Мікросервісна архітектура програмного застосунку, Тема 2.3. Фронтенд сервіси, Тема 2.4. Бекенд сервіси, Тема 2.5. Створення інтерфейсів прикладного програмування, Тема 2.6 Брокери повідомлень

Розділ 3. Розподілені системи: Тема 3.1. Розподілені системи, Тема 3.2 Узгодженість даних у розподілених системах, Тема 3.3 Доступність даних у розподілених системах, Тема 3.4 Стійкість даних у розподілених системах

Розділ 4. Підсумки: Тема 4.1 Підсумки

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

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

  • Craig Berg Docker: Complete Guide To Docker For Beginners And Intermediates. Independently published, 2020. – 139 p.
  • Sean P. Kane (Author), Karl Matthias Docker: Up & Running : Shipping Reliable Containers in Production ( 2nd edition). O'Reilly Media, 2018. – 354 p.
  • David Thomas, Andrew Hunt. The Pragmatic Programmer : your journey to mastery, 20th Anniversary Edition (2nd edition). Addison-Wesley Professional, 2020. – 352 p.
    1. Banks, E. Porcello Learning React : Modern Patterns for Developing React Apps (2nd Edition). O'Reilly Media, 2020. – 307 p.
  • Docker документація [Електронний ресурс] – https://docs.docker.com/get-started/.

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

  • Valeria Cardellini, Matteo Nardelli Container-based virtualization: Docker. Università degli Studi di Roma “Tor Vergata” Dipartimento di Ingegneria Civile e Ingegneria Informatica Corso di Sistemi Distribuiti e Cloud Computing A.A. 2017/18.
  • Adam Freeman. Pro Angular 6 .ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9/2018р.
  • Esteban Zimányi. Students: Bubacarr Jallow Shafagh Kashef. Object Relational Mapping and Entity Framework. Advanced Databases Project. 12/18/2018 р.
  • Scott Chacon, Ben Straub. Pro Git. Версія 2.1.95-2-g8d45587, 19.01.2022.
  • Docker Hub - https://hub.docker.com

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

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

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

№з/п Назва теми лекції та перелік основних питань
1 Теми 1.1 Віртуалізація у комп'ютерних системах 1.2 Спрощення формування, встановлення та керування образами віртуальних машин 1.3 Синтаксис скриптів vagrant та принципи роботи
Основні питання: віртуалізація операційних систем, гіпервізори, vagrant, його аналоги. Принципи роботи та використання vagrant на практиці
2 Теми 1.4 Віртуалізація на рівні операційних систем 1.5 Використання оркестраторів для підняття ІТ-інфраструктури
Основні питання: принципи роботи ті відмінність віртуалізаціі на рівні операційних систем від гіпервізорів, оркестратори і їх роль у віртуалізації на рівні операційної системи
3 Теми 2.2 Мікросервісна архітектура програмного застосунку 3.1. Розподілені системи
Основні питання: мікросервісна архітектура, переваги та недоліки; розподілені системи та їх специфіка.

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

№ з/п Перелік лабораторних робіт
1 Лабораторна робота 1. Дослідження гіпервізорів.
Студенти ознайомляться з основами роботи з гіпервізорами на прикладі vagrant boxes
2 Лабораторна робота 2. Дослідження системи контейнерів Docker.
Студенти ознайомляться з основами роботи з віртуалізацією на рівні операційної системи на прикладі Docker-контецнерів.
3 Лабораторна робота 3. Дослідження спільних ресурсів хостової та гостьової систем в Docker.
Студенти будуть працювати з ресурсами хостової та гостьової систем в Docker.
4 Лабораторна робота 4. Створення і розгортання програмної інфраструктури на основі docker-compose.
Студенти створять і розгорнуть програмну інфраструктуру на основі docker-compose.
5 Лабораторна робота 5. Створення RESTful вебсервісів за допомогою Spring Framework.
Студенти створять RESTful вебсервіси за допомогою Spring Framework.

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

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

№ з/п Вид самостійної роботи Кількість годин СРС
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 р.)