Алгоритмізація та програмування

Обов'язкова дисципліна
Навчальна дисципліна загальної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 6.0; • у навчальних годинах — 180.
Розподіл навчальних годин (аудиторні заняття / самостійна робота): 
• очна форма — 60 / 120; • заочна форма — 10 / 170.
Кількість аудиторних занять за видами (лекції / практичні заняття / лабораторні заняття): 
• очна форма — 15 / 7 / 8; • заочна форма — 2 / 1 / 2.
Індивідуальна робота: 
• очна форма — курсова робота; • заочна форма — курсова робота, контрольна робота.
Семестровий контроль: 
Екзамен. Захист курсової роботи.
Освітню компоненту забезпечує: 
Анотація: 

Мета вивчення дисципліни:
- ознайомлення з основними методами та поняттями алгоритмізації;
- отримання знань про властивості та особливості алгоритмів;
- оволодіння здобувачами освіти фундаментальних знань з програмування;
- отримання систематичних знань та навичок в галузі методів, засобів та технологій розробки програмного забезпечення;
- освоєння можливостей мови програмування С++.
Завдання вивчення дисципліни:
здобувач вищої освіти повинен знати:
- визначення, елементи побудови та візуалізації алгоритмів;
- основні методи обчислень;
- конструктивні компоненти та структури комп'ютерних програм;
- методи структурного та модульного програмування в С++;
- методи та технології програмування С++.
здобувач вищої освіти повинен вміти:
- розробити та аналізувати алгоритми;
- використовувати алгоритмічні конструкцій та засоби представлення алгоритмів;
- розробити та запрограмувати алгоритми з використанням керуючих структур мови програмування С++;
- реалізувати математичні моделі на комп’ютері;
- тестувати та налагоджувати програмні застосунки;
- використовувати різні середовища програмування;
- самостійно опановувати нові методи та технології обчислень мови програмування С++.
Практичне значення та використання отриманих знань:
- з навичками програмування з'являється можливість створювати програмні системи або реалізувати ідею на рівні застосунку, сайту, програми тощо;
- алгоритмічне мислення дає можливість поглянути на проблему цілком, а також зробити її декомпозицію для найбільш ефективного вирішення;
- використання принципів та базових концепцій технологій програмування, як складової частини технології розробки, як у професійної діяльності, так і в інформаційних системах економічного, управлінського, виробничого, наукового призначення.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. Загальна характеристика етапів розв'язання задачі з використанням ЕОМ.
Лекція 2. Основи алгоритмізації (Загальні відомості про алгоритми. Властивості алгоритмів і способи їх завдання. Принципи структурної алгоритмізації.).
Лекція 3. Базовий набір структур (Лінійні та розгалужені структури.).
Лекція 4. Організація циклічних обчислювальних процесів (Цикл із заданим умовою продовження роботи. Цикл із заданим умовою закінчення роботи. Цикл із заданою кількістю повторень).
Лекція 5. Синтаксис програмного коду. (Використання компіляторів різного типу. Середовище розробки MS Visual Studio. Створення консольної програми. Структура програми. Оформлення вихідного коду програми мовою програмування С++. Ключові слова.).
Лекція 6. Типи даних. (Визначення типу даних у С++. Стандартні типи та дії з ними. Літерали у програмуванні. Цілочисельні та рядкові літерали. Ієрархія типів даних у С++.).
Лекція 7. Оператори. (Оператори мови програмування С++: арифметичні, бітові, логічні операції. Пріоритети виконання операцій. Прості дані та обчислення. Вирази, правила їх запису та виконання. Класифікація виразів залежно від типу результату).
Лекція 8. Потоки вводу/виводу. (Оператори введення-виводу. Управління виводом даних у консольному режимі (найпростіше форматування). Метрики часу існування та області видимості змінних. Класифікація змінних щодо області видимості).
Лекція 9. Умовні конструкції та розгалуження. (Умовний оператор if та різновид його синтаксичних конструкцій. Оператор множинного вибору switch).
Лекція 10. Циклічні конструкції. (Програмування алгоритмів циклічної структури, організація спеціального виходу з циклу. Концепція ітераційного циклу. Генератор випадкових чисел).
Лекція 11. Масиви. (Одномірні, двомірні, багатомірні. Способи оголошення та ініціалізації елементів масиву. Дотримання меж масиву. Алгоритми обробки числових масивів із використанням індексів).
Лекція 12. Покажчики та посилання. (Концепція покажчика. Операції отримання адреси об'єкта та розіменування покажчика. Операції над покажчиками).
Лекція 13. Масиви покажчиків. (Алгоритми обробки числових масивів із використанням покажчиків. Масиви покажчиків. Покажчики на масиви).
Лекція 14. Символьні масиви та функції. (Способи оголошення та ініціалізації елементів масиву. Дотримання меж масиву. Алгоритми обробки символьних масивів. Визначення функції. Опис, схема виклику функцій. Формальні та фактичні параметри, їх взаємодія. Механізми виділення пам'яті під параметри).
Лекція 15. Рекурсивні функції. Області видимості функцій. (Параметри-значення, параметри-змінні, параметри-константи. Область видимості імен. Локальні та глобальні ідентифікатори підпрограм).
Практичні роботи
Практична робота №1. Середовище Microsoft Visio або онлайн програмне забезпечення draw io.
Мета роботи: Набуття практичних навичок створення проєкту у середовищі Microsoft Visio або у draw io.
Практична робота №2. Розробка лінійних алгоритмів.
Мета роботи: Набуття практичних навичок у побудові лінійних алгоритмів з використанням основних базових структур.
Практична робота №3. Розробка алгоритмів з розгалуженою структурою.
Мета роботи: Набуття практичних навичок у побудові алгоритмів з використанням розгалуженої структури.
Практична робота №4. Розробка алгоритмів з циклічною структурою.
Мета роботи: Набуття практичних навичок у побудові алгоритмів з використанням ефективної циклічної структури.
Практична робота №5. Розробка алгоритмів для вирішення завдання з одномірними масивами.
Мета роботи: Набуття практичних навичок у побудові алгоритмів роботи з одномірними масивами.
Практична робота №6. Розробка алгоритмів для вирішення завдання з двомірними масивами.
Мета роботи: Набуття практичних навичок у побудові алгоритмів роботи з двомірними масивами.
Практична робота №7. UML – діаграма для подання загального алгоритму вирішення математичного завдання при обчисленні матриць.
Мета роботи: Набуття практичних навичок у побудові алгоритмів вирішення математичного завдання при обчисленні матриць.
Лабораторні роботи
Лабораторна робота №1. Введення-виведення інформації та розгалуження..
Мета роботи: Набуття практичних навичок програмування алгоритмів з розгалуженою структурою.
Лабораторна робота № 2. Циклічні оператори.
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів циклічної структури з використанням ітераційних циклів.
Лабораторна робота № 3. Одномірні масиви.
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів обробки одновимірних масивів. Використовуючи різні способи оголошення та ініціалізації елементів масиву.
Лабораторна робота № 4. Двомірні масиви
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів обробки двомірних масивів. Використовуючи різні способи оголошення та ініціалізації елементів двомірного масиву.
Лабораторна робота № 5. Символьні масиви
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів обробки символьних масивів.
Лабораторна робота № 6. Покажчики та посилання
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів обробки числових масивів з використанням покажчиків та посилань.
Лабораторна робота № 7. Функції
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів з використанням власних функцій.
Лабораторна робота №8. Рекурсивні функції.
Мета роботи: Набуття практичних навичок у програмуванні алгоритмів з використанням рекурсивних функцій
Для заочної форми здобуття освіти
Лекційні заняття
Лекція 1. Основи алгоритмізації та мови програмування С++. ( Базовий набір структур. Типи даних. Оператори. Пріоритет операцій. Умовні та циклічні конструкції).
Лекція 2. Алгоритми пошуку та сортування. Одномірні та двомірні масиви. Покажчики та посилання. Функції.
Практичні роботи
Практична робота №1. Побудова алгоритмів з використанням базового набору структур.
Мета роботи: Набуття практичних навичок створення проєкту у середовищі для реалізації алгоритмів з лінійною, розгалуженою структурою та циклічними обчислювальними процесами.
Лабораторні роботи
Лабораторна робота №1. Розгалуження та циклічні оператори.
Мета роботи: Набуття практичних навичок програмування алгоритмів з розгалуженням та з використанням ітераційних циклів.
Лабораторна робота №2. Функції та двомірні масиви.
Мета роботи: Набуття практичних навичок програмування алгоритмів з використанням власних функцій при обробці двомірних масивів.

Консультації здійснюються впродовж семестру згідно встановленого розкладу.
Індивідуальна робота
Для денної форми здобуття освіти
Курсова робота
Метою курсової роботи є не лише поглиблення, узагальнення, закріплення знань, здобувачів вищої освіти, у процесі вивчення навчальної дисципліни, а й застосування їх при вирішенні конкретного завдання та отримання навичок розробки алгоритмів різного рівня складності та програмування їх на мові С++ .
При виконанні курсової роботи здобувач вищої освіти повинен виконати наступні завдання:
- вирішення завдання не тільки для заданих матриць, а і для будь-якої(яких);
- діалог з користувачем (меню з підменю, контроль виходу та продовження, повернення до попередніх пунктів меню);
- всі перевірки (на кількість елементів, помилки розмірності, існування, сумісності матриць тощо. );
- альтернатива заповнення матриць (самостійно або генерація);
- модульність програмного коду (головна функція складається тільки з викликів функцій);
- основна функція (вирішення завдання) - рекурсивна.
Всі функції мають бути особистими.
План виконання:
- розробка алгоритму для вирішення завдання;
- програмування завдань;
- тестування програми;
- оформлення курсової роботи.
Завершенням виконання курсової роботи є - захист.
Захист курсової роботи – протягом останнього навчального тижня семестру.
Для заочної форми здобуття освіти
Контрольна робота
Завдання для виконання контрольної роботи здобувачі отримують на установчій лекції.
Робота містить 2 теоретичні питання та 3 практичних завдання.
Обсяг відповіді на кожне теоретичне питання: не менше, ніж 1 сторінка друкованого тексту. Текст відповіді повинен бути виконаний самостійно, а не скопійованим з навчального посібника або згенерований штучним інтелектом.
Практичне завдання №1. Одномірні масиви.
Практичне завдання №2. Двомірні масиви.
Практичне завдання №3. Символьні масиви.
Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Курсова робота
Метою курсової роботи є не лише поглиблення, узагальнення, закріплення знань, здобувачів вищої освіти, у процесі вивчення навчальної дисципліни, а й застосування їх при вирішенні конкретного завдання та отримання навичок розробки алгоритмів різного рівня складності та програмування їх на мові С++ .
При виконанні курсової роботи здобувач вищої освіти повинен виконати наступні завдання:
- вирішення завдання не тільки для заданих матриць, а і для будь-якої(яких);
- діалог з користувачем (меню з підменю, контроль виходу та продовження, повернення до попередніх пунктів меню);
- всі перевірки (на кількість елементів, помилки розмірності, існування, сумісності матриць тощо. );
- альтернатива заповнення матриць (самостійно або генерація);
- модульність програмного коду (головна функція складається тільки з викликів функцій);
- основна функція (вирішення завдання) - рекурсивна.
Всі функції мають бути особистими.
План виконання:
- розробка алгоритму для вирішення завдання;
- програмування завдань;
- тестування програми;
- оформлення курсової роботи.
Термін надання виконаної курсової роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні:
1) 7-ми практичних робіт. Практичні роботи виконуються у програмних середовищах і полягають в розробці алгоритму розв'язуванні типових індивідуальних завдань відповідно до теми та мети практичної роботи. Практичні роботи оформлюються у вигляді протоколів. Бездоганне виконання, індивідуального завдання, практичних робіт №1 - №7 оцінюються по 4 бали;
1) 8-ми лабораторних робіт. Лабораторні роботи виконуються в інтегрованих середовищах програмування і полягають в розв'язуванні типових індивідуальних завдань відповідно до теми та мети лабораторних занять. Лабораторні роботи оформлюються у вигляді протоколів. Бездоганне виконання, індивідуального завдання, лабораторних робіт №1 - №8 оцінюються по 4 бали;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі комп'ютерного тестування.
Бездоганне виконання кожної модульної контрольної роботи становить 20 балів.
3) курсової роботи. Бездоганне виконання оцінюється у 60 балів. Захист роботи – 40 балів.
Завдання вважається виконаним бездоганно, якщо виконані всі пункти, синтаксично та семантично вірно сформований алгоритм та програмний код до нього, написані коментарі, враховані вимоги до вхідних даних, виявлені та оброблені критичні значення, наявна обробка помилок, визначено діалог з користувачем, враховані вимоги до умовно-графічних позначень згідно ДСТУ, наведені приклади виконання програм з різними тестовими вхідними даними, усно надане повне пояснення використаних структурних елементів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати здобувач освіти – 100 балів.
Для заочної форми здобуття освіти
Поточний контроль полягає у виконанні:
1) практичної роботи. Практична робота виконуються індивідуально та оформлюється у вигляді протоколу. Бездоганне виконання оцінюється 10 балів.
1) 2х лабораторних робіт. Лабораторні роботи виконуються індивідуально та оформлюються у вигляді протоколів. Бездоганне виконання оцінюється по 10 балів.
2) захист контрольної роботи. Бездоганне виконання контрольної роботи оцінюється у 50 балів. При її захисті здобувач освіти може отримати до 20 балів.
3) захист курсової роботи. Бездоганне виконання курсової роботи оцінюється у 60 балів. Захист роботи – 40 балів.
Завдання вважається виконаним бездоганно, якщо виконані всі пункти, синтаксично та семантично вірно сформований алгоритм та програмний код до нього, написані коментарі, враховані вимоги до вхідних даних, виявлені та оброблені критичні значення, наявна обробка помилок, визначено діалог з користувачем, враховані вимоги до умовно-графічних позначень згідно ДСТУ, наведені приклади виконання програм з різними тестовими вхідними даними.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати здобувач освіти – 100 балів.

Результати навчання: 

ПРН1. Вільно спілкуватися державною мовою усно та письмово при виконанні професійних обов’язків.
ПРН5. Аналізувати, аргументувати, приймати рішення при розв’язанні складних спеціалізованих задач i практичних завдань у професійній діяльності, які характеризуються комплексністю та неповною визначеністю умов, відповідати за прийняті рішення.
ПРН6. Адаптуватися до нових умов i технологій професійної діяльності, прогнозувати кінцевий результат.
ПРН8. Застосовувати знання и розуміння математики та фізики в професійній діяльності, формалізувати задачі предметної галузі кібербезпеки та захисту інформації, формулювати ïx математичну постановку та обирати раціональний метод вирішення.

b332504 ▪ 2025 рік