Технології програмування, частина 1

Спеціальність: Кібербезпека
Код дисципліни: 6.125.00.O.006
Кількість кредитів: 7.00
Кафедра: Захист інформації
Лектор: Доц., к.т.н. Совин Ярослав Романович
Семестр: 1 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою викладання дисципліни є теоретичне і практичне вивчення сучасної високоефективної мови програмування Python, оволодіння принципами побудови, написання і відладки програм як необхідної основи для розробки та використання спеціалізованих систем у галузі кібербезпеки. Студенти отримають ґрунтовну теоретичну і практичну базу із застосування мови програмування Python для вирішення широкого кола задач захисту інформації у кіберфізичних системах.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: Фахові компетентності: ФК 3. Здатність до використання програмних та програмно-апаратних комплексів засобів захисту інформації в інформаційно-телекомунікаційних (автоматизованих) системах. ФК 5. Здатність забезпечувати захист інформації, що обробляється в інформаційно-телекомунікаційних (автоматизованих) системах з метою реалізації встановленої політики інформаційної та/або кібербезпеки. Фахові компетентності спеціальності: ФКС 2.4. Здатність до використання засобів захисту програмного забезпечення від несанкціонованого копіювання, впливу комп’ютерних вірусів тощо. ФКС 2.7. Уміння організувати моніторинг стану інформаційної системи та аналізувати порушення інформаційної безпеки. ФКС 2.8. Здатність виконувати спеціальні дослідження технічних і програмно-апаратних засобів захисту обробки інформації в інформаційно-телекомунікаційних системах. ФКС 4.7. Уміння розробляти програмне забезпечення із виявлення шкідливих програм і кібератак. ФКС 4.8. Здатність забезпечувати захист інформації, що обробляється в системах кібербезпеки, здійснювати адміністрування таких систем та їх експлуатацію. ФКС 4.9. Здатність виконувати моніторинг даних, комп’ютерних зловживань та аномалій.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: а) знати: 1. Типи і структури даних, що використовуються в мові Python, технології обробки, аналізу та інтерпретації даних різної природи. 2. Інструкції та конструкції мови програмування Python. 3. Можливості мови для вирішення обчислювальних і наукових задач в сфері кібербезпеки. 4. Технології та інструменти створення програмних рішень на мові Python. б) вміти: 1. Вибирати структури даних та алгоритми, що дають змогу вирішити поставлену задачу оптимальним способом. 2. Створювати власні функції та класи. 3. Створювати додатки з графічним інтерфейсом. 4. Використовувати бібліотеки для вирішення поставленої задачі. У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання: Результати навчання: ЗН 9. Впроваджувати процеси, що базуються на національних та міжнародних стандартах, ідентифікації, аналізу та реагування на інциденти інформаційної та/або кібербезпеки Методи навчання і викладання: Лекційні заняття – інформаційно-рецептивний метод. Контрольна робота та лабораторні роботи – репродуктивний метод, евристичний метод, Самостійна робота – репродуктивний метод, дослідницький метод. Методи оцінювання рівня досягнення результатів навчання: Оцінка активності студента у процесі занять; перевірка виконання лабораторних робіт; перевірка виконання контрольної роботи. Результати навчання: ЗН 13. Знання сучасних досягнень інноваційних технологій в галузі інформаційних технологій, кібербезпеки та управління Методи навчання і викладання: Лекційні заняття – інформаційно-рецептивний метод. Контрольна робота та лабораторні роботи – репродуктивний метод, евристичний метод. Самостійна робота – репродуктивний метод, дослідницький метод. Методи оцінювання рівня досягнення результатів навчання: Поточна перевірка в процесі засвоєння кожної теми, що вивчається; перевірка виконання лабораторних робіт; перевірка виконання контрольної роботи, опитування щодо засвоєння знань.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: • Технології програмування, ч.1 Наступні навчальні дисципліни: • Безпека інфраструктури комп’ютерних мереж
Короткий зміст навчальної програми: Дисципліна присвячена вивченню базових принципів програмування мовою Python та супутніх інструментів розробки. Детально вивчаються основні елементи мови програмування Python: типи даних, інструкції, функції, модулі; об’єктно-орієнтоване програмування і розробка прикладних додатків. Дисципліна охоплює теоретичний і практичний матеріал, що у сукупності дає змогу студентам ефективно застосовувати мову Python для вирішення широкого класу задач кібербезпеки.
Опис: Загальні відомості про мову програмування Python. Компіляція, інтерпретація, змішаний підхід. Особливості мови програмування Python. Мова програмування Python та її місце серед інших мов. Структура програми мовою Python. Змінні. Прості вбудовані типи даних, операції та функції мови Python. Змінні. Прості вбудовані типи даних та операції мови Python. Оператори для простих типів даних. Вбудовані функції для числових типів даних. Бібліотеки для числових типів даних. Рядки і двійкові дані. Типи рядків. Створення рядків. Спеціальні символи. Операції над рядками. Форматування рядків. Функції і методи для роботи з рядками. Умовні оператори і цикли. Умовний оператор if … else. Цикл for. Функції range() та enumerate(). Цикл while. Оператори continue та break. Списки. Створення списку. Операції над списками. Багатомірні списки. Перебір елементів списку. Генератори списків і вирази-генератори. Функції та методи для роботи зі списками. Кортежі, множини і словники. Кортежі. Множини. Словники. Функції. Визначення функції та її виклик. Необов'язкові параметри і зіставлення по ключам. Змінна кількість параметрів у функції. Анонімні (лямбда) функції. Функції-генератори. Декоратори функцій. Вкладені функції. Глобальні і локальні змінні. Рекурсія та анотації функцій. Модулі та пакети. Обробка винятків. Робота з файлами. Модулі та пакети: інструкції import, from, шляхи пошуку модулів, пакети. Обробка винятків: інструкція try ... except ... else ... finally, класи вбудованих винятків, користувацькі винятки. Методи і функції для роботи з файлами та каталогами. Об’єктно-орієнтоване програмування. Визначення класу і створення екземпляра класу. Методи __init__() і __del__(). Успадкування і множинне успадкування. Домішки і їх використання. Спеціальні методи. Перевантаження операторів. Статичні методи і методи класу. Абстрактні методи. Обмеження доступу всередині класу. Властивості класу. Декоратори класів. Спеціалізовані типи даних і структури Python. Спеціалізовані словники та кортежі. Масивоподібні структури даних. Структури та черги. Ітератори. Паралельні обчислення. Мультипотоковість та мультипроцесорність в Python. Основні підходи. Модуль threading. Модуль multiprocessing. Регулярні вирази. Пошук зразків тексту. Багаторазові збіги. Синтаксис шаблонів регулярних виразів. Numpy. Базові поняття та операції. Векторизовані операції та функції. Функції. Бібліотека Pandas. Призначення та можливості Pandas. Структури даних. Базові функції.
Методи та критерії оцінювання: 5. Поточний контроль, який складається з виконання лабораторних робіт та захисту звітів, виконання та захисту контрольної роботи, усне опитування.
Критерії оцінювання результатів навчання: Поточний контроль (40 балів): Лабораторні заняття – 40 балів. Екзаменаційний контроль (60 балів): письмова компонента - 55 балів усна компонента - 5 балів
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 7. Навчально-методичне забезпечення 1. Совин Я. Р. Програмування скриптовими мовами.: Конспект лекцій / Я. Р. Совин. – Львів:, 2021. – 308 с. 2. Електронний навчально-методичний комплекс у ВНС: https://vns.lpnu.ua/course/view.php?id=10040 3. Інсталяція інтерпретатора Python та знайомство з інтегрованим середовищем розробки IDLE: Методичні вказівки до лабораторної роботи № 1 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 7 с. 4. Робота з логічними та числовими типами даних: Методичні вказівки до лабораторної роботи № 2 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 20 с. 5. Робота з рядками: Методичні вказівки до лабораторної роботи № 3 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 23 с. 6. Написання програм з умовними виразами та циклами: Методичні вказівки до лабораторної роботи № 4 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 23 с. 7. Програмування з використанням списків: Методичні вказівки до лабораторної роботи № 5 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 21 с. 8. Програмування з використанням кортежів, словників та множин: Методичні вказівки до лабораторної роботи № 6 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 25 с. 9. Створення та використання функцій: Методичні вказівки до лабораторної роботи № 7 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 32 с. 10. Робота з файлами та обробка винятків: Методичні вказівки до лабораторної роботи № 8 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 30 с. 11. Об’єктно-орієнтоване програмування: Методичні вказівки до лабораторної роботи № 9 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 29 с. 12. Розробка графічного інтерфейсу користувача засобами пакету tkinter: Методичні вказівки до лабораторної роботи № 10 з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 43 с. 13. Розробка програмних засобів кібербезпеки: Завдання та методичні вказівки до контрольних робіт з курсу «Програмування скриптовими мовами» для студентів спеціальності «Кібербезпека» / Укл. Я. Р. Совин – Львiв: Національний університет "Львівська політехніка", 2021. – 19 с. 8. Рекомендована література Базова 1. Learn to Program with Python 3. A Step-by-Step Guide to Programming, Second Edition / Irv Kalb. – Mountain View: Apress, 2018. – 361 р. 2. The Python Workbook. A Brief Introduction with Exercises and Solutions, Second Edition / Ben Stephenson. – Cham: Springer, 2014. – 218 р. 3. Python Pocket Reference, Fifth Edition / Mark Lutz. – Sebastopol: O’Reilly Media, Inc., 2014. – 264 р. 4. Learn Python 3 the Hard Way / Zed A. Shaw. – Boston: Addison-Wesley, 2017. – 321 р. 5. A Python Book: Beginning Python, Advanced Python, and Python Exercises / Dave Kuhlman. – Boston: MIT, 2013. – 278 р. Допоміжна 1. The Python 3 Standard Library by Example / Doug Hellmann. – Boston: Addison-Wesley, 2018. – 5261 р. 2. Pro Python 3. Features and Tools for Professional Development, Third Edition / J. Burton Browning, Marty Alchin. – Mountain View: Apress, 2019. – 468 р. 3. Data Structures and Algorithmic Thinking With Python / Narasimha Karumanchi. – Bombay: CareerMonk, 2016. – 471 р. 4. Mastering Python for Data Science / Samir Madhavan. – Birmingham: Packt Publishing, 2015. – 294 р. 5. Mastering Numerical Computing with NumPy / Umit Mert Cakmak, Mert Cuhadaroglu. – Birmingham: Packt Publishing, 2018. – 276 р. 6. High Performance Python / Micha Gorelick, Ian Ozsvald. – Sebastopol: O’Reilly Media, Inc., 2014. – 370 р. 9. Інформаційні ресурси 1. https://www.python.org/ 2. Совин Я.Р. Програмування скриптовими мовами [Електронний ресурс] / Режим доступу: https://vns.lpnu.ua/course/view.php?id=10040
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).

Технології програмування, частина 1

Спеціальність: Кібербезпека
Код дисципліни: 6.125.00.O.005
Кількість кредитів: 7.00
Кафедра: Безпека інформаційних технологій
Семестр: 1 семестр
Форма навчання: денна