Програмування з використанням Python

Обов'язкова дисципліна
Навчальна дисципліна загальної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
15 лекцій, 8 практичних занять, 7 лабораторних занять.
Самостійна робота: 
робота складає 75 годин. Самостійна робота здобувача відбувається впродовж семестру та складається з підготовки до аудиторних занять, контрольних заходів, участь у дискусіях.
Семестровий контроль: 
Екзамен.
Освітню компоненту забезпечує: 
Анотація: 

Анотація навчальної дисципліни

Мета вивчення дисципліни 
Надання знань з теоретичних основ розробки прикладного програмного забезпечення мовою високого рівня Python, оволодіння основними прийомами та алгоритмами вирішення прикладних завдань в області  інженерії програмного забезпечення та їх програмної реалізації з використанням мови програмування Python та модулів стандартних бібліотек.

Практичне значення та використання отриманих знань 
Набуття практичних навичок застосування з основними поняттями та особливостями роботи інтерпретаторів, сформувати комплексне уявлення про структуру прикладних програм мовою Python; вивчити особливості синтаксису і семантики базових конструктивних елементів мови програмування Python: лексем, виразів та операторів; отримати знання про різновиди простих та складених типів даних, усвідомити особливості їх використання при вирішенні прикладних завдань мовою програмування Python; сформувати уявлення про програмування функцій і їх використання для реалізації ієрархічної структури програми, отримати знання про імпорт та використання модулів стандартних бібліотек; сформувати комплексне уявлення про об'єктно-орієнтовану парадигму програмування мовою Python; оволодіти прийомами створення графічного інтерфейсу з організацією вводу та відображення даних, позиціонуванням елементів управління та обробкою пов’язаних з ними подій; вивчити особливості роботи з текстовими, бінарними та CSV-файлами, оволодіти основними операціями над ними; оволодіти базовими прийомами програмування ігор мовою Python, отримати знання про налаштування ігрового циклу; сформувати уявлення про засоби аналізу даних у Python, оволодіти базовими операціями для взаємодії з даними; вивчити засоби візуалізації даних у Python, оволодіти прийомами побудови графіків та налаштування їх елементів; сформувати уявлення про основні етапи модульного тестування, вивчити прийоми побудови unit-тестів.  
Основні результати навчання
ПРН13. Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
ПРН14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення.

Тематика та види навчальних занять
1 тиждень.
Лекція 1 «Принципи роботи інтерпретатору Python. Історія виникнення мови Python та її порівняння з іншими мовами програмування. Основні особливості Python: скриптова мова, підтримка різних парадигм програмування, портативність і платформонезалежність, автоматичне управління пам'яттю, динамічна типізація.»
Практичне заняття 1 «Основні програмні терміни та етапи розробки програм. Огляд програмного забезпечення: IDLE, IDE PyCharm, Jupyter Notebook.»

2 тиждень. 
Лекція 2 «Алфавіт мови програмування Python. Змінні та стандартні типи даних: числові та логічні. Приклади динамічної типізації. Операції: логічні, математичні, операції відношення та інші. Пріоритети та приклади використання операцій. Вирази.»
Лабораторне заняття 1  «Знайомство з середовищами розробки IDE PyCharm та Jupyter Notebook: інсталяція, налаштування, запуск типової програми.»

3 тиждень. 
Лекція 3 «Архітектура програми мовою Python, імпорт та використання модулів стандартних бібліотек. Функції, область видимості змінних. Ввід та вивід даних, форматування вводу та виводу. Рядки, базові операції з рядками.»
Практичне заняття 2 «Складання програм для обчислення арифметичних виразів з використанням вводу і виводу даних. Організація інтерфейсу програми за допомогою рядків.»

4 тиждень. 
Лекція 4 «Умовний оператор: if, else, elif. Оператори циклів while та for. Використання блоків та відступів.  Оператори break, continue.»
Лабораторне заняття 2 «Створення програми з використанням умовних операторів та циклів. Організація обчислювальних процесів за допомогою вкладених умовних операторів та циклів.»

5 тиждень. 
Лекція 5 «Об'єктно-орієнтована парадигма програмування Python: класи, об’єкти, інкапсуляція, успадкування, поліморфізм, клас object. Типові практичні приклади для демонстрації об'єктно-орієнтованого програмування в мові Python.»
Практичне заняття 3 «Складання об'єктно-орієнтованих програм із застосуванням інкапсуляції, успадкування та поліморфізму.»

6 тиждень. 
Лекція 6 «Створення графічного інтерфейсу. Модуль Tkinter: створення вікна застосування, робота з кнопками Button, текстовими мітками Label, полями вводу Entry. Позиціонування елементів.»
Лабораторне заняття 3 «Створення програми, що містить галерею фотографій та засоби навігації по галереї.»

7 тиждень.
Лекція 7 «Створення графічного інтерфейсу (продовження). Модуль Tkinter: організація вибору з елементами Checkbutton та Radiobutton, оформлення списку з Listbox, створення ієрархічного меню з Menu.»
Практичне заняття 4 «Створення графічної програми для проведення анкетування із застосуванням елементів вибору варіантів відповідей.» 

8 тиждень. 
Лекція 8 «Робота з наборами даних. Стандартні типи list (список), dict (словник). Стандартні методи для роботи зі списками та словниками: створення, звернення до елементів, модифікація, порівняння, перебір елементів.»
Лабораторне заняття 4 «Створення графічної програми для проведення анкетування з використанням списків та словників. Заповнення, обробка та вивід вмісту списків та словників.»
Модульна контрольна робота 1.

9 тиждень. 
Лекція 9 «Робота з наборами даних (продовження). Стандартні типи tuple (кортеж), set (множина). Стандартні методи для роботи з кортежами та множинами: створення, звернення до елементів, модифікація, порівняння, перебір елементів.»
Практичне заняття 5 «Створення програми з використанням наборів даних: список, словник, кортеж, множина. Виконання операцій над наборами даних.» 

10 тиждень.
Лекція 10 «Робота з файлами: відкриття, закриття, читання та запис. Текстові, бінарні та CSV-файли. Модулі pickle та csv.» 
Лабораторне заняття 5 «Створення програми – текстового редактора з базовою функціональністю. Робота з вмістом документу з використанням текстового файлу, збереження налаштувань документу у бінарному та CSV-файлі.»

11 тиждень. 
Лекція 11 «Основи програмування ігор. Бібліотека pygame. Ігровий цикл: обробка вводу (події), оновлення гри, рендеринг (прорисовка), швидкість роботи ігрового циклу. Створення шаблону для ігрового проекту. Використання звуків і фонової музики.»
Практичне заняття 6 «Створення базової програми для ігрового проекту. Налаштування ігрового циклу. Розгляд можливостей створення ігор категорії «Skill-and-action».»

12 тиждень. 
Лекція 12 «Основи програмування ігор (продовження). Робота зі спрайтами.  Рух / управління спрайтами. Кінематика руху та зіткнень.» 
Лабораторне заняття 6 «Створення ігрової програми з використанням руху спрайтів та їх взаємодії з іншими об’єктами.»

13 тиждень. 
Лекція 13 «Засоби аналізу даних. Бібліотека pandas: структури даних Series та DataFrame, індексні об’єкти. Фундаментальні основи взаємодії з даними, аналіз і маніпуляція даними. Основи NumPy: масиви і векторні обчислення.»
Практичне заняття 7 «Створення програм для аналізу даних з використанням структур даних Series, DataFrame та NumPy.»

14 тиждень. 
Лекція 14 «Візуалізація даних. Бібліотека Mathplotlib. Основи роботи з модулем pyplot: побудова графіків, текстові надписи на графіку, налаштування елементів графіка, візуалізація даних з функцією plot().»
Лабораторне заняття 7 «Створення програми для візуалізації даних з використанням Mathplotlib. Дані для візуалізації отримуються за допомогою pandas.»
Модульна контрольна робота 2.

15 тиждень.
Лекція 15 «Модульне тестування. Основні ідеї unit-тестів. Використання модулю unittest. Концепції test case, test suite, test fixture, test runner. Методи setUp та tearDown. Аналіз результатів тестування.» 
Практичне заняття 8 «Створення програм для обчислення арифметичних виразів з наявністю методів. Побудова unit-тестів для перевірки працездатності методів.»

Оцінювання результатів навчання

Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.

Модуль 1
Оцінка за виконання лабораторних робіт – максимально 15 балів за модуль.
Оцінка за виконання завдання на  практичних заняттях – максимально 5 балів за модуль. 
Модульна контрольна робота 1 – за бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання). 
Модуль 2
Оцінка за виконання лабораторних робіт – максимально 16 балів за модуль.
Оцінка за виконання завдання на  практичних заняттях – максимально 4 балів за модуль. 
Модульна контрольна робота 2 – за бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання).  

Посилання на рекомендовані джерела
1. Васильєв, О. Програмування мовою Python / О. Васильєв. – Київ: Навчальна книга – Богдан, 2019. – 504 с.
2. Naomi Ceder. The Quick Python Book 3rd Edition / Naomi Ceder. – NY: Manning Publications Co., 2018. – 432 p.
3. Kenneth A. Lambert. Fundamentals of Python: first programs / Kenneth A. Lambert. – NY: Cengage Learning, 2018. – 476 p.
4. Devpractice Team. Python. Візуалізація даних. Matplotlib. Seaborn. Mayavi / Devpractice Team, М. Абдурахманов. 2020. – 412 с.

2022 рік