Основи front-end технологій - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший (бакалаврський) |
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інформаційні управляючі системи та технології |
Статус дисципліни | вибіркова |
Форма навчання | очна(денна)/заочна/дистанційна |
Рік підготовки, семестр | 3 курс, осінній семестр |
Обсяг дисципліни | 4,0 кредити ECTS /120 годин (36 годин лекцій, 18 годин лабораторних робіт, 66 години – СРС) |
Семестровий контроль/ контрольні заходи | Залік, МКР, захист лабораторних робіт |
Розклад занять | 1 лекція (2 години) 1 раз на тиждень; 1 лабораторна робота (2 години) 1 раз на 2 тижні |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | к.ф.-м.н. Жереб Костянтин Анатолійович Telegram: https://t.me/kzhereb E-mail: zhereb@gmail.com |
Розміщення курсу | https://campus.kpi.ua |
Програма навчальної дисципліни
- Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Дисципліна «Основи front-end технологій» орієнтована на вивчення основ проєктування та розробки front-end (клієнтської) частини веб-застосунків з використанням сучасних технологій, зокрема мов HTML, CSS, JavaScript, а також додаткових бібліотек, фреймворків та інструментальних засобів. Під час навчання студенти ознайомляться з основними поняттями, методами та засобами створення front-end частини веб-застосунків, реалізації веб-сайтів, створення зручного та ефективного веб-інтерфейсу користувача. На лабораторних роботах студенти навчаться описувати структуру веб-документів з використанням мови HTML, задавати зовнішній вигляд веб-сторінок з використанням мови CSS, додавати інтерактивність та взаємодіяти з зовнішніми сервісами з використанням мови JavaScript, а також використовувати сучасні фреймворки, зокрема React, Bootstrap, Tailwind. Передбачено контроль якості отриманих знань у вигляді модульної контрольної роботи.
Мета навчальної дисципліни
Метою навчальної дисципліни є формування у студентів теоретичних знань і практичних здатностей застосовувати загальні методи і засоби проєктування та розробки front-end (клієнтської) частини веб-застосунків.
Предмет навчальної дисципліни
Предмет - методи та засоби проєктування та розробки front-end частини веб-застосунків, інструментальні засоби розробки front-end застосунків.
Програмні результати навчання, на формування та покращення яких спрямована дисципліна:
Проєктувати компоненти front-end (клієнтської) частини веб-застосунків та їх взаємодію. Реалізовувати компоненти front-end (клієнтської) частини веб-застосунків з використанням сучасних технологій, зокрема мов HTML, CSS, JavaScript. Обирати інструментальні засоби, бібліотеки та фреймворки для front-end розробки залежно від вимог проєкту, специфіки предметної галузі, досвіду команди. Створювати веб-застосунки, які використовують принципи адаптивного дизайну для підтримки різноманітних платформ, зокрема мобільних платформ.
Пререквізити та постреквізити дисципліни
Пререквізити
Для успішного засвоєння дисципліни студент повинен володіти освітніми компонентами "Програмування-1. Основи програмування", "Програмування-2. Структури даних та алгоритми", "Бази даних", "Інтернет-технології та проєктування WEB-застосувань".
Постреквізити
Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальших освітніх компонентів в галузі веб-розробки, зокрема поглибленого вивчення front-end технологій, а також можуть бути корисними для передипломної практики, дипломного проєктування.
Зміст навчальної дисципліни
Розділ 1. Створення веб-сторінок з використанням HTML та CSS
Тема 1.1. Сучасний стан веб-розробки, зокрема front-end технологій
Тема 1.2. Опис структури веб-документів з використанням мови розмітки HTML
Тема 1.3. Опис зовнішнього вигляду веб-сторінок з використанням мови стилів CSS
Тема 1.4. Розташування елементів на сторінках засобами CSS.
Тема 1.5. Трансформації та анімації в CSS. Адаптивний дизайн.
Розділ 2. Інтерактивність веб-сторінок з використанням JavaScript
Тема 2.1. Основні можливості мови програмування JavaScript.
Тема 2.2. Робота зі структурою веб-документів в JavaScript, засоби DOM.
Тема 2.3. Валідація даних засобами JavaScript. Регулярні вирази.
Тема 2.4. Асинхронне програмування в JavaScript, засоби promises API.
Тема 2.5. Взаємодія з back-end засобами JavaScript, формат даних JSON, засоби fetch API.
Тема 2.6. Збереження даних на front-end засобами JavaScript. Засоби web storage API.
Тема 2.7. Огляд сучасних JavaScript API, доступних в браузері.
Розділ 3. Використання інструментальних засобів, бібліотек та фреймворків в front-end розробці
Тема 3.1. Поняття front-end toolchain. Встановлення та використання інструментальних засобів, менеджер пакетів npm.
Тема 3.2. Бібліотека/фреймворк React. Основні принципи функціонування, розробка компонентів, взаємодія компонентів.
Тема 3.3. Додаткові можливості React. Бібліотеки та фреймворки на основі React.
Тема 3.4. Робота з даними в React застосунках. Засоби Redux, MobX.
Тема 3.5. Огляд альтернативних бібліотек/фреймворків для веб-розробки. Засоби Angular, Vue, Svelte.
Тема 3.6. Бібліотеки та фреймворки для CSS. Засоби Bootstrap, Tailwind, Sass.
Навчальні матеріали та ресурси
Базова література
MDN web docs. https://developer.mozilla.org
WebDoky. Ресурси та документація. https://webdoky.org/
CSS Tricks. https://css-tricks.com/
Eric Meyer, Estelle Weyl. CSS: The Definitive Guide: Web Layout and Presentation. — 5th Edition. — O'Reilly Media, 2023 — 1126 p.
Marijn Haverbeke. Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming — No Starch Press, 2018. — 472 p. Also available online https://eloquentjavascript.net/
David Flanagan. JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language. — 7th Edition — O'Reilly Media, 2020. —706 p.
Alex Banks, Eve Porcello. Learning React: Modern Patterns for Developing React Apps. — 2nd Edition O'Reilly Media, 2020. — 310 p.
Допоміжна література
Український веб-довідник https://css.in.ua/
HTML конструювання. http://htmlbook.in.ua/
W3SchoolsUA українською. https://w3schoolsua.github.io/
Boris Cherny. Programming TypeScript: Making Your JavaScript Applications Scale. — O'Reilly Media, 2019. — 324 p.
Aristeidis Bampakos, Pablo Deeleman. Learning Angular: A no-nonsense beginner's guide to building web applications with Angular 10 and TypeScript. — 3rd Edition — Packt Publishing, 2020. — 430 p.
Heitor Ramon Ribeiro. Vue.js 3 Cookbook: Discover actionable solutions for building modern web apps with the latest Vue features and TypeScript. — Packt Publishing , 2020. — 562 p.
Cristian Salcescu. Functional Architecture with React and Redux (Functional React) - Independently published, 2020 — 150 p.
Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
|
|
---|---|
1 |
|
Основні питання: Вступ. Зміст предмету. Архітектура веб-застосунків, серверна (back-end) та клієнтська (front-end) частини. Сучасні тенденції front-end розробки. | |
2 | Тема 1.2. Опис структури веб-документів з використанням мови розмітки HTML |
Основні питання: Основні елементи мови HTML. Теги, атрибути, текстові елементи, коментарі. Структура документа. Зображення, гіперпосилання. Переліки (списки). Таблиці. Форми. Семантичні теги. Валідатори HTML. | |
3 | Тема 1.3. Опис зовнішнього вигляду веб-сторінок з використанням мови стилів CSS |
Основні питання: Поняття розділення структури та зовнішнього вигляду веб-сторінок. Основні елементи мови стилів CSS. Правила, селектори, властивості. Базові властивості – кольори, шрифти. Пріоритети правил. | |
4 | Тема 1.4. Розташування елементів на сторінках засобами CSS. |
Основні питання: Порівняння використання засобів HTML, CSS, JavaScript для розташування елементів. Базова модель box model, властивості padding, margin, border. Відмінність між block та inline елементами. Різні можливості position, z-index. Розташування елементів з використанням flex, grid, float. | |
5 | Тема 1.5. Трансформації та анімації в CSS. Адаптивний дизайн. |
Основні питання: Порівняння реалізації трансформацій та анімацій в CSS та JavaScript. Основні трансформації. Підходи до анімації елементів, властивостей, переходів. Необхідність адаптивного дизайну. Медіа-запити. Засоби та властивості viewport. | |
6 | Розділ 2. Інтерактивність веб-сторінок з використанням JavaScript Тема 2.1. Основні можливості мови програмування JavaScript. |
Основні питання: Основні елементи мови JavaScript. Платформи, де використовується JavaScript. Базові типи даних. Елементи об’єктно-орієнтованих та функціональних мов в JavaScript. Основні API мови JavaScript. | |
7 | Тема 2.2. Робота зі структурою веб-документів в JavaScript, засоби DOM. |
Основні питання: Поняття моделі DOM, зв’язок з мовами HTML та CSS. Пошук елементів. Внесення змін до елементів. Додавання нових елементів. Видалення елементів. Обробка подій. Рекомендації щодо ефективної роботи з DOM API. | |
8 | Тема 2.3. Валідація даних засобами JavaScript. Регулярні вирази. |
Основні питання: Необхідність валідації даних в веб-застосунках. Порівняння клієнтської та серверної валідації. Засоби для валідації даних в HTML та JavaScript. Основні типи перевірок. Перевірки текстових даних з використанням текстових функцій та регулярних виразів. | |
9 | Тема 2.4. Асинхронне програмування в JavaScript, засоби promises API. |
Основні питання: Поняття асинхронного програмування. Необхідність асинхронного програмування в сучасних веб-застосунках. Механізми асинхронного програмування на основі callbacks. Promises API, їх можливості, переваги. Синтаксичні можливості async/await. | |
10 | Тема 2.5. Взаємодія з back-end засобами JavaScript, формат даних JSON, засоби fetch API. |
Основні питання: Підходи до передачі даних між front-end та back-end частинами веб-застосунків: гіперпосилання, форми, HTTP запити, Web Sockets. Розповсюджені формати даних для мережевої взаємодії. Можливості формату даних JSON. HTTP запити з використанням fetch API, promises, async/await. | |
11 | Тема 2.6. Збереження даних на front-end засобами JavaScript. Засоби web storage API. |
Основні питання: Необхідність збереження даних на front-end. Порівняння засобів cookies, web storage, засобів на основі БД. Відмінність між Local Storage та Session Storage. Можливості web storage API. Збереження складних об’єктів засобами web storage. | |
12 | Тема 2.7. Огляд сучасних JavaScript API, доступних в браузері. |
Основні питання: Сучасні JavaScript API в браузері. Мультимедійні можливості: canvas, audio/video, SVG, WebGL. Засоби взаємодії: postMessage, web sockets, WebRTC. Паралельна обробка: web workers. Офлайн режим: service workers. Доступ до можливостей пристрою: геолокація, мікрофон, камера. | |
13 | Розділ 3. Використання інструментальних засобів, бібліотек та фреймворків в front-end розробці Тема 3.1. Поняття front-end toolchain. Встановлення та використання інструментальних засобів, менеджер пакетів npm. |
Основні питання: Порівняння розробки з використанням лише засобів, доступних в браузері, та з використанням додаткових інструментальних засобів, бібліотек та фреймворків. Основні інструментальні засоби, що входять до складу front-end toolchain. Встановлення інструментальних засобів, бібліотек та фреймворків з використанням npm. Необхідність побудови та розгортання front-end застосунків, приклади розгортання на GitHub Pages. | |
14 | Тема 3.2. Бібліотека/фреймворк React. Основні принципи функціонування, розробка компонентів, взаємодія компонентів. |
Основні питання: Основні можливості React. Поняття компонентів, ієрархія компонентів, взаємодія компонентів. Компоненти на основі класів та функцій. Мова JSX, переваги та недоліки. Порівняння з шаблонами HTML. Передача даних в компоненти, props, state. Життєвий цикл компонентів. React hooks, порівняння з компонентами на основі класів. | |
15 | Тема 3.3. Додаткові можливості React. Бібліотеки та фреймворки на основі React. |
Основні питання: Списки в React, використання map, атрибут key, можливості fragments. Взаємодія з об’єктами DOM, використання ref. Передача даних в під-дерево, засоби Context. Патерни React. Підтримка CSS в React. Server Side Rendering. Додаткові бібліотеки в React: routing, virtual windowing. Фреймворк Next.js. | |
16 | Тема 3.4. Робота з даними в React застосунках. Засоби Redux, MobX. |
Основні питання: Необхідність підтримання стану в застосунках на основі React. Можливості та обмеження стандартної моделі React (props, state, context). Засоби Redux – store, actions, reducers, middleware. Використання React Toolkit. Засоби MobX, порівняння з React. | |
17 | Тема 3.5. Огляд альтернативних бібліотек/фреймворків для веб-розробки. Засоби Angular, Vue, Svelte. |
Основні питання: Огляд популярних front-end фреймворків. Основні можливості Angular. Архітектура, структура коду. Компоненти, директиви. Робота з back-end, сервіси. Робота з формами. Основні можливості Vue. Single-file components. Реактивні властивості. Основні можливості Svelte. Етап компіляції. Порівняння бібліотек/фреймворків для front-end розробки. | |
18 | Тема 3.6. Бібліотеки та фреймворки для CSS. Засоби Bootstrap, Tailwind, Sass. |
Основні питання: Необхідність фреймворків для CSS. Основні можливості Bootstrap. Засоби responsive grid. Стандартні компоненти. Засоби Tailwind. Підхід utility classes, порівняння з іншими підходами. Препроцесори CSS, їх переваги та недоліки. Основні можливості Sass. |
Лабораторні роботи
|
|
---|---|
1 | Лабораторна робота 1. Мова HTML. |
Вивчити синтаксис мови HTML, основні теги та атрибути. Навчитись використовувати валідатори HTML. Навчитись розгортати веб-сторінки на GitHub Pages. | |
2 | Лабораторна робота 2. Таблиці в HTML |
Вивчити можливості HTML для підтримки таблиць, задання базових стилів, об’єднання комірок. | |
3 | Лабораторна робота 3. Розташування елементів засобами CSS |
Вивчити підходи до розташування елементів засобами CSS, порівняти можливості flex, grid, float. | |
4 | Лабораторна робота 4. Базові можливості JavaScript, обробка подій |
Вивчити основні можливості мови JavaScript, реалізувати функції для роботи з елементами сторінки, реалізувати обробники подій. |
5 | Лабораторна робота 5. Валідація даних в JavaScript та HTML |
---|---|
Вивчити підходи для валідації даних у front-end застосунках, реалізувати стандартні перевірки. | |
6 | Лабораторна робота 6. Взаємодія з back-end засобами JavaScript. |
Вивчити механізми взаємодії з back-end, реалізувати отримання даних з зовнішнього web API та їх візуалізацію у front-end застосунку.. | |
7 | Лабораторна робота 7. Створення компонентів React. |
Вивчити основні можливості бібліотеки/фреймворку React. Реалізувати базовий застосунок з розбиттям на компоненти, взаємодією компонентів через props. Розгорнути реалізований застосунок на GitHub Pages. | |
8 | Лабораторна робота 8. Верстка сторінки за готовим макетом. |
Реалізувати веб-сторінку за заданим макетом. Реалізувати адаптивний дизайн. |
Самостійна робота студента
|
|
|
---|---|---|
1 | Підготовка до лабораторної роботи 1 | 5 |
2 | Підготовка до лабораторної роботи 2 | 6 |
3 | Підготовка до лабораторної роботи 3 | 6 |
4 | Підготовка до лабораторної роботи 4 | 6 |
5 | Підготовка до лабораторної роботи 5 | 6 |
6 | Підготовка до лабораторної роботи 6 | 6 |
7 | Підготовка до лабораторної роботи 7 | 6 |
8 | Підготовка до лабораторної роботи 8 | 10 |
9 | Підготовка до МКР | 15 |
Всього | 66 |
Контрольні роботи
Двогодинна модульна контрольна робота (МКР) поділяється на дві одногодинні (45 хв.), що проводяться під час лабораторних занять.
МКР-1 виконується після вивчення тем 1.1 – 2.7. МКР-2 виконується після вивчення тем
3.1 – 3.6. Модульні контрольні роботи виконуються в середовищі Google Classroom у вигляді тестування.
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед студентом:
правила відвідування занять: заборонено оцінювати присутність або відсутність здобувача на аудиторному занятті, в тому числі нараховувати заохочувальні або штрафні бали. Відповідно до РСО даної дисципліни бали нараховують за відповідні види навчальної активності на лекційних та практичних заняттях;
модульні контрольні роботи виконуються самостійно та без застосування допоміжної інформації з Інтернет, матеріалів курсу, конспекту;
заохочувальні бали виставляються за навчальну активність на лекційних заняттях. Кількість заохочуваних балів не більше 10;
штрафні бали виставляються за невчасну здачу лабораторних робіт. Кількість штрафних балів не більше 10;
політика щодо академічної доброчесності: Кодекс честі Національного технічного університету України «Київський політехнічний інститут імені Ігоря Сікорського» https://kpi.ua/files/honorcode.pdf встановлює загальні моральні принципи, правила етичної поведінки осіб та передбачає політику академічної доброчесності для осіб, що працюють і навчаються в університеті, якими вони мають керуватись у своїй діяльності, в тому числі при вивченні та складанні контрольних заходів з дисципліни «Основи front-end технологій».
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Поточний контроль: МКР, виконання та захист лабораторних робіт. Календарний контроль: проводиться двічі на семестр як моніторинг поточного стану виконання вимог силабусу. Семестровий контроль: залік. Рейтинг студента з дисципліни складається із балів, отриманих протягом семестру. Бали рейтингу протягом семестру студент отримує за:
виконання та захист лабораторних робіт; виконання модульних контрольних робіт (МКР).
Система рейтингових балів та критерії оцінювання Лабораторні роботи
«відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної
інформації) та оформлений належним чином протокол до лабораторної роботи – 10 балів;
«добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи –
8 балів; «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 6 балів; «незадовільно», незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.
За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал.
Модульні контрольні роботи
«відмінно», не менш ніж 90% правильних відповідей – 10 балів; «добре», не менш ніж 75% правильних відповідей – 8 балів; «задовільно», не менш ніж 60% правильних відповідей –
6 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.
Заохочувальні бали
за активну роботу на лекційному занятті 1 бал, але в сумі не більше 10.
Штрафні бали
Запізнення з поданням лабораторної роботи до захисту від встановленого терміну -1 бал, але в сумі не більше -10
Календарний контроль
На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 18 балів. На другій атестації (14-й тиждень) студент отримує
«зараховано», якщо його поточний рейтинг не менший ніж 36 балів.
Максимальна сума балів контрольних заходів протягом семестру складає: RD = 8*rлаб++2*rмкр=8*10+2*10=100,
де
rлаб – бал за лабораторну роботу (0…10); rмкр – бал за написання МКР (0…10)
Форма семестрового контролю – Залік
Необхідною умовою допуску до заліку є виконання одночасно усіх видів робіт:
1) виконати МКР-1 та МКР-2 не нижче ніж на оцінку «задовільно»; 3) захист достатньої кількості лабораторних робіт на оцінку не нижче ніж «задовільно» для отримання сумарного рейтингу (за лабораторні та МКР) не менше 40 балів;
Залік проводиться на останньому за розкладом занятті в семестрі. Якщо рейтинг протягом семестру становить 60 балів та вище, залікова оцінка, за згодою студента, переноситься в залікову відомість.
У випадку, коли семестровий рейтинг нижчий за 60 балів (усі види робіт виконані) або рейтинг вищий за 60 балів, але студент виявив бажання підвищити оцінку - призначається залікова контрольна робота. В цьому випадку бали семестрового рейтингу множаться на коефіцієнт 0.8. Залікова контрольна робота виконується в середовищі Google Classroom у вигляді тестування.
Система оцінювання залікової контрольної роботи
«відмінно», не менш ніж 90% правильних відповідей – 20 балів; «добре», не менш ніж 75% правильних відповідей – 16 балів; «задовільно», не менш ніж 60% правильних відповідей
– 12 балів; «незадовільно», менш ніж 60% правильних відповідей – 0 балів.
Сума балів семестрового рейтингу плюс бали за залікову контрольну роботу (за умови її проведення) переводиться до залікової оцінки згідно з таблицею:
Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
|
|
---|---|
100-95 | Відмінно |
94-85 | Дуже добре |
84-75 | Добре |
74-65 | Задовільно |
64-60 | Достатньо |
Менше 60 | Незадовільно |
Не виконані умови допуску | Не допущено |
Робочу програму навчальної дисципліни (Силабус):
Складено: доцент кафедри інформаційних систем та технологій ФІОТ, к.ф.-м.н., Жереб Костянтин Анатолійович
Ухвалено кафедрою інформаційних систем та технологій ФІОТ (протокол № 21 від 29.06.2023 р.)
Погоджено Методичною комісією факультету (протокол № 11 від 29.06.2023 р.)