Cучасні технології серверного програмування з використанням Python (Django) - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший (бакалаврський) |
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інтегровані інформаційні системи, Інформаційні управляючі системи та технології, Інформаційне забезпечення робототехнічних систем |
Статус дисципліни | Цикл професійної підготовки (вибіркові освітні компоненти з міжфакультетського/факультетського/кафедрального каталогів) |
Форма навчання | очна(денна) |
Рік підготовки, семестр | 3 курс, осінній семестр, весняний семестр |
Обсяг дисципліни | 120 годин |
Семестровий контроль/ контрольні заходи | екзамен |
Розклад занять | http://rozklad.kpi.ua |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів | Лектор, практичні, лабораторні: к.т.н., доцент, Резніков С.А. sergii.a.reznikov@gmail.com |
Розміщення курсу | https://campus.kpi.ua |
Програма навчальної дисципліни
Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
1.1. Мета навчальної дисципліни – «Cучасні технології серверного програмування з використанням Python (Django)» сформувати системне базове уявлення, первинні знання, вміння і навички студентів з основ розробки серверної частини ВЕБ-додатків та вивчити найбільш популярні СУБД (SQLite, MySQL, PostgreSQL, MongoDB), які використовує мульти парадігменна мова програмування Python, а також ознайомитись з сучасними фреймворками Flask та Django та використання сучасних ORM при розробці ВЕБ додатків з використанням Python . Другою метою є підготувати студентів до застосування знань програмування на мові Python в наступних дисциплінах, а також при подальшому вивченні професійного розширення мови програмування Python, яке вивчається в наступних курсах і присвячені застосуванню мови Python для розробки програмного забезпечення, яке використовується на серверній стороні веб-застосунків.
Навчальна дисципліна допомогає здобувачу вищої освіти отримати:
знання:
- принципів побудови веб-застосунків і їх структури на мові програмування Python;
- типи даних і базові конструкції мови програмування Python;
- основні прийоми, технології і парадигми програмування з використанням Python;
- інтегрованих середовищ розробки на мові програмування Python, які підтримують використання фреймворка Flask - Visual Studio Code, PyCHARM;
- основ і особливостей об'єктно-орієнтованого програмування на мові Python та його використання при розробці веб-застосунків з використанням back-end фреймворку Flask і Django.
Вміння:
-використовувати отримані знання для створення веб застосунків для використання в мережі інтернет для різних предметних галузей;
складати програми на Python з використанням ООП та ORM (PeeWee, SQLAlchemy та інші);
працювати в інтегрованому середовищі PyCharm та Visual Studio Code.
здатність:
виконувати розробку специфікацій окремих компонент на мові Python;
здійснювати розробку коду програмного продукту на основі готових
специфікацій на рівні модуля;
виконувати налагодження програмних модулів з використанням
спеціалізованих програмних засобів;
виконувати тестування програмних модулів;
здійснювати оптимізацію програмного коду модуля .
Згідно з вимогами освітньо-професійної програми студенти після засвоєння навчальної дисципліни мають продемонструвати такі результати навчання:
КОМПЕТЕНТНОСТІ
Інтегральна компетентність
Здатність розв'язувати складні спеціалізовані задачі та практичні проблеми у галузі планування моделювання та формування маршрута автономних мобільних роботів та дронів, що характеризується комплексністю та невизначеністю умов із застосування теорій та методів проектування, впровадження та супроводження інформаційних систем та технологій.
Загальні компетентності
КЗ 1 | Здатність до абстрактного мислення, аналізу та синтезу |
КЗ 2 | Здатність застосовувати знання у практичних ситуаціях |
КЗ 3 | Здатність до розуміння предметної області та професійної діяльності |
КЗ 4 | Здатність спілкуватися державною та іноземною мовами як усно, так і письмово |
КЗ 5 | Здатність вчитися і оволодівати сучасними знаннями |
Спеціальні (фахові, предметні) компетентності
КС 3 | Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (IoT), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними |
КС 10 | Здатність вибору, проектування, розгортання, інтегрування, управління, адміністрування та супроводжування інформаційних систем, технологій, інфокомунікацій, сервісів та інфраструктури організацій |
КС 14 | Здатність формувати нові конкурентоспроможні ідеї й реалізовувати їх у проектах (стартапах) |
ПРОГРАМНІ РЕЗУЛЬТАТИ НАВЧАННЯ:
ПР 2 Застосовувати знання фундаментальних і природничих наук, системного аналізу та технологій моделювання, стандартних алгоритмів та дискретного аналізу при розв’язанні задач проектування і використання інформаційних систем та технологій
ПР 12 Знати основи побудови та застосовувати сучасні операційні системи та пакети прикладних програм відповідно до професійних завдань
ПР 14 Знати сучасні мови програмування та технології створення програмного забезпечення інформаційних систем та технологій
Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)
Для успішного засвоєння дисципліни студенту необхідні наступні навчальні дисципліни: «Програмування», «Вища математики», «Теорія алгоритмів». “Основи баз даних”
На даній навчальній дисципліні базуються дисципліни: «Моделювання технічних систем», «Технології інтернету речей», «Управління технічними системами».
Зміст навчальної дисципліни
######## Тема 1. Основи мови програмування Python .Структура додатків на мові програмування Python. Інтегровані середовища розробки (Python IDE). Типи даних. Прості типи даних. Ідентифікатори. Правила запису програми. Введення та виведення даних. Змінні. Умови та операції над числами. Оператори присвоєння . Перетворення типів. Складні структури даних. Рядки .
Перетворення типів даних в рядки. Об’єднання та розмноження рядків.
Складні структури даних- списки та операції над ними . Складні структури даних — Кортежі . Складні структури даних - Словники.
Тема 2. Функції в мові програмування Python. Поняття функції. Власні функції . Параметри функції . Аргументи функцій . Позиційні аргументи . Іменовані аргументи
Значення параметра за замовчуванням . Отримання позиційних аргументів .
Отримання іменованих аргументів.
Тема 3.Технологія програмування мовою Python.
Cтандартні функції, Основи та особливості ООП в Python. Підключення бібліотек, установка модулів Винятки та обробка помилок. Документаційні рядки. Потік виконання . Внутрішні функції . Анонімні функції: функція lambda()
Особливості об'єктно-орієнтованого програмування в PYTHON. Створення класів і об'єктів . Клас як модуль та як утворювач об'єктів . Зміна полів об'єкта. Конструктор класу – метод __init__() , конструктор и деструктор. Спадкування та повне перевизначення методу надкласу. Доповнення або розширення, методу . Поліморфізм та метод __setattr__(). Композиція та перевантаження операторів.
Тема 4. Регулярний вираз в Python. Модифікатори . Синтаксис регулярних виразів . Пошук всіх збігів з шаблоном . Заміна в рядку .
Тема 5. Основи мережевого програмування в Python. Програмні характеристики протоколів TCP та UDP. Порядок розподілу портів. Клієнти та сервери. Загальні відомості про сокети. Основні функції модуля socket. Використання сокетів. Огляд інших мережевих модулів.
Тема 6. Інтернет і Веб в Python. HTTP, HTTPS і URI. HTTP: Типова взаємодія. HTTP: Структура протоколу. HTTP: Управлінням станом і сесія. HTTP: Приклад взаємодії. API веб-сервісів . Підтримка стека TCP / IP в Python . Загальний список та детальні представлення. Структура сесій.
Тема 7. Основи серверного програмування на Python. Бекенд, і фронтенд - варіанти архітектури ПЗ. Взаємодія бекенд з фронтенд. Варіанти взаємодії. Поняття про фреймворки. Fullstack фреймворки на мові Python. Фреймворк Django. Фреймворк Flask. Фреймворк Pyramid. Фреймворк TurboGears. Фреймворк Web2Py. Фреймворк Bottle. Фреймворк CherryPy. Фреймворк Tornado.
Тема 8. Об'єктно-реляційне відображення (ORM). Парадигми «невідповідності». Переваги і недоліки ORM. Способи налаштування ORM. Шаблони ORM – Active record, Data mapper. Реалізації Python ORM. ORM SQLAlchemy, Peewee, ORM Django, PonyORM, SQLObject, Tortoise.
Тема 9. Python ORM Peewee. Основні функції Peewee. Визначення моделі. Підключення до бази даних. Зберігання даних. Отримання даних. Списки записів. Сортування. Фільтри. Агрегати та попередня вибірка. Функції SQL. Налаштування бази даних. Відображення Peewee. Визначення моделі Peewee. Таблиця бази даних нотаток у SQLite. Операція вставки. Виборка. Фільтрація. Використання декількох виразів. Вибірка стовпців. Підрахунок екземплярів. Відображення операторів SQL. Видалення екземпляру. Оновлення екземпляру. Відносини “один до багатьох”.
Тема 10. ORM SQLAlchemy . Використання ORM SQLAlchemy та його архітектура. Встановлення ORM SQLAlchemy , DBAPI та створення пула з’єднань. Підключення до бази даних. Створення схеми бази даних в SQLAlchemy Core. Стандартні типи SQL. Реляційні відношення. Обмеження на рівні таблиці. Зв’язок з таблицями та колонками з допомогою MetaData. CRUD операції з допомогою SQLAlchemy Core. Фільтрация записів . Сортування результату. Обмеження результатів та колонок. Групування результатів. Об’єднання (JOIN) . Оновлення та видалення записів. Транзакції.
Тема 11. Робота скриптів Python з NoSQL СУБД. Особливості NoSQL. Типи баз даних NoSQL . Сховище на основі пари ключ-значення. Колоночні бази даних. Документо-орієнтовані NoSQL . NoSQL на оснві графів. Переваги та недоліки NoSQL СУБД. Принципи BASE.
Тема 12. Документо-орієнтована СУБД MongoDB. Особливості MongoDB. Ключові компоненти архітектури MongoDB. Використання MongoDB з Python. Введення в MongoDB з використанням PyMongo. Порівняння MongoDB з RDBMS. Вміст пакету MongoDB.
Тема 13. Інтеграція MongoDB з Python за допомогою PyMongo . Взаємодія з MongoDB через Mongo Shell. Інтеграція Python з MongoDB. Робота з документами. Object document mapper (ODM) MongoEngine . Робота з документами з використанням MongoEngine. Обєктно-орієнтовані функції ODM MongoEngine. Використання GridFS . Міграція документів.
Тема 14. Мікрофреймворк Flask . Введення в Flask. Створення програми Flask. Створення шляхів (route) . Запуск сервера розробки . Обробка запитів в Flask. Контексти в Flask.
Тема 15. Шаблонізатор Jinja2 в Flask. Залежності Jinja2 та Werkzeug в Flask. Маршрутизація. Модуль маршрутизації від Werkzeug. Генерація URL. HTTP методи. Статичні файли в Flask. Рендеринг шаблонів. Локальні контексти (Context Locals). Об’єкт запиту. Використання Cookies. Шаблони Jinja2. Умовні оператори в Jinja2. Спадкування шаблонів. Основні поняття шаблонізатора Jinja2.
Тема 16. Веб форми в Flask. Форми HTML в Flask. Процес управління формою в Flask. Робота з формами. Форми WTForms . Встановлення SECRET_KEY. Форми в консолі. Рендеринг форми. Рендеринг полів.
Тема 17. Бази даних у Flask. Міграції. Використання Flask-SQLAlchemy. Конфігурація Flask-SQLAlchemy. Моделі баз даних. Створення міграції. Перша міграція бази даних. Процес оновлення бази даних та відкат змін Upgrade та Downgrade. Зв’язки бази даних.
Тема 18. Django. Вступ до фреймворка. Типові задачі для застосунку Django. Архітектура фреймворка Django. Особливості Django. Архітектура Джанго: MVC і MVT. Шаблон Django MVC-MVT. Компоненти Django. Недоліки Django. Встановлення Django. Створення проекту Django. Структура проекту Django. Створення програми . Проектування схеми бази даних. Активація програми. Створення і застосування міграцій.
Навчальні матеріали та ресурси
ОСНОВНА ЛІТЕРАТУРА
Дронов В.А. Django 3.0. Практика создания веб-сайтов на Python/М.: БХВ, 2021. 706 c.
Гринберг М. Разработка веб-приложений с использованием Flask на языке Python М.: ДМК, 2018, 272 с.
ДОДАТКОВА ЛІТЕРАТУРА
Давыдов С.В. Ефимов IntelliJ IDEA. Профессиональное программирование на Java в подлиннике/ БХВ-Петербург , 2005, 800 с.
Меле Антонио. Django 2 в примерах. М.: ДМК, 2019, 546 с.
Уэсли Дж. Чан Python: создание приложений. 3-е издание. К.: Вильямс., 2015. 816 с.
Навчальний контент
Методика опанування навчальної дисципліни (освітнього компонента)
Кількість годин | |||||
Назви змістовних модулів і тем | Всього | В тому числі | |||
Лекції | Комп. практ. | ||||
1 | 2 | 3 | 4 | 5 | |
Розділ 1. Принципи Python .Структура мови Python | 2 | 2 | |||
1.1. Структура додатків на мові програмування Python. Інтегровані середовища розробки (Python IDE). Типи даних. Прості типи даних. Ідентифікатори. Правила запису програми. Введення та виведення даних. Змінні. Умови та операції над числами. Оператори присвоєння . Перетворення типів. Складні структури даних. Рядки. Перетворення типів даних в рядки. Об’єднання та розмноження рядків. | 2 | 2 | |||
Розділ 2.Функції в мові програмування Python. | 2 | 2 | |||
2.1.Поняття функції. Власні функції . Параметри функції . Аргументи функцій . Позиційні аргументи . Іменовані аргументи.Значення параметра за замовчуванням . Отримання позиційних аргументів.Отримання іменованих аргументів. | 2 | 2 | |||
Розділ 3. Технологія програмування мовою Python. | 2 | 2 | |||
3.1.Cтандартні функції, Основи та особливості ООП в Python. Підключення бібліотек, установка модулів Винятки та обробка помилок. Документаційні рядки. Потік виконання . Внутрішні функції . Анонімні функції: функція lambda() Особливості об'єктно-орієнтованого програмування в PYTHON. Створення класів і об'єктів . Клас як модуль та як утворювач об'єктів . Зміна полів об'єкта. Конструктор класу – метод __init__() , конструктор и деструктор. Спадкування та повне перевизначення методу надкласу. Доповнення або розширення, методу . Поліморфізм та метод __setattr__(). Композиція та перевантаження операторів. |
2 | 2 | |||
Розділ 4. Регулярні вирази | 2 | 2 | |||
4.1.Регулярний вираз . Модифікатори . Синтаксис регулярних виразів . Пошук всіх збігів з шаблоном . Заміна в рядку . Метод split() . | 2 | 2 | |||
Розділ 5. Основи мережевого програмування в Python. | 2 | 2 | |||
5.1.Програмні характеристики протоколів TCP та UDP. Порядок розподілу портів. Клієнти та сервери. Загальні відомості про сокети. Основні функції модуля socket. Використання сокетів. Огляд інших мережевих модулів. | 2 | 2 | |||
Розділ 6. Інтернет і Веб в Python | 4 | 2 | 2 | ||
6.1.HTTP, HTTPS і URI. HTTP: Типова взаємодія. HTTP: Структура протоколу.HTTP: Управлінням станом і сесія. HTTP: Приклад взаємодії. API веб-сервісів . Підтримка стека TCP / IP в Python . Загальний список та детальні представлення. Структура сесій. | 4 | 2 | 2 | ||
Розділ 7. Основи серверного програмування на Python. | 4 | 2 | 2 | ||
7.1. Бекенд, і фронтенд - варіанти архітектури ПЗ. Взаємодія бекенд з фронтенд. Варіанти взаємодії.Поняття про фреймворки. Fullstack фреймворки на мові Python.Фреймворк Django. Фреймворк Flask. Фреймворк Pyramid. Фреймворк TurboGears. Фреймворк Web2Py. Фреймворк Bottle. Фреймворк CherryPy. Фреймворк Tornado | 4 | 2 | 2 | ||
Розділ 8. Об'єктно-реляційне відображення (ORM). | 2 | 2 | |||
8.1.Парадигми «невідповідності». Переваги і недоліки ORM. Способи налаштування ORM. Шаблони ORM – Active record, Data mapper. Реалізації Python ORM. ORM SQLAlchemy, Peewee, ORM Django, PonyORM, SQLObject, Tortoise. | 2 | 2 | |||
Розділ 9. Python ORM Peewee. | 4 | 2 | 2 | ||
9.1Основні функції Peewee. Визначення моделі. Підключення до бази даних. Зберігання даних. Отримання даних. Списки записів. Сортування. Фільтри. Агрегати та попередня вибірка. Функції SQL. Налаштування бази даних. Відображення Peewee. Визначення моделі Peewee. Таблиця бази даних нотаток у SQLite. Операція вставки. Виборка. Фільтрація. Використання декількох виразів. Вибірка стовпців. Підрахунок екземплярів. Відображення операторів SQL. Видалення екземпляру. Оновлення екземпляру. Відносини “один до багатьох”. | 4 | 2 | 2 | ||
Розділ 10. ORM SQLAlchemy | 6 | 2 | 4 | ||
10.1.Використання ORM SQLAlchemy та його архітектура. Встановлення ORM SQLAlchemy , DBAPI та створення пула з’єднань. Підключення до бази даних. Створення схеми бази даних в SQLAlchemy Core. Стандартні типи SQL. Реляційні відношення. Обмеження на рівні таблиці. Зв’язок з таблицями та колонками з допомогою MetaData. CRUD операції з допомогою SQLAlchemy Core. Фільтрация записів . Сортування результату. Обмеження результатів та колонок. Групування результатів. Об’єднання (JOIN) . Оновлення та видалення записів. Транзакції. | 6 | 2 | 4 | ||
Розділ 11.Робота скриптів Python з NoSQL СУБД. | 2 | 2 | |||
11.1.Особливості NoSQL. Типи баз даних NoSQL . Сховище на основі пари ключ-значення. Колоночні бази даних. Документо-орієнтовані NoSQL . NoSQL на основі графів. Переваги та недоліки NoSQL СУБД. Принципи BASE. | 2 | 2 | |||
Розділ 12.Документо-орієнтована СУБД MongoDB. | 2 | 2 | |||
12.1. Особливості MongoDB. Ключові компоненти архітектури MongoDB. Використання MongoDB з Python. Введення в MongoDB з використанням PyMongo. Порівняння MongoDB з RDBMS. Вміст пакету MongoDB. | 2 | 2 | |||
Розділ 13. Інтеграція MongoDB з Python за допомогою PyMongo | 6 | 2 | 4 | ||
13.1.Взаємодія з MongoDB через Mongo Shell. Інтеграція Python з MongoDB. Робота з документами. Object document mapper (ODM) MongoEngine . Робота з документами з використанням MongoEngine. Об’єктно-орієнтовані функції ODM MongoEngine. Використання GridFS . Міграція документів. | 6 | 2 | 4 | ||
Розділ 14. Мікрофреймворк Flask | 2 | 2 | |||
14.1.Введення в Flask. Створення програми Flask. Створення шляхів (route) . Запуск сервера розробки . Обробка запитів в Flask. Контексти в Flask. | 2 | 2 | |||
Розділ 15.Шаблонізатор Jinja2 в Flask. | 2 | 2 | |||
15.1.Залежності Jinja2 та Werkzeug в Flask. Маршрутизація. Модуль маршрутизації від Werkzeug. Генерація URL. HTTP методи. Статичні файли в Flask. Рендеринг шаблонів. Локальні контексти (Context Locals). Об’єкт запиту. Використання Cookies. Шаблони Jinja2. Умовні оператори в Jinja2. Спадкування шаблонів. Основні поняття шаблонізатора Jinja2. | 2 | 2 | |||
Розділ 16.Веб форми в Flask. | 2 | 2 | |||
16.1.Форми HTML в Flask. Процес управління формою в Flask. Робота з формами. Форми WTForms . Встановлення SECRET_KEY. Форми в консолі. Рендеринг форми. Рендеринг полів. | 2 | 2 | |||
Розділ 17.Бази даних у Flask. Міграції. | 6 | 2 | 4 | ||
17.1.Використання Flask-SQLAlchemy. Конфігурація Flask-SQLAlchemy. Моделі баз даних. Створення міграції. Перша міграція бази даних. Процес оновлення бази даних та відкат змін Upgrade та Downgrade. Зв’язки бази даних. | 6 | 2 | 4 | ||
Розділ 18. Django. Вступ до фреймворка. | 6 | 2 | 4 | ||
18.1.Типові задачі для застосунку Django. Архітектура фреймворка Django. Особливості Django. Архітектура Джанго: MVC і MVT. Шаблон Django MVC-MVT. Компоненти Django. Недоліки Django. Встановлення Django. Створення проекту Django. Структура проекту Django. Створення програми . Проектування схеми бази даних. Активація програми. Створення і застосування міграцій. | 6 | 2 | 4 | ||
Підготовка до заліку | 6 | ||||
Всього | 120 | 36 | 18 |
Самостійна робота студента/аспіранта
Робочим навчальним планом передбачено виконання 5 — комп’ютерних практикумів за індивідуальними завданнями.
Тематика індивідуальних завдань
Використання СУБД SQLite, MySQL, PostgreSQL з мовою програмування Python 3.
Використання ORM Peewee з СУБД SQLite, MySQL, PostgreSQL та мовою програмування Python 3
Обробка інформації NoSQL СУБД MongoDB на мові програмування Python 3
Використання пакета FLASK з мовою програмування Python 3 для побудови веб-сайту візитки..
Використання фреймворка Django для побудови веб-сайту візитки..
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Організація освітнього процесу і оцінювання результатів навчання регламентуються Положенням про організацію освітнього процесу в Національному технічному університеті України «Київський політехнічний інститут імені Ігоря Сікорського». Політика виставлення оцінок: кожна оцінка виставляється відповідно до розроблених викладачем та заздалегідь оголошених студентам РСО; у разі невиконання студентом усіх передбачених робочим навчальним планом занять (комп’ютерних практикумів, розрахункової роботи) до екзамену він не допускається. Відвідування комп’ютерних практикумів є обов'язковим(за винятком випадків, коли існує поважна причина, наприклад, хвороба чи дозвіл працівників деканату). Якщо студент не може бути присутніми на заняттях, він повинен відпрацювати самостійно комп’ютерні практикуми, що проводились в комп’ютерному класі.
Відпрацювання пропущеного комп’ютерного практикуму здійснюється шляхом самостійного виконання завдання і його захисту відповідно до графіку консультацій викладача.
Політика академічної поведінки та доброчесності: конфліктні ситуації мають відкрито обговорюватись з викладачем, необхідно бути взаємно толерантним, поважати думку іншого. Будь-які форми нечесної роботи неприпустимі.
Всі індивідуальні завдання та розрахункову роботу студент має виконати самостійно із використанням відповідних методичних вказівок, рекомендованої літератури й отриманих знань та навичок.
Недопустимі підказки у ході захисту комп’ютерних практикумів, на іспиті. Норми академічної етики:дисциплінованість; дотримання субординації; чесність; відповідальність; робота в аудиторії з відключеними мобільними телефонами. У ході захисту комп’ютерних практикумів студент може користуватися власними ноутбуками. Проте під час лекційних занять та обговорення завдань лабораторних робіт не слід використовувати смартфони, планшети чи комп’ютери. Якщо ви використовуєте свій ноутбук чи телефон для аудіо-чи відеозапису, необхідно заздалегідь отримати дозвіл викладача.
Дотримання академічної доброчесності студентів й викладачів регламентується кодексом честі Національного технічного університету України «Київський політехнічний інститут», Положення про організацію освітнього процесу в КПІ ім. Ігоря Сікорського.
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Розподіл навчального часу за видами занять і завдань дисципліни згідно з робочим навчальним планом.
Семестр | Навчальний час | Розподіл навчальних годин | Контрольні заходи | ||||
Кредити | Акад. год. | Лекц. | Комп’ютерний практикум |
СРС +Залік. | МКР | РР | |
3 | 4 | 120 | 36 | 18 | 480 | 1 |
Рейтинг студента з дисципліни складається з балів, що він отримує за:
виконання та захист 5 завдань комп’ютерного практикуму;
модульна контрольна робота;
1. Рейтинг студента з кредитного модуля складається з балів, що він отримує за:
виконання робіт комп’ютерного практикуму (5 практикумів);
виконання модульної контрольної роботи (МКР).
2. Критерії нарахування балів.
2.1. Роботи комп’ютерного практикуму оцінюються із 10 балів кожна:
«відмінно» – повна відповідь (не менше 90% потрібної інформації) – 8
балів;
«добре» – достатньо повна відповідь (не менше 75% потрібної
інформації) або повна відповідь з незначними неточностями – 6 балів;
«задовільно» – неповна відповідь (не менше 60% потрібної інформації)
та незначні помилки – 4 бали;
«незадовільно» – відповідь не відповідає вимогам до «задовільно» – 0
балів.
2.3. Модульна контрольна робота оцінюється із 12 балів за такими критеріями:
«відмінно» – повна відповідь (не менше 90% потрібної інформації) –
12-10 балів;
«добре» – достатньо повна відповідь (не менше 75% потрібної
інформації) або повна відповідь з незначними неточностями – 9-7 балів;
«задовільно» – неповна відповідь (не менше 60% потрібної інформації)
та незначні помилки – 6-4 бали;
«незадовільно» – відповідь не відповідає вимогам до «задовільно» –
3-0 балів.
За кожний тиждень затримки із поданням комп’ютерного практикуму нараховуються штрафні –2 бали (усього не більше – 8 балів).
Наявність позитивної оцінки з модульної контрольної роботи є умовою допуску до залікової контрольної роботи.
2.4. Залікова контрольна робота оцінюється із 60 балів. Контрольне завдання цієї роботи складається з трьох запитань з переліку, що наданий у додатку до робочої програми КМ.
Кожне запитання оцінюється з 20 балів за такими критеріями:
– «відмінно» – повна відповідь (не менше 90% потрібної інформації), надані відповідні обґрунтування та особистий погляд – 20 - 18 балів;
«добре» – достатньо повна відповідь (не менше 75% потрібної
інформації), що виконана згідно з вимогами до рівня «умінь», або незначні неточності) – 17…15 балів;
«задовільно» – неповна відповідь (не менше 60% потрібної інформації.
що виконана згідно з вимогами до «стереотипного» рівня та деякі помилки) – 14…12 балів;
– «незадовільно» – незадовільна відповідь – 0 балів.
3. Умовою позитивної першої атестації є отримання не менше 24 балів, другої атестації – отримання не менше 48 балів за умови зарахування МКР.
4. Сума рейтингових балів, отриманих студентом протягом семестру, за умови зарахування МКР, переводиться до підсумкової оцінки згідно з таблицею (п.7).
5. Студенти, які виконали всі умови допуску до семестрової атестації з кредитного модуля та мають рейтингову оцінку не менш ніж 60 балів, отримують відповідну позитивну оцінку без додаткових випробувань.
6. Якщо сума балів менша за 60, але МКР зараховано, студент виконує залікову контрольну роботу. У цьому разі сума балів за виконання МКР та залікову контрольну роботу переводиться до підсумкової оцінки згідно з таблицею п. 7.
7. Студент, який у семестрі отримав більше 60 балів, але бажає підвищити свій результат, може взяти участь у заліковій контрольній роботі. У цьому разі остаточний результат складається із балів, що отримані на заліковій контрольній роботі та балів з МКР.
Таблиця відповідності рейтингових балів оцінкам за університетською шкалою:
Кількість балів | Оцінка |
100-95 | Відмінно |
94-85 | Дуже добре |
84-75 | Добре |
74-65 | Задовільно |
64-60 | Достатньо |
Менше 60 | Незадовільно |
Не виконані умови допуску | Не допущено |
Додаткова інформація з дисципліни (освітнього компонента)
Перелік питань на залік
Структура додатків на мові програмування Python. Інтегровані середовища розробки (Python IDE)..
Прості типи . Цілочисельні типи. Дійсні типи. Символи . Логічний тип . Літерали . Змінні .
Перетворення і приведення типів . Приведення несумісних типів . Автоматичне перетворення типів у виразах. .
Складні структури даних. Рядки. Перетворення типів даних в рядки. Об’єднання та розмноження рядків. .
Арифметичні операції . Операції відношення . Логічні операції . Операція присвоєння . Оператори .
Поняття функції. Власні функції . Параметри функції . Аргументи функцій . Позиційні аргументи . Іменовані аргументи..
Особливості об'єктно-орієнтованого програмування в PYTHON. Створення класів і об'єктів . Клас як модуль та як утворювач об'єктів . Зміна полів об'єкта. Конструктор класу – метод __init__() , конструктор и деструктор..
Програмні характеристики протоколів TCP та UDP.
Підтримка стека TCP / IP в Python . Загальний список та детальні представлення. Структура сесій.
Бекенд, і фронтенд - варіанти архітектури ПЗ. Взаємодія бекенд з фронтенд. Варіанти взаємодії.
Регулярний вираз . Модифікатори . Синтаксис регулярних виразів . Пошук всіх збігів з шаблоном . Заміна в рядку . Метод split() .
Поняття про фреймворки. Fullstack фреймворки на мові Python.Фреймворк Django. Фреймворк Flask. Фреймворк Pyramid.
Об'єктно-реляційне відображення (ORM). Парадигми «невідповідності». Переваги і недоліки ORM. Способи налаштування ORM. Шаблони ORM – Active record, Data mapper. Реалізації Python ORM..
Основні функції ORM Peewee. Визначення моделі. Підключення до бази даних. Зберігання даних. Отримання даних.
Основи класів і об'єктів Python . Оголошення полів всередині класу . Визначення методів всередині класу . Конструктори класу . Ініціалізація полів класу . Блоки Ініціалізації .
Виклик одного конструктора з іншого . Створення констант класу в Python . Статичні члени класу .Методи-фабрики .
Спадкування . Перевизначення методів базового класу . Перевизначення методів базового класу . Фінальні класи і методи . Абстрактні класи та методи .
Відображення ORM Peewee. Визначення моделі Peewee. Таблиця бази даних нотаток у SQLite. Операція вставки. Виборка. Фільтрація. Використання декількох виразів. Вибірка стовпців.
Використання ORM SQLAlchemy та його архітектура. Встановлення ORM SQLAlchemy , DBAPI та створення пула з’єднань. Підключення до бази даних. Створення схеми бази даних в SQLAlchemy Core.
CRUD операції з допомогою SQLAlchemy Core. Фільтрация записів . Сортування результату. Обмеження результатів та колонок.
Робота скриптів Python з NoSQL СУБД. Особливості NoSQL. Типи баз даних NoSQL
Особливості СУБД MongoDB. Ключові компоненти архітектури MongoDB. Використання MongoDB з Python. Введення в MongoDB з використанням PyMongo..
Порівняння MongoDB з RDBMS. Вміст пакету MongoDB.
Взаємодія з MongoDB через Mongo Shell. Інтеграція Python з MongoDB..
Object document mapper (ODM) MongoEngine . Робота з документами з використанням MongoEngine. Об’єктно-орієнтовані функції ODM MongoEngine.
Створення програми Flask. Створення шляхів (route) . Запуск сервера розробки .
Обробка запитів в Flask. Контексти в Flask.
Залежності Jinja2 та Werkzeug в Flask.
Маршрутизація. Модуль маршрутизації від Werkzeug. Генерація URL. HTTP методи.
Статичні файли в Flask. Рендеринг шаблонів. Локальні контексти (Context Locals). Об’єкт запиту. Використання Cookies. Шаблони Jinja2.
Форми HTML в Flask. Процес управління формою в Flask. Робота з формами.
Форми WTForms . Встановлення SECRET_KEY. Форми в консолі. Рендеринг форми. Рендеринг полів.
Використання Flask-SQLAlchemy. Конфігурація Flask-SQLAlchemy.
Моделі баз даних. Створення міграції. Перша міграція бази даних. Процес оновлення бази даних та відкат змін Upgrade та Downgrade.
Архітектура фреймворка Django. Особливості Django. Архітектура Джанго: MVC і MVT.
Шаблон Django MVC-MVT. Компоненти Django. Недоліки Django. Встановлення Django.
Створення проекту Django. Структура проекту Django. Створення програми . Проектування схеми бази даних. Активація програми. Створення і застосування міграцій.
Робочу програму навчальної дисципліни (силабус):
Складено доцент, к.т.н., , доцент Резніков Сергій Анатолійович
Ухвалено кафедрою АСТ (протокол №1 від 31.08.2021р)
Погоджено Методичною комісією факультету (протокол №1 від .09.2021 р)