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

Спеціальність: Кібербезпека
Код дисципліни: 6.125.00.O.006
Кількість кредитів: 8.00
Кафедра: Захист інформації
Лектор: к.т.н., доцент Отенко Віктор Іванович
Семестр: 1 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою вивчення навчальної дисциплiни є надання студентам грунтовних теоретичних знань та практичних умінь і навичок розробки программного забезпечення з використанням технологій структурного програмування, оволодіння студентами алгоритмічною мовою програмування C та відповідними iнструментальними пакетами, як основи для створення програмного забезпечення в галузі інформаційних технологій.
Завдання: Загальні компетентності: 1. ЗК 1. Здатність застосовувати знання у практичних ситуаціях; 2. ЗК 2. Знання та розуміння предметної області та розуміння професії; 3. ЗК 4. Вміння виявляти, ставити та вирішувати проблеми за професійним спрямуванням; 4. ЗК 5. Здатність до пошуку, оброблення та аналізу інформації. Фахові компетентності: 1. ФК 2. Здатність до використання інформаційно-комунікаційних технологій, сучасних методів і моделей інформаційної безпеки та/або кібербезпеки; 2. ФК 3. Здатність до використання програмних та програмно-апаратних комплексів засобів захисту інформації в інформаційно-телекомунікаційних (автоматизованих) системах.
Результати навчання: 1. ЗН 13. Знання сучасних досягнень інноваційних технологій в галузі інформаційних технологій, кібербезпеки та управління; 2. ЗН 14. Знання і розуміння наукових принци¬пів, що лежать в основі кібербезпеки та інформаційних технологій; 3. ЗН 15. Володіння методами загальнонаукового аналізу у сфері інформаційних технологій та інформаційної безпеки; 4. ЗН 18. Здатність продемонструвати знання сучасного стану справ та новітніх технологій в галузі інформаційних технологій та інформаційної безпеки.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Математика – за програмою середньої школи. • Iнформатика – за програмою середньої школи.
Короткий зміст навчальної програми: Розглядаються основні етапи розв'язку задач на ПК, парадигми імперативного, функційного, процедурного та структурного програмування, питання розробки алгоритмівя. Подаються відомості про алгоритмічну мову C, її особливості, області застосування та існуючі iнструментальні пакети розробки програмного забезпечення. Розглядаються питання розробки програмного забезпечення мовою C та його відлагодження.
Опис: Алгоритми. Парадигми структурного програмування. Історія створення мови C. Характеристика та особливості мови C. Системи позиційного числення. Поняття про логічні операції. Елементи мови C: алфавіт; константи; ідентифікатори, ключові слова, коментарі. Структура програми на мові C: вихідна програма; вихідні файли; компіляція та виконання програми. Структура програми на мові C: поняття про час життя і область дії об'єктів C-програми; поняття про простір імен. Оголошення об'єктів мови C: базові типи даних та області їх значень; синтаксис та правила інтерпретації описувачів. Оголошення об'єктів мови C: оголошення змінних базових та складених типів; оголошення функцій; ініціалізація змінних базових та складених типів; абстрактні імена типів; оголошення typedef. Вирази та операнди: ідентифікатори; константи; символьні рядки; виклики функцій; індексні вирази; вирази вибору елемента; L-вирази; дужкові та константні вирази. Операції мови C: перетворення типів операндів за замовченням; унарні, мультиплікативні, адитивні операції. Операції мови C: операції зсуву та відношення; логічні операції; порозрядні логічні операції; операція послідовного обчислення; умовна операція. Операції мови C: операції присвоєння; пріоритет та порядок виконання операцій; поняття про побічні ефекти; перетворення типів. Оператори мови С: пустий та складений оператори; оператор-вираз; умовний оператор. Оператори мови С: оператори циклу; оператори керування процесом виконання циклу. Оператори мови С: оператор-перемикач; оператор переходу; оператор повернення. Функції мови С: оголошення та визначення функцій. Функції мови С: виклик функцій; функції із змінним числом аргументів; рекурсивні функції; бібліотека стандартних функцій та її використання. Директиви препроцесору та вказівки компілятору: іменовані константи та макровизначення. Директиви препроцесору та вказівки компілятору: директиви #define та #undef. Директиви препроцесору та вказівки компілятору: директиви включення файлів та умовної компіляції; керування процесом компіляції. Робота з текстовими рядками. Робота з файлами. Робота з динамічною пам’яттю.
Методи та критерії оцінювання: Методи оцінювання. 1) Поточний контроль: • попереднє виявлення рівня знань студентів перед початком занять; • поточна перевірка в процесі засвоєння кожної теми, що вивчається; • оцінка активності студента у процесі лекційних занять; • оцінка активності студента у процесі практичних занять; • перевірка виконання лабораторних робіт; • перевірка виконання практичних робіт; • усне опитування засвоєння знань, набутих у процесі виконання лабораторних робіт. 2) Підсумковий (екзаменаційний) контроль здійснюється за результатами тестового контролю та усного опитування. Критерії оцінювання: • поточний контроль - 30%; • екзаменаційний контроль - 70% (письмова компонента - 60%, усна компонента - 10%).
Критерії оцінювання результатів навчання: Лабораторні роботи -25 балів Практичніні роботи -5 балів Екзамен -70 балів
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Прата, С. Язык программирования С. Лекции и упражнения, 6-е изд. : Пер. с англ. - М. : ООО “И.Д. Вильямс”, 2015. 2. Проценко В.С., Чаленко П.Й., Ставровський А.Б. Техніка програмування мовою Сі: Навч. посібник.- К.: Либідь, 1993. 3. Клеменс Б. Язык С в XXI веке / Пер. с англ.- М.: ДМК Пресс, 2015.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 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
Кількість кредитів: 8.00
Кафедра: Безпека інформаційних технологій
Лектор: професор Мороз Леонід Васильович, професор Мичуда Леся Зиновіївна
Семестр: 1 семестр
Форма навчання: денна
Результати навчання: Метою вивчення навчальної дисциплiни є надання студентам грунтовних теоретичних знань та практичних умінь і навичок розробки программного забезпечення з використанням технологій структурного та об’єктно-орієнтованого програмування, оволодіння студентами алгоритмічними мовами програмування C та C# та відповідними iнструментальними пакетами, як основи для створення програмного забезпечення в галузі інформаційних технологій. Внаслідок вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати: 1. Здатність продемонструвати знання і розуміння основних принципів розробки алгоритмів розв’язання задач; 2. Застосовувати знання і розуміння для побудови алгоритмів розв’язання задач; 3. Здатність продемонструвати знання і розуміння парадигм структурного програмування та алгоритмічної мові C; 4. Застосовувати знання і розуміння для розробки та відлагодження програмного забезпечення реалізованого алгоритмічною мовою C; 5. Здатність продемонструвати знання і розуміння парадигм о’бєктно-орієнтованого програмування та алгоритмічної мові C#; 6. Застосовувати знання і розуміння для розробки та відлагодження програмного забезпечення реалізованого алгоритмічною мовою C#; 7. Застосовувати знання і розуміння для роботи з iнструментальними пакетами розробки програмного забезпечення алгоритмічними мовами C та C#. Вивчення навчальної дисципліни передбачає формування та розвиток у студентів компетентностей: ЗК 1. Здатність застосовувати знання у практичних ситуаціях. ЗК 2. Знання та розуміння предметної області та розуміння професії. ЗК 4. Вміння виявляти, ставити та вирішувати проблеми за професійним спрямуванням. ЗК 5. Здатність до пошуку, оброблення та аналізу інформації. ФК 2. Здатність до використання інформаційно-комунікаційних технологій, сучасних методів і моделей інформаційної безпеки та/або кібербезпеки. ФК 3. Здатність до використання програмних та програмно-апаратних комплексів засобів захисту інформації в інформаційно-телекомунікаційних (автоматизованих) системах. Результати навчання даної дисципліни деталізують такі програмні результати навчання: ЗН 13. Знання сучасних досягнень інноваційних технологій в галузі інформаційних технологій, кібербезпеки та управління. ЗН 14. Знання і розуміння наукових принципів, що лежать в основі кібербезпеки та інформаційних технологій. ЗН 15. Володіння методами загальнонаукового аналізу у сфері інформаційних технологій та інформаційної безпеки. ЗН 18. Здатність продемонструвати знання сучасного стану справ та новітніх технологій в галузі інформаційних технологій та інформаційної безпеки.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Математика - за програмою середньої школи Iнформатика - за програмою середньої школи
Короткий зміст навчальної програми: Алгоритми. Парадигми структурного програмування. Історія створення мови C. Характеристика та особливості мови C. Елементи мови C: алфавіт; константи; ідентифікатори, ключові слова, коментарі. Структура програми на мові C: вихідна програма; вихідні файли; виконання програми. Структура програми на мові C: поняття про час життя і область дії об'єктів C-програми; поняття про простір імен. Оголошення об'єктів мови C: базові типи даних та області їх значень; синтаксис та правила інтерпретації описувачів. Оголошення об'єктів мови C: оголошення змінних; оголошення функції; ініціалізація змінних базових та складних типів; абстрактні імена типів; оголошення typedef. Вирази та операнди: ідентифікатори; константи; символьні рядки; виклики функцій; індексні вирази; вирази вибору елемента; L-вирази; дужкові та константні вирази. Операції мови C: перетворення типів операндів за замовченням; унарні, мультиплікативні, адитивні операції. Операції мови C: операції зсуву та відношення; логічні операції; порозрядні логічні операції; операція послідовного обчислення; умовна операція. Операції мови C: операції присвоєння; пріоритет та порядок виконання операцій; поняття про побічні ефекти; перетворення типів. Оператори мови С: пустий та складений оператори; оператор-вираз; умовний оператор. Оператори мови С: оператори циклу; оператори керування процесом виконання циклу. Оператори мови С: оператор-перемикач; оператор переходу; оператор повернення. Функції мови С: оголошення та визначення функцій. Функції мови С: виклик функцій; функції із змінним числом аргументів; рекурсивні функції; бібліотека стандартних функцій та її використання. Директиви препроцесору та вказівки компілятору: іменовані константи та макровизначення. Директиви препроцесору та вказівки компілятору: директиви #define та #undef. Директиви препроцесору та вказівки компілятору: директиви включення файлів та умовної компіляції; керування процесом компіляції.
Методи та критерії оцінювання: поточний контроль 30% = опитування на практичних заняттях – 5% та оцінка звітів з лабораторних робіт – 25% підсумковий контроль 70% = екзамен = письмова компонента 60% й усна компонента 10%
Рекомендована література: Рекомендована література Базова 1. Лингер Р. и др. Теория и практика структурного программирования:Пер с англ.- М.: Мир, 1982. 2. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си. Задачи по языку Си: Пер. с англ.- М.: Финансы и статистика, 1985. 3. Бочков С.О., Субботин Д.М. Язык программирования Си для персонального компьютера.- М.: Радио и связь, 1990. 4. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих: Пер. с англ.- М.: Мир, 1988. 5. Проценко В.С., Чаленко П.Й., Ставровський А.Б. Техніка програмування мовою Сі: Навч. посібник.- К.: Либідь, 1993. 6. Фролов А.В., Фролов Г.В. Язык C#. Самоучитель.- М.: ДИАЛОГ-МИФИ, 2003. 7. Шилдт Г. C# 4.0: полное руководство. / Пер. с англ. - М. : ООО "И.Д. Вильяме", 2011. 8. Гриффитс Д. Изучаем программирование на C. / Пер. с англ.- М.: Эксмо, 2013. 9. Албахари Д, Аблахари Б. С# 6.0. Справочник. Полное описание языка, 6-е изд. - Пер. с англ. - М. : ООО "И.Д. Вильяме", 2016. 10. Троелсен, Эндрю. Язык программирования C# 5.0 и платформа .NET 4.5, 6-е изд. - Пер. с англ. - М. : ООО “И.Д. Вильямс”, 2013. 11. Хейлсберг А., Торгерсен М., Вилтамут С., Голд П. Язык программирования C#. Классика Computers Science. 4-е изд. - СПб.: Питер, 2012. Допоміжна 1. Клеменс Б. Язык С в XXI веке / Пер. с англ.- М.: ДМК Пресс, 2015. 2. Прата, С. Язык программирования С. Лекции и упражнения, 6-е изд. : Пер. с англ. - М. : ООО “И.Д. Вильямс”, 2015. 3. МакГрат М. Программирование на С для начинающих. / Пер. с англ.- М.: Эксмо, 2016. 4. Бери Р., Микинз Б. Язык Си: введение для программистов: Пер. с англ.- М.: Финансы и статистика, 1988. 5. Болски М.И. Язык программирования Си. Справочник: Пер. с англ.- М.: Радио и связь, 1988. 6. Джехани Н. Программирование на языке Си: Пер. с англ.- М.: Радио и связь, 1988. 7. Уинер Р. Язык Турбо Си: Пер. с англ.- М.: Мир, 1991. 8. Трой Д. Программирование на языке Си для персонального компьютера IBM PC. / Пер. с англ.- М.: Радио и связь, 1991. 9. Петцольд Ч. Программирование для Microsoft Windows на C#. В 2-х томах. Том 1. / Пер. с англ.- М.: Издательско-торговый дом «Русская редакция», 2002. 10. Петцольд Ч. Программирование для Microsoft Windows на C#. В 2-х томах. Том 2. / Пер. с англ.- М.: Издательско-торговый дом «Русская редакция», 2002. 11. Дубовцев А.В. Microsoft .NET в подлиннике / Под ред. В.Е.Пышкина.- СПб.: БХВ-Петербург,2004. 12. Марченко А. Л. Основы программирования на C# 2.0.- БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2007. 13. Микелсен К. Язык программирования C#. Лекции и упражнения. / Пер. с англ.- М.: ДиаСофт, 2002. Інформаційні ресурси 1. 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).