Основи WEB-технологій - Робоча програма навчальної дисципліни (Силабус)

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

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інформаційне забезпечення робото-технічних систем
Статус дисципліни Вибіркова
Форма навчання очна(денна)
Рік підготовки, семестр 4 курс, осінній семестр
Обсяг дисципліни 120 год.
Семестровий контроль/ контрольні заходи залік
Розклад занять
Мова викладання Українська
Інформація про
керівника курсу / викладачів

Лектор: к.т.н., доцент, Голубєв Леонтій Петрович, golubevl@ukr.net

Лабораторні: доцент, Голубєв Леонтій Петрович, golubevl@ukr.net

Розміщення курсу Кампус

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

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

Дисципліна «WEB-технології» є дисципліною вільного вибору студента та вивчає сучасні технології проектування та роботи в мережі WWW.

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

Предметом вивчення дисципліни є методи та засоби WEB-технологій.

Компетентності:

Інтегральна компетентність: Здатність розв'язувати складні спеціалізовані задачі та практичні проблеми у галузі WEB-технологій , що характеризується комплексністю та невизначеністю умов із застосування теорій та методів інформаційних технологій.

КЗ 1 Здатність до абстрактного мислення, аналізу та синтезу
КЗ 2 Здатність застосовувати знання у практичних ситуаціях
КЗ 3 Здатність до розуміння предметної області та професійної діяльності
КЗ 4 Здатність спілкуватися державною та іноземною мовами як усно, так і письмово
КЗ 5 Здатність вчитися і оволодівати сучасними знаннями

Спеціальні (фахові, предметні) компетентності

КС 1 Здатність аналізувати об’єкт проектування або функціонування та його предметну область
КС 2 Здатність застосовувати стандарти в області інформаційних систем та технологій при розробці функціональних профілів, побудові та інтеграції систем, продуктів, сервісів і елементів інфраструктури
КС 3 Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (IoT), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними
КС 4 Здатність проектувати, розробляти та використовувати засоби реалізації інформаційних систем, технологій та інфо-комунікацій (методичні, інформаційні, алгоритмічні, технічні, програмні та інші)
КС 12 Здатність управляти та користуватися сучасними інформаційно-комунікаційними системами та технологіями (у тому числі такими, що базуються на використанні Інтернет)

Згідно з вимогами освітньо-професійної програми студенти після засвоєння навчальної дисципліни мають продемонструвати такі результати навчання:

ПР 3 Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій

ПР 4 Проводити системний аналіз об’єктів проектування та обґрунтовувати вибір структури, алгоритмів та способів передачі інформації в інформаційних системах та технологіях

ПР 12 Знати основи побудови та застосовувати сучасні операційні системи та пакети прикладних програм відповідно до професійних завдань

ПР 14 Знати сучасні мови програмування та технології створення програмного забезпечення інформаційних систем та технологій

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

Перелік дисциплін, що передують: Комп’ютерні мережі, Бази даних, Архітектура комп’ютерних систем.

Перелік дисциплін, що забезпечуються: Алгоритми та структури даних; Дискретні структури; Емпіричні методи програмної інженерії; Моделювання та аналіз програмного забезпечення; Якість програмного забезпечення та тестування; Системний аналіз.

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

Розділ 1. WEB основні поняття

Тема 1.1 Протокол TCP-IP

Тема 1.2 Маршрутизація в WEB

Тема 1.3 Шлюз, хост, домен

Тема 1.4 Система адресації в WEB

Тема 1.5 Способи під’єднання до мережі

Тема 1.6 Сервіси Internet

Розділ 2. Основи роботи з JS

Тема 2.1 Типи даних

Тема 2.2 Числові дані, Тип BigInt, Тип Boolean, Рядки String, object,

Тема 2.3 Арифметичні операції

Тема 2.4 Функції

Тема 2.5 Математичні операції

Розділ 3. Робота з формами

Тема 3.1 Форми та їх елементи

Тема 3.2 Властивості та методи форм

Тема 3.3 Властивості елементів форм

Тема 3.4 Кнопки, текстові поля, поле введення пароля, приховане поле, елемент textarea, прапорці та радіокнопки

Тема 3.5 Перевірка валідності інформації в формі. Нерегулярні вирази.

Розділ 4. Робота з браузером та BOM

Тема 4.1 Browser Object Model та об'єкт window

Тема 4.2 Об'єкт window. Управління вікнами. Відкриття, закриття та позиціонування вікон.

Тема 4.3 Історія браузера. Об'єкт історії.

Тема 4.4 Об'єкт location. Об'єкт navigator. Об'єкт geolocation.

Розділ 5. Робота з DOM

Тема 5.1 Об'єкт document. Пошук елементів

Тема 5.2 Властивості об'єкту document

Тема 5.3 Об'єкт Node. Навігація по DOM

Тема 5.4 Створення, додавання та видалення елементів веб-сторінки

Розділ 6. Об'єкт Element. Керування елементами

Тема 6.1 Властивості innerText та innerHTML

Тема 6.2 Методи об'єкту Element

Тема 6.3 Розміри та позиція елементів

Тема 6.4 Зміна стилю елементів

Тема 6.5 Створення елемента HTML

Тема 6.7 Додавання методів

Тема 6.8 Події життєвого циклу. Додавання атрибутів.

Тема 6.9 Отримання інформації із зовнішніх джерел. Метод Fetch.

Розділ 7. Введення в Node.js.

Тема 7.1 Початок роботи. Встановлення Node.js.

Тема 7.2 Перший додаток на Node.js

Тема 7.3 Робота з модулями. Передача параметрів додатку

Розділ 8. NPM. Package.json. Встановлення модулів. Визначення команд

Тема 8.1 Файл package.json.

Тема 8.2 Додавання безлічі пакетів.

Тема 8.3 devDependencies. Команди npm. Nodemon.

Тема 8.4 Асинхронність у Node.js

Розділ 9. Робота з сервером в NodeJS

Тема 9.1 Створення сервера.

Тема 9.2 Request. Response.

Тема 9.3 Маршрутизація. Переадресація.

Тема 9.4 Отримання даних від клієнта. Перебір асинхронного ітератора.

Розділ 10. Робота з Express.

Тема 10.1 Початок роботи з Express.

Тема 10.2 Конвеєр обробки запиту та middleware.

Тема 10.3 Відравлення відповіді.

Тема 10.4 Відправка статусних кодів.

Тема 10.5 Статичні файли.

Тема 10.6 Передача даних програмі. Параметри рядка запиту

Розділ 11. NodeJS і MySQL. GraphQL.

Тема 11.1 Підключення до MySQL. Створення підключення. Закриття підключення

Тема 11.2 Виконання запитів до MySQL. Параметризація запитів.

Тема 11.3 API Promise.

Тема 11.4 Основні операції з даними. Створення бази даних. Створення таблиць.

Додавання даних. Отримання даних. Фільтрування даних. Оновлення. Вилучення.

Тема 11.5 Протокол WebSocket. Використання Socket.io для розробки чат-додатків.

Тема 11.6 Реєстрація та авторизація користувачів за допомогою JWT токенів

Розділ 12. Основи роботи з GraphQL.

Тема 12.1 Що таке GraphQL.

Тема 12.2 Запит даних GraphQL vs REST.

Тема 12.3 Мова визначення схеми (SDL).

Тема 12.4 Query. Mutation.

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

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

  1. Фрімен Ерік Книга Head First. Програмування на JavaScript /Фрімен E., Робсон E.,- Фабула, 2022, -672c.
  2. Бородкіна І. Л. Web-технології та Web-дизайн: застосування мови HTML для створення електронних ресурсів / І. Л. Бородкіна, Г. О. Бородкін, - Ліра-К, 2020,- 212 с.

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

1. David Thomas The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition). - Addison-Wesley Professional, 2019. – 228 p.

2. Marijn Haverbeke. Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming. - No Starch Press, 2018. – 472 p.

3. Semmy Purewal. Learning Web App Development: Build Quickly with Proven JavaScript Techniques 1st Editionю - O'Reilly,2014- 306 p.

4. Kyle Simpson. You Don't Know JS Yet: Get Started.- FrontendMasters, 2020.- 143 p.

5. Kevin Tatroe, Peter MacIntyre Programming PHP: Creating Dynamic Web Pages : O'Reilly Media, 2020. – 542 p.

6. Mike McGrath (Author)PHP & MySQL in easy steps: Covers MySQL 8.0 : In Easy Steps Limited, 2018. – 192 p.

7. Jamie Chan PHP: Learn PHP in One Day and Learn It Well. PHP for Beginners with Hands-on Project. (Learn Coding Fast with Hands-On Project): Learn Coding Fast with Hands-On Project, 2020 – 246 p.

8. Mike McGrath PHP in easy steps: Updated for PHP 8 4th Edition: In Easy Steps Limited , 2021. – 192 p.

9. Robin Nixon Learning PHP, MySQL, JavaScript, and CSS: A Step-by-Step Guide to Creating Dynamic Websites: O'Reilly Media, 2012. – 586 p.

10. Bethany Griggs Node Cookbook: Discover solutions, techniques, and best practices for server-side web development with Node.js 14, 4th Edition 4th ed. Edition: Packt Publishing, 2020. – 512p.

11. David Herron Node.js Web Development: Server-side web development made easy with Node 14 using practical examples: Packt Publishing, 2020. – 5451 kb

12. Sebastian Springer Node.js: The Comprehensive Guide to Server-Side JavaScript Programming (Rheinwerk Computing) Paperback – August 24, 2022.- 834 p.

13. Alex R. Young, Bradley Meck, Mike Cantelon Node.js in Action 2nd Edition: Manning, 2017. – 392p.

14. Mario Casciaro, Luciano Mammino Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques, 3rd Edition 3rd ed. Edition: Packt Publishing, 2020.- 664 p.

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

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

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

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

Розділ 1. WEB основні поняття

Тема 1.1 Протокол TCP-IP

Тема 1.2 Маршрутизація в WEB

Тема 1.3 Шлюз, хост, домен

Тема 1.4 Система адресації в WEB

Тема 1.5 Способи під’єднання до мережі

Тема 1.6 Сервіси Internet

2

Розділ 2. Основи роботи з JS

Тема 2.1 Типи даних

Тема 2.2 Числові дані, Тип BigInt, Тип Boolean, Рядки String, object,

Тема 2.3 Арифметичні операції

Тема 2.4 Функції

Тема 2.5 Математичні операції

Розділ 3. Робота з формами

Тема 3.1 Форми та їх елементи

Тема 3.2 Властивості та методи форм

Тема 3.3 Властивості елементів форм

Тема 3.4 Кнопки, текстові поля, поле введення пароля, приховане поле, елемент textarea, прапорці та радіокнопки

Тема 3.5 Перевірка валідності інформації в формі. Нерегулярні вирази.

Розділ 4. Робота з браузером та BOM

Тема 4.1 Browser Object Model та об'єкт window

Тема 4.2 Об'єкт window. Управління вікнами. Відкриття, закриття та позиціонування вікон.

Тема 4.3 Історія браузера. Об'єкт історії.

Тема 4.4 Об'єкт location. Об'єкт navigator. Об'єкт geolocation.

Розділ 5. Робота з DOM

Тема 5.1 Об'єкт document. Пошук елементів

Тема 5.2 Властивості об'єкту document

Тема 5.3 Об'єкт Node. Навігація по DOM

Тема 5.4 Створення, додавання та видалення елементів веб-сторінки

Розділ 6. Об'єкт Element. Керування елементами

Тема 6.1 Властивості innerText та innerHTML

Тема 6.2 Методи об'єкту Element

Тема 6.3 Розміри та позиція елементів

Тема 6.4 Зміна стилю елементів

Тема 6.5 Створення елемента HTML

Тема 6.7 Додавання методів

Тема 6.8 Події життєвого циклу. Додавання атрибутів.

Тема 6.9 Отримання інформації із зовнішніх джерел. Метод Fetch.

Розділ 7. Введення в Node.js.

Тема 7.1 Початок роботи. Встановлення Node.js.

Тема 7.2 Перший додаток на Node.js

Тема 7.3 Робота з модулями. Передача параметрів додатку

Розділ 8. NPM. Package.json. Встановлення модулів. Визначення команд

Тема 8.1 Файл package.json.

Тема 8.2 Додавання безлічі пакетів.

Тема 8.3 devDependencies. Команди npm. Nodemon.

Тема 8.4 Асинхронність у Node.js

Розділ 9. Робота з сервером в NodeJS

Тема 9.1 Створення сервера.

Тема 9.2 Request. Response.

Тема 9.3 Маршрутизація. Переадресація.

Тема 9.4 Отримання даних від клієнта. Перебір асинхронного ітератора.

Розділ 10. Робота з Express.

Тема 10.1 Початок роботи з Express.

Тема 10.2 Конвеєр обробки запиту та middleware.

Тема 10.3 Відравлення відповіді.

Тема 10.4 Відправка статусних кодів.

Тема 10.5 Статичні файли.

Тема 10.6 Передача даних програмі. Параметри рядка запиту

Розділ 11. NodeJS і MySQL. GraphQL.

Тема 11.1 Підключення до MySQL. Створення підключення. Закриття підключення

Тема 11.2 Виконання запитів до MySQL. Параметризація запитів.

Тема 11.3 API Promise.

Тема 11.4 Основні операції з даними. Створення бази даних. Створення таблиць. Додавання даних. Отримання даних. Фільтрування даних. Оновлення. Вилучення

Тема 11.5 Протокол WebSocket. Використання Socket.io для розробки чат-додатків.

Тема 11.6 Реєстрація та авторизація користувачів за допомогою JWT токенів

Розділ 12. Основи роботи з GraphQL.

Тема 12.1 Що таке GraphQL.

Тема 12.2 Запит даних GraphQL vs REST.

Тема 12.3 Мова визначення схеми (SDL).

Тема 12.4 Query. Mutation.

7. Лабораторні заняття

Лабораторні заняття мають на меті закріпити теоретичні знання студентів, допомогти їм оволодіти способами роботи з сучасними WEB-технологіями, засвоїти методи, що використовуються для проектування систем на базі WEB-технологій

№ з/п Назва лабораторної роботи Кількість аудиторних годин
1 Лабораторна робота №1: JavaScript. «Валідація даних. Події. Регулярні вирази» 2
2 Лабораторна робота №2: JavaScript. Отримання даних із зовнішніх джерел (fetch, promise) 2
3 Лабораторна робота №3: Протокол WebSocket. Використання Socket.io для розробки чат-додатків 2
4 Лабораторна робота №4: Створення системи авторизації сайту за допомогою JWT токенів. 4
5 Лабораторна робота №5: Створення telegram-боту з меню та запитом до ChatGPT. 4
6 Лабораторна робота №6: Створення власного API на Python (FastAPI). 4
  1. Самостійна робота студента/аспіранта

№ з/п Назви тем і питань, що виноситься на самостійне опрацювання Кількість годин СРС
1 Тема 1. Робота з cookies 21
2 Тема 2. Створення каталогу товарів та визначення загальної ціни 21
3 Тема 3. Робота з функціями користувача 21
4 Тема 4. Basic HTTP-аутентифікація 21

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

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

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

Поточний контроль: опитування за темою заняття

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

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

Умови допуску до семестрового контролю: зарахування усіх лабораторних робіт

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

1) відповідей на лабораторних заняттях;

3) відповідь на заліку.

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

1. Робота на лабораторних заняттях

10х4+20x2 = 80 балів.

2. Модульний контроль

Ваговий бал – 20.

Поточне оцінювання та самостійна робота* МК ** (тестовий) Сума

Поточне оцінювання та самостійна робота* МК ** (тестовий) Сума
Т1 Т2 Т3 Т4 Т5 Т6
10 10 10 10 20 20 20 100

Таблиця відповідності рейтингових балів оцінкам за університетською шкалою:

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

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

Складено доцент, к.т.н., доцент, Голубєв Леонтій Петрович

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

Погоджено Методичною комісією факультету інформатики та обчислювальної техніки (протокол № _11_ від 26.06.24_)