Програмування та теорія алгоритмів
Мета вивчення дисципліни: знайомство з частиною загальної теорії програмування, яка займається дослідженням можливостей обчислювальних машин, аналізом складності обчислень, встановленням оцінок складності алгоритмів та їх оптимізації; вивченням основних концепцій структурного програмування; дослідженням способів структурування даних та основних задач їх обробки; розробкою, тестуванням та аналізом ефективності нових методів і алгоритмів обробки інформації; оптимізацією алгоритмів за різноманітними критеріями.
Практичне значення та використання отриманих знань: полягає у здатності студентів розв’язувати реальні інженерні та наукові задачі шляхом розробки ефективних алгоритмів та їх реалізації у вигляді програмного забезпечення. Вивчаючи алгоритмічні підходи, студенти опановують методи оптимізації обчислювальних процесів, що дозволяє вирішувати завдання швидше і з меншими ресурсними витратами. Ці знання використовуються у широкому спектрі галузей, таких як розробка програмних додатків, аналіз даних, штучний інтелект, криптографія, інформаційна безпека та програмування з використанням такої мови як C/C++.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. Основи розробки алгоритмів. Числові системи
Лекція 2. Мови програмування загальні поняття, введення в C/C++
Лекція 3. Основи синтаксису мови, типи даних, вирази, оператори та операції
Лекція 4. Структури розгалуження: умовні оператори та оператори множинного вибору
Лекція 5. Циклічні алгоритми та структури в C/C++
Лекція 6. Теорія алгоритмів
Лекція 7. Підпрограми. Рекурсивні алгоритми
Лекція 8. Одновимірні масиви в C/C++
Лекція 9. Алгоритми пошуку
Лекція 10. Алгоритми сортування
Лекція 11. Багатовимірні масиви в C/C++. Двовимірні масиви. Алгоритми обробки матриць
Лекція 12. Покажчики. Використання покажчиків у функціях
Лекція 13. Обробка строкових даних у С/С++
Лекція 14. Структури
Лекція 15. Оптимізація програмного коду С/С++
Лабораторні заняття
Лабораторне заняття №1. «Алгоритми з умовними операторами та розгалуженнями»
Мета заняття: Навчити студентів застосовувати оператори умовного вибору (if, switch) для реалізації алгоритмів з розгалуженням. Створення програм, які реалізують основні логічні операції та прийняття рішень.
Лабораторне заняття №2. «Циклічні алгоритми та використання циклів»
Мета заняття: Ознайомити студентів з основними типами циклів (for, while, do-while) в C/C++. Створення програм для розв’язання задач з використанням циклічних алгоритмів.
Лабораторне заняття №3. «Масиви та обробка одновимірних масивів»
Мета заняття: Навчити студентів працювати з масивами в C/C++, реалізувати алгоритми для обробки одновимірних масивів: пошук, сортування, модифікація елементів.
Лабораторне заняття №4. «Покажчики та робота з ними у функціях»
Мета заняття: Навчити студентів основам роботи з покажчиками в C/C++, їх використанню для передачі параметрів у функціях та маніпулюванням даними через адресу пам’яті.
Лабораторне заняття №5. «Масиви та обробка двовимірних масивів»
Мета заняття: Навчити студентів працювати з двовимірними масивами в C/C++, реалізувати алгоритми для обробки двовимірних масивів: пошук, сортування, модифікація елементів.
Лабораторне заняття №6. «Обробка строкових даних у C/C++»
Мета заняття: Навчити студентів працювати з рядками в C/C++, використовувати стандартні функції для маніпулювання строковими даними, таких як копіювання, порівняння та обробка тексту.
Лабораторне заняття №7. «Рекурсивні алгоритми та підпрограми»
Мета заняття: Ознайомити студентів з принципами рекурсії та використання підпрограм у C/C++. Створення програм, що реалізують рекурсивні алгоритми для розв’язування простих задач.
Для заочної форми здобуття освіти
Лекційні заняття
Лекція 1. Основи розробки алгоритмів та мови програмування C/C++. Типи даних. Алгоритми та структури управління: розгалуження, цикли, підпрограми.
Лекція 2. Покажчики та їх використання у функціях та при обробці рядків. Масиви, алгоритми пошуку та сортування.
Лабораторні заняття
Лабораторне заняття №1. «Основи мови програмування C/C++ та розробка простих алгоритмів»
Мета заняття: Ознайомитись з основами синтаксису мови програмування C/C++, основними типами даних, виразами та операціями.
Лабораторне заняття №2. «Покажчики, функції та робота з масивами в C/C++»
Мета заняття: Ознайомитись з принципами роботи з покажчиками, їх використанням у функціях, а також роботою з одновимірними та багатовимірними масивами.
Консультації здійснюються впродовж семестру згідно встановленого розкладу.
Індивідуальна робота
Для денної форми здобуття освіти не передбачено
Контрольна робота для здобувачів заочної форми
Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 6 теоретичних питань та 6 практичних завдань.
Обсяг відповіді на кожне теоретичне питання: не менше, ніж 2 сторінки машинописного тексту. Текст відповіді повинен бути виконаний самостійно, а не скопійованим з навчального посібника.
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні
1) 7-и індивідуальних поточних завдань. Індивідуальні поточні завдання виконуються письмово і полягають в розв'язуванні типових задач за варіантами відповідно до мети та завдань лабораторних занять. Бездоганне виконання індивідуального поточного завдання №1-6 оцінюється у 4 балів, захист – 3 бали; індивідуального поточного завдання №7 – 5 балів, захист 3 бали.
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі комп’ютерного тестування. Бездоганне виконання кожної модульної контрольної роботи становить 25 балів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати студент – 100 балів.
Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни.
До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.
Складання/перескладання екзаменів організується за встановленим деканатом розкладом.
Для заочної форми здобуття освіти
Виконання та захист лабораторної роботи №1-2 оцінюється у 50 балів (25 кожна).
Захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 25 балів. При її захисті студент може отримати до 25 балів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати студент – 100 балів.
Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни.
До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.
Складання/перескладання екзаменів організується за встановленим деканатом розкладом.
ПРН3. Вміти застосовувати сучасні інформаційні технології та мати навички розробляти алгоритми та комп’ютерні програми з використанням мов високого рівня та технологій об’єктно-орієнтованого програмування, створювати бази даних та використовувати інтернет-ресурси.
ПРН9. Вміти проектувати багаторівневі системи керування і збору даних для формування бази параметрів процесу та їх візуалізації за допомогою засобів людино-машинного інтерфейсу, використовуючи новітні комп'ютерно-інтегровані технології.
ПРН10. Вміти обґрунтовувати вибір структури та розробляти прикладне програмне забезпечення для мікропроцесорних систем управління на базі локальних засобів автоматизації, промислових логічних контролерів та програмованих логічних матриць і сигнальних процесорів.
ПРН12. Вміти використовувати різноманітне спеціалізоване програмне забезпечення для розв’язування типових інженерних задач у галузі автоматизації, зокрема, математичного моделювання, автоматизованого проектування, керування базами даних, методів комп’ютерної графіки.
ПРН15. Знати архітектурні, криптографічні та організаційні способи захисту комп’ютерних систем та мереж; вміти оцінювати рівень інформаційної захищеності інформаційних систем, використовувати, удосконалювати, розробляти методи, алгоритми і засоби забезпечення захисту інформації при її зберіганні, обробці та передачі.
ПРН16. Знати принципи об’єктно-орієнтованого підходу у програмуванні та проектуванні, методи об'єктно-орієнтованого програмування, основ синтаксису мови програмування Java, правила об’єктно-орієнтованого дизайну та шаблонів проектування, загальні засади побудови графічного інтерфейсу користувача, WEB-програмування для вирішення технічних задач автоматизації та систем управління.