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

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

Мета дисципліни: формування фундаментальних понять, принципів і методів програмування: поняття алгоритму, мови, директив, змінних, операторів та операндів, функцій, методології і технології програмування
Практичне значення та використання отриманих знань: набуття компетенцій, знань, умінь та навичок застосування програмування відповідно до кваліфікації; набуття навичок роботи з сучасним програмно-апаратним забезпеченням; здатність здійснювати аналіз можливостей сучасних інструментальних середовищ розробки програм (на прикладі середовища Visual Studio C++); розуміння типових алгоритмічних конструкцій та засобів представлення алгоритму; розуміння комплексного уявлення про основні етапи розробки програми; отримання знань про синтаксис і семантику базових елементів мови програмування; вміння обирати та використовувати типи даних; оволодіння прийомами та технологією тестування програм.

Тематика та види навчальних занять

Для денної форми здобуття освіти

Лекційні заняття
Лекція 1. «Покажчики (вказівники, pointers). Операція взяття адреси»
Лекція 2. «Покажчики (вказівники, pointers) та масиви»
Лекція 3. «Динамічне виділення пам’яті в С++»
Лекція 4. «Вказівники на константи. Константні вказівники. Посилання»
Лекція 5. «Цикл foreach. std::array. Загальні відомості про клас vector»
Лекція 6. «Standard Template Library (STL): контейнери, алгоритми, ітератори.
Лекція 7. «Алгоритми стандартної бібліотеки С++. »
Лекція 8. «Способи передачі аргументів у функції С++»
Лекція 9. «Класи, Об’єкти і Методи»
Лекція 10. «Конструктори. Конструктори за замовчуванням. Конструктори з параметрами»
Лекція 11. «Деструктори»
Лекція 12. «Види спадкувань. Специфікатор доступу protected»
Лекція 13. «Типи зв’язків»
Лекція 14. «Основні етапи розробки програмного забезпечення. Різновиди програмування»
Лекція 15. «Тестування програмного забезпечення»

Лабораторні заняття
Лабораторне заняття №1. «Лабораторна робота №1. Вказівники»
Мета заняття: навчитися виконувати операції над вказівниками на мові С++
Лабораторне заняття №2. «Лабораторна робота №2. Динамічні масиви»
Мета заняття: навчитися виконувати операції над динамічними масивами мові С++.
Лабораторне заняття №3. «Лабораторна робота №3. Вектори. Цикл foreach»
Мета заняття: навчитися виконувати операції над векторами С++, навчитися виконувати операції з циклом foreach С++.
Лабораторна заняття №4. «Лабораторна робота №3. Вектори. Цикл foreach (част. 2»
Мета заняття: навчитися виконувати операції над векторами С++, навчитися виконувати операції з циклом foreach С++.
Лабораторне заняття №5. «Лабораторна робота №4 ООП. Класи, Об’єкти і Методи»
Мета заняття: набуття навичок роботия з класами, об’єктами та методами у С++
Лабораторне заняття №6. «Лабораторна робота №5. Тестування таймінгу коду»
Мета заняття: навчитися тестувати таймінг коду, вивчення бібліотеки chrono.
Лабораторне заняття №7. «Лабораторна робота № 6. Робота з файлами в С++»
Мета заняття: набуття навичок роботи з файлами в мові програмування C++
Лабораторне заняття №8 «Лабораторна робота №6. Робота з файлами.Частина2»
Мета заняття: набуття навичок роботи роботи з файлами в мові програмування C++

Практичні заняття
Практичне заняття №1. «Операції над вказівниками та масивами»
Мета заняття: навчитися виконувати операції над вказівниками та масивами.
Практичне заняття №2. «Посилання»
Мета заняття: навчитися виконувати операції над посиланнями у мові С++.
Практичне заняття №3. «Контейнери»
Мета заняття: Мета заняття: навчитися виконувати операції над контейнерами С++, навчитися використовувати ітератори у С++.
Практичне заняття №4. «Способи передачі аргументів у функції та повернення»
Мета заняття: набуття навичок роботи з способами передачі аргументів у С по значенню, по посиланню, по адресі; способами повернення значень по посиланню, по адресі і по значенню.
Практичне заняття №5. «Конструктори»
Мета заняття: навчитися використовувати конструкторі в мові С++
Практичне заняття №6. «Віртуальні функції»
Мета заняття: набуття навичок роботи я з основами роботи з віртуальними функціями в мові програмування C++
Практичне заняття №7. «Віртуальні функції. Частина 2»
Мета заняття: набуття навичок роботи я з основами роботи з віртуальними функціями в мові програмування C++

Для заочної форми здобуття освіти

Лекційні заняття
Лекція 1. «Масиви. Вказівники. Посилання. Standard Template Library. Алгоритми стандартної бібліотеки С++.».
Лекція 2. «Класи, Об’єкти і Методи. Конструктори.Деструктори. Шаблони функцій. Тестування програмного забезпечення.»

Лабораторні заняття
Лабораторне заняття №1. «Вказівники. Посилання. Динамічні масиви».
Мета заняття: вивчення концепцій вказівників та посилань у програмуванні, використання посилань для передачі даних в функції та розуміння різниці між вказівниками та посиланнями; оволодіння навичками роботи з динамічними масивами.
Лабораторне заняття №2. «Контейнери. Алгоритми стандартної бібліотеки С++. Класи, Об’єкти і Методи».
Мета заняття: навчитися використовувати різноманітні контейнери, такі як вектори, списки та мапи, для зберігання та обробки даних; набуття навичок роботи я з основами роботи з віртуальними функціями в мові програмування C++ з різними алгоритмами, які можна використовувати для обробки цих контейнерів, такими як сортування, пошук та інші операції; набуття навичок роботи зі створенням класів та використанню методів для взаємодії з об'єктами.

Практичні заняття
Практичне заняття №1. «Методи, класи»
Мета заняття: набуття навичок роботи зі способами використання функцій, визначених всередині класу.

Консультації здійснюються впродовж семестру згідно встановленого розкладу.

Індивідуальна робота

Для денної форми здобуття освіти

Курсова робота
Мета курсової роботи – поглиблення, узагальнення і закріплення знань студентів з навчальної дисципліни «Алгоритмізація та програмування», застосування їх при вирішенні конкретного завдання і вироблення вміння самостійно працювати з навчальною літературою, використовуючи сучасні інформаційні засоби, удосконалення вмінь по використанню мови С++ для розв’язку задач. При виконанні курсової роботи студент повинен навчитися: використовувати набуті знання при розробці програм; працювати з літературними джерелами; розробляти алгоритми та створювати відповідні їм програми на мові С++; розробляти функцій для обробки символьних рядків; обробляти одномірні та багатомірні масиви; використовувати методів сортування та пошуку даних; складати відповідне програмне супроводження для розроблених програмних проектів.
Здобувач отримує завдання на третьому в семестрі практичному занятті.
Пояснювальна записка містить 20-25 сторінок Кількість розділів – 3. Графічна частина – блок-схема алгоритму програми.
Змістовна послідовність виконання роботи.
1. Робота з різними типами даних та функціями в С++. 2. Робота з масивами в С++ 3. Сортування у С++. Захист курсової роботи – протягом останнього навчального тижня семестру. Максимальна кількість балів за бездоганне виконання – 100 балів.

Для заочної форми здобуття освіти
Курсова робота
Мета курсової роботи – поглиблення, узагальнення і закріплення знань студентів з навчальної дисципліни «Алгоритмізація та програмування», застосування їх при вирішенні конкретного завдання і вироблення вміння самостійно працювати з навчальною літературою, використовуючи сучасні інформаційні засоби, удосконалення вмінь по використанню мови С++ для розв’язку задач. При виконанні курсової роботи студент повинен навчитися: використовувати набуті знання при розробці програм; працювати з літературними джерелами; розробляти алгоритми та створювати відповідні їм програми на мові С++; розробляти функцій для обробки символьних рядків; обробляти одномірні та багатомірні масиви; використовувати методів сортування та пошуку даних; складати відповідне програмне супроводження для розроблених програмних проектів.
Здобувач отримує завдання на установочній сесії. Пояснювальна записка містить 20-25 сторінок, Кількість розділів – 3. Графічна частина – блок-схема алгоритму програми.
Змістовна послідовність виконання роботи.
1. Робота з різними типами даних та функціями в С++. 2. Робота з масивами в С++ 3. Сортування у С++Захист курсової роботи – під час сесії. Максимальна кількість балів за бездоганне виконання – 100 балів.

Форми контрольних заходів та оцінювання результатів навчання

Для денної форми здобуття освіти
Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних, практичних та лабораторних занять, виконують курсову роботу та 2 модульні контрольні роботи.
Модульні контрольні роботи виконуються у письмовій формі. Максимальна оцінка за контрольну роботу – 20 балів. По 2 бали за кожну вірну відповідь на питання № 1-4 та по 4 бали за кожну вірну відповідь на питання № 5-7.
ЛР1. Оцінка за виконання – 5 балів. Термін надання – 3 тиждень.
ЛР2. Оцінка за виконання – 5 балів. Термін надання – 5тиждень
ЛР3. Оцінка за виконання – 5 балів. Термін надання – 7 тиждень.
ЛР4. Оцінка за виконання – 5 балів. Термін надання – 9 тиждень.
ЛР5. Оцінка за виконання – 5 балів. Термін надання – 11тиждень
ЛР6. Оцінка за виконання – 5 балів. Термін надання – 13 тиждень.
При оцінювання лабораторних робіт можуть зніматися бали за:
1) Відсутність структурних елементів протоколу (титульний лист, мета роботи) – 1 бал
2) Відсутність або невідповідність коду та розрахунків – 2 бали
3) Відсутність або невідповідність необхідних блок-схем – 1 бали
4) Відсутність висновків по роботі або їх невідповідність завданню та результатам, представленим у протоколі роботи – 1 бали.
Практичне заняття 1 Оцінка за виконання – 5 балів. Термін надання – 3 тиждень.
Практичне заняття 2 Оцінка за виконання – 5 балів. Термін надання – 6 тиждень.
Практичне заняття 3 Оцінка за виконання – 5 балів. Термін надання – 8 тиждень.
Практичне заняття 4 Оцінка за виконання – 5 бали. Термін надання – 10 тиждень.
Практичне заняття 5 Оцінка за виконання – 5 бал. Термін надання – 12 тиждень.
Практичне заняття 6 Оцінка за виконання – 5 бал. Термін надання – 14 тиждень.
При оцінюванні практичних робіт можуть зніматися бали за:
1) Відсутність структурних елементів протоколу (титульний лист, мета роботи) – 1 бал
2) Відсутність або невідповідність коду та розрахунків – 2 бали
3) Відсутність або невідповідність необхідних блок-схем – 1 бали
4) Відсутність висновків по роботі або їх невідповідність завданню та результатам, представленим у протоколі роботи – 1 бали.
Максимальна оцінка за повний обсяг виконаних навчальних елементів дисципліни – 100 балів.
Курсова робота оцінюється у 100 балів максимум, з них: завдання 1 – максимум 25 балів, завдання 2 – максимум 25 балів, завдання 3 – максимум 25 балів, висновки – максимум 10 балів, загальне оформлення КР з наявністю всіх частин, скрінів, блок-схем алгоритмів, коду програми, додатків – максимум 5 балів, захист курсової роботи – максимум 10 балів.
Бали за КР можуть бути зменшені за:
- відсутність структурних частин опису завдання (опис осовних використаних методів, вхідних та вихідних даних) – до 3 балів за кожен;
- відсутність необхідних блок-схем – до 3 балів за кожну;
- невідповідність завдання/коду/блок-схем – до 10 балів за кожне завдання;
- невідповідність або відсутність висновків – до 5 балів;
- відсутність тестування та сиринів консолі з результатами – до 10 балів за кожне;
- відсутність відповідей при захисті – до 15 балів;
- невідповідність вимогам оформлення пояснювальної записки – до 5 балів.
Курсова робота повинна бути здана на перевірку не пізніше 14 тижня.
Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (4 запитання по 10 балів) та практичної частини (3 задачі по 20 балів). Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів
Для заочної форми здобуття освіти
Контрольна робота
Завдання для виконання контрольної роботи здобувач отримує на установчій лекції.
Робота містить 10 теоретичних питань та 10 практичних завдання, кожне з яких оцінюється у 3 балів максимально.
Текст відповіді повинен бути виконаний самостійно, а не скопійованим з навчального посібника. Термін надання виконаної контрольної роботи на перевірку – не пізніше, ніж за місяць до початку сесії.
Лабораторне завдання №1 «Вказівники. Посилання. Динамічні масиви» оцінюється у 15 балів максимально. Лабораторне завдання №2 «Контейнери. Алгоритми стандартної бібліотеки С++. Класи, Об’єкти і Методи» оцінюється у 15 балів максимально.
При оцінювання лабораторних робіт можуть зніматися бали за:
1) Відсутність структурних елементів протоколу (титульний лист, мета роботи) – 2 бал
2) Відсутність або невідповідність коду та розрахунків – до 4х балів за кожне завдання лабораторної роботи
3) Відсутність висновків по роботі або їх невідповідність завданню та результатам, представленим у протоколі роботи – 5 балів
Практичне завдання №1 «Методи, класи» оцінюється у 10 балів максимально.
При оцінювання практичних робіт можуть зніматися бали за:
1) Відсутність структурних елементів протоколу (титульний лист, мета роботи) – 2 бали
2) Відсутність або невідповідність коду та розрахунків – до 2х балів за кожне завдання практичної роботи.
3) Відсутність висновків по роботі або їх невідповідність завданню та результатам, представленим у протоколі роботи – 5 балів
Курсова робота оцінюється у 100 балів максимум, з них: завдання 1 – максимум 25 балів, завдання 2 – максимум 25 балів, завдання 3 – максимум 25 балів, висновки – максимум 10 балів, загальне оформлення КР з наявністю всіх частин, скрінів, блок-схем алгоритмів, коду програми, додатків – максимум 5 балів, захист курсової роботи – максимум 10 балів.
Бали за КР можуть бути зменшені за:
- відсутність структурних частин опису завдання (опис осовних використаних методів, вхідних та вихідних даних) – до 3 балів за кожен;
- відсутність необхідних блок-схем – до 3 балів за кожну;
- невідповідність завдання/коду/блок-схем – до 10 балів за кожне завдання;
- невідповідність або відсутність висновків – до 5 балів;
- відсутність тестування та сиринів консолі з результатами – до 10 балів за кожне;
- відсутність відповідей при захисті – до 15 балів;
- невідповідність вимогам оформлення пояснювальної записки – до 5 балів.

Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (4 запитання по 10 балів) та практичної частини (3 задачі по 20 балів). Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.
Максимальна оцінка за повний обсяг виконаних навчальних елементів дисципліни – 100 балів.

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

ПРН5. Проектувати, розробляти та аналізувати алгоритми розв’язання обчислювальних та логічних задач, оцінювати ефективність та складність алгоритмів на основі застосування формальних моделей алгоритмів та обчислюваних функцій.
ПРН9. Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.

b272509 ▪ 2025