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

Спеціальність: Кібербезпека
Код дисципліни: 6.125.00.O.017
Кількість кредитів: 7.00
Кафедра: Захист інформації
Лектор: к.т.н., доцент Отенко Віктор Іванович
Семестр: 2 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою вивчення навчальної дисциплiни є надання студентам грунтовних теоретичних знань та практичних умінь і навичок розробки программного забезпечення з використанням технологій о’бєктно-орієнтованого програмування, оволодіння студентами алгоритмічною мовою програмування C# та відповідними iнструментальними пакетами, як основи для створення програмного забезпечення в галузі інформаційних технологій.
Завдання: Загальні компетентності: 1. ЗК 1. Здатність застосовувати знання у практичних ситуаціях; 2. ЗК 2. Знання та розуміння предметної області та розуміння професії; 3. ЗК 4. Вміння виявляти, ставити та вирішувати проблеми за професійним спрямуванням; 4. ЗК 5. Здатність до пошуку, оброблення та аналізу інформації. Фахові компетентності: 1. ФК 2. Здатність до використання інформаційно-комунікаційних технологій, сучасних методів і моделей інформаційної безпеки та/або кібербезпеки; 2. ФК 3. Здатність до використання програмних та програмно-апаратних комплексів засобів захисту інформації в інформаційно-телекомунікаційних (автоматизованих) системах.
Результати навчання: 1. ЗН 13. Знання сучасних досягнень інноваційних технологій в галузі інформаційних технологій, кібербезпеки та управління; 2. ЗН 14. Знання і розуміння наукових принци¬пів, що лежать в основі кібербезпеки та інформаційних технологій; 3. ЗН 15. Володіння методами загальнонаукового аналізу у сфері інформаційних технологій та інформаційної безпеки; 4. ЗН 18. Здатність продемонструвати знання сучасного стану справ та новітніх технологій в галузі інформаційних технологій та інформаційної безпеки.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Технології програмування, частина 1.
Короткий зміст навчальної програми: Подаються відомості про парадигми о’бєктно-орієнтованого програмування, алгоритмічну мову C#, її особливості, області застосування. Розглядаються питання розробки програмного забезпечення мовою C# та його відлагодження.
Опис: Історія створення мови C#. Генеалогічне дерево мови C#. Платформа Microsoft .NET Framework. Парадигми об‘єктно-орієнтованого програмування: інкапсуляція, поліморфізм, успадкування. Елементарні типи даних та літерали мови C#: позначення типів даних; цілочисельні літерали та літерали з плаваючою крапкою; символьні та рядкові літерали; логічні літерали; літерал null. Базові вирази та оператори мови C#: оператор присвоєння; ініціалізація змінних та переліків; перевірка результату ініціалізації; математичні, унарні, складені, порозрядні, логічні оператори; оператори відношення; пріоритети операторів. Оператори управління: умовний оператор; оператор вибору; ітераційні оператори; оператори безумовного переходу; пустий оператор; складений оператор. Об‘єктно-орієнтоване програмування: класи, об‘єкти, поля та методи. Об‘єктно-орієнтоване програмування: успадкування; заборона успадкування; маскування методів базового класу; модифікатори доступу. Об‘єктно-орієнтоване програмування: модифікатори доступу. Об‘єктно-орієнтоване програмування: конструктор та деструктор; константні поля, поля readonly. Об‘єктно-орієнтоване програмування: статичні члени класу. Об‘єктно-орієнтоване програмування: передача параметрів за посиланням; Об‘єктно-орієнтоване програмування: поліморфізм; раннє та пізнє зв‘язування. Об‘єктно-орієнтоване програмування: абстрактні класи. Об‘єктно-орієнтоване програмування: перевантаження операторів. Перетворення типів об‘єктів: неявне та явне перетворення числових типів; перевірка перетворення числових типів; перетворення типів і класи; нестандартне перетворення. Властивості об‘єктів: оголошення властивості; успадкування властивості; статичні властивості. Масиви та індексатори: типи масивів; масиви і цикли; індексатори. Колекції та словники. Інтерфейси: застосування інтерфейсів; перевірка реалізації інтерфейсу; комбіновані інтерфейси; інтерфейси та успадкування класів; властивості та індексатори в інтерфейсах. Винятки та їх обробка: класичні способи обробки помилок; застосування механізму винятків; стандартні класи винятків; створення винятків; конструктори класу Exception; повторне оброблення винятку; блок finally. Делегати та події: використання делегатів; оброблення подій. Узагальнені типи. Файли та потоки.
Методи та критерії оцінювання: Методи оцінювання. 1) Поточний контроль: • попереднє виявлення рівня знань студентів перед початком занять; • поточна перевірка в процесі засвоєння кожної теми, що вивчається; • оцінка активності студента у процесі лекційних занять; • оцінка активності студента у процесі практичних занять; • перевірка виконання лабораторних робіт; • перевірка виконання практичних робіт; • усне опитування засвоєння знань, набутих у процесі виконання лабораторних робіт. 2) Підсумковий (екзаменаційний) контроль здійснюється за результатами тестового контролю та усного опитування.
Критерії оцінювання результатів навчання: Критерії оцінювання: • поточний контроль - 30%; • екзаменаційний контроль - 70% (письмова компонента - 60%, усна компонента - 10%).
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Рекомендована література Базова: 1. Ian Griffiths. Programming C# 10. - O'Reilly Media, Inc., 2022. 2. Andrew Troelsen , Phil Japikse. Pro C# 8 with .NET Core 3: Foundational Principles and Practices in Programming. - Apress, 2020. 3. Jon Skeet. C# in Depth: Fourth Edition. - ? Manning, 2019. 4. Joseph Albahari, Ben Albahari. C# 7.0 In a Nutshell. - O’Reilly Media, Inc., 2018. 5. Ben Watson. C# 4.0 How-To. – Pearson Education. Inc., 2010. Допоміжна: 1. Joseph Albahari, Ben Albahari. C# 7.0 Pocket Refrence: Instant Help for C# 7.0 Programmers. - O’Reilly Media, Inc., 2017. 2. Dustin Boswell, Trevor Foucher. The Art of Readable Code. - O’Reilly Media, Inc., 2011. 3. Charles Petzold. Programming Microsoft® Windows® with C#. - Microsoft Press, 2002. Навчально-методичне забезпечення 1. С#. Основні принципи об’єктно-орієнтованого програмування. Класи, члени класу, екземпляри класу. Розробка консольних застосувань: інструкція до лабораторної роботи №5 з курсів «Технології програмування», «Алгоритмічні мови і програмування, част.2» та «Технології програмування, част.2» для студентів базових напрямів 6.170101, 6.170102, 6.170103. / Укл.: В.І. Отенко, А.І. Партика, Я.В. Решетар - Львів: НУЛП, 2015.- 16 с. 2. С#. Успадкування. Ієрархія класів. Побудова ієрархії класів: інструкція до лабораторної роботи №6 з курсів «Технології програмування», «Алгоритмічні мови і програмування, част.2» та «Технології програмування, част.2» для студентів базових напрямів 6.170101, 6.170102, 6.170103. / Укл.: В.І. Отенко, А.І. Партика, Я.В. Решетар - Львів: НУЛП, 2015.- 15 с. 3. С#. Масиви. Робота з масивами: інструкція до лабораторної роботи №7 з курсів «Технології програмування», «Алгоритмічні мови і програмування, част.2» та «Технології програмування, част.2» для студентів базових напрямів 6.170101, 6.170102, 6.170103. / Укл.: В.І. Отенко, А.І. Партика, Я.В. Решетар - Львів: НУЛП, 2015.- 16 с. 4. С#. Розробка застосувань Windows Forms: інструкція до лабораторної роботи №8 з курсів «Технології програмування», «Алгоритмічні мови і програмування, част.2» та «Технології програмування, част.2» для студентів базових напрямів 6.170101, 6.170102, 6.170103. / Укл.: В.І. Отенко, А.І. Партика, Я.В. Решетар - Львів: НУЛП, 2015.- 16 с. Інформаційні ресурси 1. http://vns.lp.edu.ua 2. https://msdn.microsoft.com/uk-ua/
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).

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

Спеціальність: Кібербезпека
Код дисципліни: 6.125.00.O.016
Кількість кредитів: 7.00
Кафедра: Безпека інформаційних технологій
Лектор: професор Мороз Леонід Васильович, професор Мичуда Леся Зиновіївна
Семестр: 2 семестр
Форма навчання: денна
Результати навчання: Метою вивчення навчальної дисциплiни є надання студентам грунтовних теоретичних знань та практичних умінь і навичок розробки программного забезпечення з використанням технологій структурного та о’бєктно-орієнтованого програмування, оволодіння студентами алгоритмічними мовою програмування Python та відповідними iнструментальними пакетами, як основи для створення програмного забезпечення в галузі інформаційних технологій. Внаслідок вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати: 1. Здатність продемонструвати знання і розуміння основних принципів розробки алгоритмів розв’язання задач; 2. Застосовувати знання і розуміння для побудови алгоритмів розв’язання задач; 3. Здатність продемонструвати знання і розуміння парадигм структурного програмування та алгоритмічної мові Python; 4. Здатність продемонструвати знання і розуміння парадигм об’єктно-орієнтованого програмування та алгоритмічної мові Python; 5. Застосовувати знання і розуміння для розробки та відлагодження програмного забезпечення реалізованого алгоритмічною мовою Python; 6. Застосовувати знання і розуміння для роботи з iнструментальними пакетами розробки програмного забезпечення алгоритмічними мовами Python. Вивчення навчальної дисципліни передбачає формування та розвиток у студентів компетентностей: ЗК 1. Здатність застосовувати знання у практичних ситуаціях. ЗК 2. Знання та розуміння предметної області та розуміння професії. ЗК 4. Вміння виявляти, ставити та вирішувати проблеми за професійним спрямуванням. ЗК 5. Здатність до пошуку, оброблення та аналізу інформації. ФК 2. Здатність до використання інформаційно-комунікаційних технологій, сучасних методів і моделей інформаційної безпеки та/або кібербезпеки. ФК 3. Здатність до використання програмних та програмно-апаратних комплексів засобів захисту інформації в інформаційно-телекомунікаційних (автоматизованих) системах. Результати навчання даної дисципліни деталізують такі програмні результати навчання: ЗН 13. Знання сучасних досягнень інноваційних технологій в галузі інформаційних технологій, кібербезпеки та управління. ЗН 14. Знання і розуміння наукових принципів, що лежать в основі кібербезпеки та інформаційних технологій. ЗН 15. Володіння методами загальнонаукового аналізу у сфері інформаційних технологій та інформаційної безпеки. ЗН 18. Здатність продемонструвати знання сучасного стану справ та новітніх технологій в галузі інформаційних технологій та інформаційної безпеки.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Математика - за програмою середньої школи Iнформатика - за програмою середньої школи
Короткий зміст навчальної програми: Вступ. Історія створення. Застосування мови Python. Завантаження, встановлення та початок роботи з Python. Парадигми об‘єктно-орієнтованого програмування: інкапсуляція, поліморфізм, успадкування. Прості типи даних. Об`єкти та змінні. Числа. Рядки. Введення даних з клавіатури. Списки та кортежі. Словники та множини. Складені структури даних. Структура коду. Перевірка умови. Вказівка розгалуження. Вказівка повторення. Включення (скорочення синтаксису) Генератори. Функції. Обробка помилок. Модулі та пакети. Простір імен. Імпорт модулів. Стандартна бібліотека. Пакети. Віртуальні середовища. Файли. Відкриття текстового файла. Запис даних до текстових файлів. Зчитування даних з текстових файлів. Структуровані текстові файли. Файли бази даних. Система. Файли та каталоги. Дата та час. Модуль locale Об`єкти. Класи. Створення класів. Створення екземпляру класу. Доступ до атрибутів. Робота з класами та екземплярами. Наслідування. Перевизначення методу. Екземпляри як атрибути. Робота з даними. Текстові дані. Регулярні вирази. Бінарні дані. Важливі оболонки для опрацювання й аналізу даних. Python для роботи в Інтернеті. Створення веб-клієнта. Модуль запитів Request та його методи. Бібліотека BeautySoup та Скрапінг. Парсинг. Використання API. Веб-додатки на боці сервера. Графічні можливості Python Бібліотека Tkinter для Python3. Призначення, можливості, приклади використання. Створення інтерфейсу користувача. Створення анімації.
Методи та критерії оцінювання: поточний контроль 30% = опитування на практичних заняттях – 5% та оцінка звітів з лабораторних робіт – 25% підсумковий контроль 70% = екзамен = письмова компонента 60% й усна компонента 10%
Рекомендована література: Костюченко А.О. Основи програмування мовою Python: навчальний посібник. Ч.: ФОП Баликіна С.М., 2020. 180 с. Основи програмування. Python. Частина 1 [Електронний ресурс]: підручник для студ. спеціальності 122 "Комп’ютерні науки", спеціалізації "Інформаційні технології в біології та медицині" / А. В. Яковенко ; КПІ ім. Ігоря Сікорського. – Електронні текстові данні (1 файл: 1,59 Мбайт). – Київ : КПІ ім. Ігоря Сікорського, 2018. – 195 с. Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011. – 1280 с., ил. ISBN 978-5-93286-159-2 Прохоренок, Н. А. П84 Python 3. Самое необходимое / Н. А. Прохоренок, В. А. Дронов. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2019. — 608 с.: ил. — (Самое необходимое) ISBN 978-5-9775-3994-4 Нуньес-Иглесиас Х., Уолт ван дер Ш., Дэшноу Х. Н87 Элегантный SciPy / пер. с анг. А. В. Логунова. – М.: ДМК Пресс, 2018. – 266 с.: ил. ISBN 978-5-97060-600-1 Електронний навчально-методичний комплекс дисципліни https://vns.lpnu.ua/course/view.php?id=9032
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).