Спеціалізовані мови програмування

Спеціальність: Розподілені інформаційні системи та технології
Код дисципліни: 6.126.03.O.016
Кількість кредитів: 5.00
Кафедра: Інформаційні системи та мережі
Лектор: к.е.н., Копитко Сергій
Семестр: 3 семестр
Форма навчання: денна
Мета вивчення дисципліни: Забезпечити студентам здобуття поглиблених теоретичних та практичних знань, умінь та розуміння принципів і методів практичного аналізу даних для формування навичок користуватися швидкими та високопродуктивними структурами даних, які суттєво спрощують попередню обробку та подальший аналіз інформації. Навики підготовки даних різної якості, які включають систематизацію інформації з різних джерел, їх інтеграцію, консолідацію та очищення для подальшого аналітичного та операційного використання сприятимуть успішному виконанню професійних обов’язків за спеціальністю «Інформаційні системи та технології» та підготовки студентів для подальшого навчання.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: Інтегральна компетентність: Здатність розв’язувати складні спеціалізовані задачі та практичні проблеми в області інформаційних систем та технологій, або в процесі навчання, що характеризуються комплексністю та невизначеністю умов, які потребують застосування теорій та методів інформаційних технологій. Загальні компетентності: КЗ 1. Здатність до абстрактного мислення, аналізу та синтезу. КЗ 2. Здатність застосовувати знання у практичних ситуаціях. КЗ 3. Здатність до розуміння предметної області та професійної діяльності. КЗ 5. Здатність вчитися і оволодівати сучасними знаннями. КЗ 6. Здатність до пошуку, оброблення та узагальнення інформації з різних джерел. КЗ 8. Здатність оцінювати та забезпечувати якість виконуваних робіт. КЗ 10. Здатність зберігати та примножувати моральні, культурні, наукові цінності і досягнення суспільства на основі розуміння історії та закономірностей розвитку предметної області, її місця у загальній системі знань про природу і суспільство та у розвитку суспільства, техніки і технологій, використовувати різні види та форми рухової активності для активного відпочинку та ведення здорового способу життя. Спеціальні фахові компетентності: КС 11. Здатність до аналізу, синтезу і оптимізації інформаційних систем та технологій з використанням математичних моделей і методів. КС13. Здатність проводити обчислювальні експерименти, порівнювати результати експериментальних даних і отриманих рішень. Фахові компетентності професійного спрямування: 2.1. Здатність здійснювати дослідження, видобування та аналіз даних з різноманітних інформаційних ресурсів на основі математичних моделей і методів науки про дані для процесів підтримки ухвалення рішень. 2.6. Здатність бути лідером розроблення та виконання проекту з розроблення засобів і технологій аналітики даних, застосовувати математичні моделі, технології і алгоритми дослідження, видобування, аналізу та опрацювання Великих даних та розподілених інформаційних ресурсів.
Результати навчання: Внаслідок вивчення навчальної дисципліни студент повинен бути здатним: 1) формулювати та розв’язувати задачі в області інформаційних систем та технологій; 2) реалізовувати алгоритми на мові Python з використанням можливостей бібліотеки pandas; 3) виконувати програми в режимі інтерпретатора IPython в середовищі JupyterLab; 4) Застосовувати різноманітні методи очистки та трансформації даних для можливості подальшого їх аналізу. 5) Застосовувати різні підходи для інтерполяції пропущених значень; 6) Здійснювати первинний статистичний аналіз та візуалізацію даних; 7) Здійснювати групування та фільтрацію даних; 8) Застосовувати різноманітні методи аналізу та трансформації часових рядів.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Програмування і командна робота; Об'єктно-орієнтоване програмування; Прикладне програмування; Методи штучного інтелекту; Аналітичні сховища даних; Технології аналізу даних.
Короткий зміст навчальної програми: Вивчення теоретичних основ і практичних засобів огранізації підготовки даних для подальшого аналітичного та операційного використання за допомогою сучасних та спеціалізованих мов програмування. Формування теоретичної бази знань студентів, знайомство з ефективними та високопродуктивними структурами даних, які спрощують попередню обробку та аналіз інформації. Фокусування на практичних навичках роботи з різноманітними інструментами аналізу, очистки та трансформації даних відповідно до поставлених завдань.
Опис: 1. Базові поняття та середовище програмування Python. Загальні поняття. Дистрибутив Anaconda. Основи роботи в середовищі Jupyter Lab. Базовий синтаксис мови розмітки даних Markdown. Прості типи даних. Математичні та логічні оператори. Змінні. Функції та модулі. 2. Класи та основні об’єкти в Python. Поняття класу та екземпляра класу. Атрибути та методи класів. Робота з класами та екземплярами класів. Списки. Кортежі. Словники. Множини. Основні методи для маніпуляції та трансформації даних в Python. 3. Подання і аналіз одновимірних даних. Базові об’єкти бібліотеки NumPy. Робота з масивами NumPy. Основні атрибути та методи класу Series бібліотеки Pandas. Створення об’єктів Series на основі списків, кортежів, словників та множин. Імпорт csv файлів. Вирівнювання даних по мітках індексу. Сортування об’єктів Series. Математичні операції над об’єктами Series. 4. Подання і аналіз табличних, багатовимірних, текстових та категоріальних даних. Створення об’єктів DataFrame на основі ассоціативних масивів та масивів NumPy. Спільні риси та відмінності в атрибутах та методах класів Series та DataFrame. Індексація, фільтрація та сортування об’єктів DataFrame. Базові підходи та методи впорядкування даних: опрацювання дублікатів та пропущених значеннь. Робота з текстовими даними. Індексація даних. Категоріальні дані. 5. Подання і аналіз мультиіндексних об’єктів. Клас MultiIndex бібліотеки Pandas. Опрацювання об’єктів DataFrame з мультиіндексами. Вибірка та сортування даних за допомогою мультиіндексів. Основні операції над індексом. 6. Об’єднання, групування, конкатенація та зміна форми даних. Збереження даних в широких та вузьких форматах. Формування зведеної таблиці. Метод pivot. Декомпозиція агрегованого набору даних. Створення контейнера для групування даних. Атрибути та методи об’єкта GroupBy. Операції агрегування даних. Об’єднання та конкатенація наборів даних. 7. Статистичні методи первинного аналізу даних та їх візуалізація. Виконання статистичних операцій над об’єктами бібліотеки Pandas. Аналіз мір центральної тенденції та варіації для визначення характеристик роподілу даних. Візуалізація даних за допомогою бібліотек Pandas та Matplotlib. Основні підходи роботи з аисметричними, бімодальними та нормально розподіленими вхідними даними. Візуалізація розподілу даних за допомогою гістограм. Візуалізація розподілу категоріальних даних за допомогою ящикових діаграм з вусами. Пошук взаємозв’язку у вхідних даних за допомогою кореляційного аналізу та діаграм розсіювання. 8. Аналіз часових рядів. Вступ до часових рядів. Створення часової мітки. Представлення часового інтервалу. Подання часових інтервалів зі зміщеними датами. Основні операції з часовими рядами.
Методи та критерії оцінювання: • Поточний контроль (45%): письмові звіти з лабораторних робіт, усне опитування, тестування. • Підсумковий контроль (55%, екзаменаційний контроль): тестування (50%), усна компонента (5%)
Критерії оцінювання результатів навчання: Критерії оцінювання знань та вмінь студента за результатами вивчення навчального матеріалу дисципліни у 100-бальній шкалі: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–80 балів – («дуже добре») виставляється за знання навчального матеріалу компонента вище від середнього рівня, включаючи розрахунки, аргументовані відповіді на поставлені запитання (можлива невелика кількість неточностей), вміння застосовувати теоретичні положення під час розв’язання практичних задач; 79–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 –61 бал – («посередньо») виставляється за посередні знання навчального матеріалу компонента, мало аргументовані відповіді, слабке застосування теоретичних положень під час розв’язання практичних задач; 60–50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («незадовільно» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Рекомендована література Базова 1. Маттес Е., Белова О. Пришвидшений курс Python. Практичний, проектно-орієнтований вступ до програмування. – Львів: Видавництво Старого Лева, 2023. – 600 с. 2. Paskhaver, Boris. Pandas in Action. [edition unavailable]. Manning Publications, – 2023. – 511p. 3. Michael Heydt. Learning pandas. [second edition]. High-performance data manipulation and analysis in Python. Published by Packt Publishing Ltd. – 2019. – 682 p. Допоміжна 1. Daniel Y. Chen. Pandas for Everyone: Python Data Analysis, 2nd edition. Published by Addison-Wesley Professional. – 2023. 2. Stefanie Molin. Hands-On Data Analysis with Pandas - Second Edition: A Python data science handbook for data collection, wrangling, analysis, and visualization 2nd ed. Edition. Published by Packt Publishing Ltd. Інформаційні ресурси 1. Python Підручник Pandas: DataFrame, діапазон дат, використання Pandas. [Електронний ресурс]. – Режим доступу : https://www.guru99.com/uk/python-pandas-tutorial.html 2. Jupyter Lab Installation. [Електронний ресурс] // Офіційний сайт Jupyter Lab. – Режим доступу : https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html 3. Markdown Guide. [Електронний ресурс] – Режим доступу : https://www.markdownguide.org/basic-syntax/ 4. Python – Tutorial [Електронний ресурс] // Офіційний сайт Tutorialspoint. – Режим доступу : https://www.tutorialspoint.com/python/index.htm. 5. Getting Started with Python Programming [Електронний ресурс] // Офіційний сайт DataFlair. – Режим доступу : https://data-flair.training/blogs/python-tutorials-home/. 6. Data Visualization with Python. [Електронний ресурс] – Режим доступу : https://www.geeksforgeeks.org/data-visualization-with-python/ 7. 6. Data Visualization Guide. [Електронний ресурс] – Режим доступу : https://www.simplilearn.com/tutorials/python-tutorial/data-visualization-in-python 8. Tutorial: cleaning & tidying data in pandas. [Електронний ресурс] – Режим доступу : https://deepnote.com/blog/cleaning-and-tidying-data-in-pandas 9. A Guide to Time Series Analysis in Python. [Електронний ресурс] – Режим доступу : https://builtin.com/data-science/time-series-python
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).