Програмування. Частина 2.Модульне програмування

Mandatory discipline
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 12.0; • у навчальних годинах — 360.
Розподіл навчальних годин (аудиторні заняття / самостійна робота): 
• очна форма — 120 / 240.
Кількість аудиторних занять за видами (лекції / практичні заняття / лабораторні заняття): 
• очна форма — 30 / 0 / 30.
Індивідуальна робота: 
• очна форма — курсова робота.
Семестровий контроль: 
Exam. Protection of course work.
Освітню компоненту забезпечує: 
Анотація: 

Мета вивчення дисципліни: оволодіння основними концепціями алгоритмічного мислення, розуміння принципів побудови алгоритмів та їх реалізації за допомогою програмування на мові С++. У процесі навчання студенти навчаться створювати блок-схеми, аналізувати задачі, розробляти алгоритми та застосовувати отримані знання для розв'язання практичних завдань; формування навичок логічного мислення, системного підходу до розробки програмного забезпечення та підготовка до подальшого вивчення складніших тем у сфері комп'ютерних наук.

Практичне значення та використання отриманих знань: розуміння основ і принципів побудови алгоритмів та програмування допомагає студентам розвивати навички критичного мислення та аналітичного підходу до розв'язання складних задач. Знання мови С++ та принципів алгоритмізації надає студентам фундамент для вивчення інших мов програмування і нових технологій. Знання, отримані під час вивчення дисципліни, стануть основою для вивчення більш складних концепцій у галузі комп'ютерних наук, таких як структури даних, комп'ютерні мережі та штучний інтелект.
Тематика та види навчальних занять

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

Лекційні заняття
Лекція 1. «Масиви».
Лекція 2. «Багатовимірні статичні масиви».
Лекція 3. «Типи пам’яті, тривалість зберігання».
Лекція 4. «Вказівники та посилання (Частина 1)».
Лекція 5. «Вказівники та посилання (Частина 2)».
Лекція 6. «Динамічне виділення пам’яті (Частина 1)».
Лекція 7. «Динамічне виділення пам’яті (Частина 2)».
Лекція 8. «Динамічні масиви».
Лекція 9. «Робота з рядками (Частина 1)».
Лекція 10. «Робота з рядками (Частина 2)».
Лекція 11. «Форматований ввід та вивід інформації».
Лекція 12. «Структури (Частина 1)».
Лекція 13. «Структури (Частина 2)».
Лекція 14. «Робота з файлами (Частина 1)».
Лекція 15. «Робота з файлами (Частина 2)».
Лекція 16. «Алгоритми пошуку, лінійний та двійковий пошук».
Лекція 17. «Алгоритми сортування, сортування вставками та вибіркове».
Лекція 18. «Бульбашкове сортування».
Лекція 19. «Вказівники на функції (Частина 1)».
Лекція 20. «Вказівники на функції (Частина 2)».
Лекція 21. «Функції-члени структур».
Лекція 22. «Потяння класів та об’єктно-орієнтоване програмування».
Лекція 23. «Основи шаблонів С++ (Частина 1)».
Лекція 24. «Основи шаблонів С++ (Частина 2)».
Лекція 25. «Основні функції та контейнери стандартної бібліотеки С++ (Частина 1)».
Лекція 26. «Основні функції та контейнери стандартної бібліотеки С++ (Частина 2)».
Лекція 27. «Декомпозиція вихідного коду програми мовою С++, системи збірки».
Лекція 28. «Створення та використання бібліотек та модулів (Частина 1)».
Лекція 29. «Створення та використання бібліотек та модулів (Частина 2)».
Лекція 30. «Сучасні практики написання програм мовою С++».

Лабораторні заняття
Лабораторне заняття 1. «Основи роботи з масивами (Частина 1)».
Мета заняття: освоєння практичних навичок роботи з масивами та використання масивів для зберігання кількох значень однакового типу даних та вирішення алгоритмічних задач.
Лабораторне заняття 2. «Основи роботи з масивами (Частина 2)».
Мета заняття: освоєння практичних навичок роботи з масивами та використання масивів для зберігання кількох значень однакового типу даних та вирішення алгоритмічних задач.
Лабораторне заняття 3. «Багатовимірні статичні масиви (Частина 1)»
Мета заняття: придбання навичок роботи з багатовимірними масивами, використання їх для представлення таблиць даних.
Лабораторне заняття 4. «Багатовимірні статичні масиви (Частина 2)»
Мета заняття: отримати навички роботи з багатовимірними масивами, використання їх для представлення таблиць даних.
Лабораторне заняття 5. «Типи пам’яті та тривалість зберігання об’єктів»
Мета заняття: ознайомлення з такими типами пам’яті як статична, автоматична та динамічна.
Лабораторне заняття 6. «Основи роботи з вказівниками»
Мета заняття: розуміння концепції вказівників, їх створення та використання для доступу до змінних.
Лабораторне заняття 7. «Складні вказівники»
Мета заняття: глибше вивчення вказівників, включаючи вказівники на масиви та багатовимірні структури.
Лабораторне заняття 8. «Динамічне виділення пам’яті (Частина 1)»
Мета заняття: використання операторів new та delete для динамічного виділення та звільнення пам’яті.
Лабораторне заняття 9. «Динамічне виділення пам’яті (Частина 2)»
Мета заняття: використання операторів new та delete для динамічного виділення та звільнення пам’яті.
Лабораторне заняття 10. «Створення динамічних масивів»
Мета заняття: розробка динамічних масивів, їх ініціалізація та використання у програмах.
Лабораторне заняття 11. «Робота з рядками в C++»
Мета заняття: освоєння основ роботи з рядками, використання функцій для обробки текстових даних.
Лабораторне заняття 12. «Форматований ввід та вивід»
Мета заняття: Розуміння форматування вводу та виводу даних за допомогою стандартної бібліотеки.
Лабораторне заняття 13. «Структури: створення та використання»
Мета заняття: навчання створення структур, визначення їх полів та використання в програмах.
Лабораторне заняття 14. «Робота зі структурами (Частина 1)»
Мета заняття: використання структур для організації даних, а також операцій над ними.
Лабораторне заняття 15. «Робота зі структурами (Частина 2)»
Мета заняття: використання структур для організації даних, а також операцій над ними.
Лабораторне заняття 16. «Основи роботи з файлами (Частина 1)»
Мета заняття: ознайомлення з основами роботи з файлами для читання та запису даних.
Лабораторне заняття 17. «Основи роботи з файлами (Частина 2)»
Мета заняття: ознайомлення з основами роботи з файлами для читання та запису даних.
Лабораторне заняття 18. «Алгоритми пошуку»
Мета заняття: розробка та реалізація алгоритмів лінійного пошуку.
Лабораторне заняття 19 «Алгоритми сортування»
Мета заняття: реалізація алгоритмів сортування вставками та вибіркове сортування.
Лабораторне заняття 20. «Алгоритми сортування та пошуку (Частина 1)»
Мета заняття: написання програми для реалізації бульбашкового сортування та аналіз його ефективності, використання двійкового пошуку для пошуку в відсортованому масиві.
Лабораторне заняття 21. «Алгоритми сортування та пошуку (Частина 2)»
Мета заняття: написання програми для реалізації та порівняння алгоритмів сортування та аналіз їх ефективності.
Лабораторне заняття 22. «Вказівники на функції (Частина 1)»
Мета заняття: освоєння концепції вказівників на функції та їх використання для передачі функцій як параметрів.
Лабораторне заняття 23. «Вказівники на функції (Частина 2)»
Мета заняття: використання вказівників на функції у реальних задачах та розробка гнучких програм.
Лабораторне заняття 24. «Функції-члени структур»
Мета заняття: розглянути функції-члени структур та їх використання для створення складених типів даних та реалізації поведінки об’єктів.
Лабораторне заняття 25. «Поняття класу в C++ та знайомство з ООП»
Мета заняття: основи об’єктно-орієнтованого програмування: створення класів та об’єктів.
Лабораторне заняття 26. «Основи шаблонів C++ (Частина 1)»
Мета заняття: вивчення концепції шаблонів функцій, структур та класів для створення універсальних рішень.
Лабораторне заняття 27. «Основи шаблонів C++ (Частина 2)»
Мета заняття: вивчення концепції шаблонів функцій, структур та класів для створення універсальних рішень.
Лабораторне заняття 28. «Використання контейнерів стандартної бібліотека C++»
Мета заняття: розглянути основні функції та контейнери стандартної бібліотеки, їх використання у програмах.
Лабораторне заняття 29. «Створення власних бібліотек та модулів мовою С++»
Мета заняття: набуття навичок створення та використання власних статичних та динамічних бібліотек, а також модулів мовою С++ для декомпозиції великих проектів та знайомство з системами збірки.
Лабораторне заняття 30. «Використання сучасних кращих практик написання коду С++ Сore Guidelines»
Мета заняття: розглянути колекцію правил і рекомендацій для написання сучасного, безпечного та ефективного коду мовою С++.

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

Курсова робота

Мета курсової роботи – набуття загальних та спеціальних компетентностей майбутніх бакалаврів, закріплення та поглиблення знань, отриманих при вивченні курсу, а також у розвитку практичних навичок програмування та алгоритмічного мислення. Студенти мають реалізувати конкретний проект, застосовуючи теоретичні знання для вирішення практичної задачі. Проєкт передбачає роботу з типами даних, масивами, вказівниками, функціями, алгоритмами пошуку та сортування.
Здобувач отримує завдання на четвертому тижні другого семестру.
Пояснювальна записка містить 25-40 сторінок Кількість розділів – 3.
Змістовна послідовність виконання роботи.
1. Аналіз теми та опис завдання роботи.
2. Опис теоретичних відомостей, необхідних для виконання роботи.
3. Розробка алгоритмів для виконання завдання, побудова блок-схем.
4. Реалізація алгоритмів в вигляді програмного коду.
5. Підготовка та оформлення звіту.

Захист курсової роботи – протягом останнього навчального тижня семестру.
Форми контрольних заходів та оцінювання результатів навчання

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

Поточний контроль полягає у контрольних опитуваннях на лабораторних заняттях (оціню-ється максимум у 66 балів), лабораторні роботи оцінюються максимально у 3 бали. Також поточний контроль полягає у виконанні двох модульних робіт. Бездоганне виконання ко-жної модульної контрольної роботи становить 17 балів. Модульні контрольні роботи ви-конується у письмовій формі та складаються з 2 частин:
1) відповіді на питання, що охоплюють теми лекційного курсу (10 балів)
2) розв’язку задачі з курсу (7 балів).
В другому семестрі передбачена курсова робота. Бездоганне виконання оцінюється у 60 балів. Захист роботи – 40 балів.
Підсумковий контроль – екзамен. Екзамен усний. Максимальна оцінка, яку може отримати студент – 100 балів.

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

ПРН3. Використовувати базові знання інформатики й сучасних ІСТ, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет- ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання ІСТ.

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

b342512 ▪ 2025