Програмування з використанням Python
Анотація навчальної дисципліни
Мета вивчення дисципліни
Надання знань з теоретичних основ розробки прикладного програмного забезпечення мовою високого рівня 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 с.