Програмування

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

Мета вивчення дисципліни: формування фундаментальних понять і методів інформатики: поняття алгоритму, алгоритмічної конструкції, комп’ютерної програми, мови програмування, методології і технології програмування.
Практичне значення та використання отриманих знань: розглянути підходи дозволяють навчити майбутніх фахівців основних етапів процесу проектування програмного забезпечення і принципів процедурного програмування щодо розробки програм мовою C, типовим підходам до розробки і аналізу найбільш розповсюджених алгоритмів рішення економіко-математичних задач, здійснення аналізу можливостей сучасних інструментальних середовищ розробки програм та визначення концепцій і вивчення основних принципів організації програм.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. Історія створення і розвитку мов C та C++.
Створення процедурної мови C. Призначення та основні концепції мов C та C++. Структура програми. Коментування у програмному коді. Службові слова мови C. Типи даних. Змінні та константи. Арифметичні операції. Логічні операції. Порозрядні операції. Операції співвідношення. Операції присвоювання. Вплив переприсвоювання на значення змінних. Пріоритети операцій у виразах. . Локальна та глобальна області видимості змінних. Використання функцій форматного вводу/виводу. Функція форматного виводу printf(). Функція форматного вводу scanf().
Лекція 2. Розгалуження. Цикли.
Оператор goto. Оператори умови. Складений оператор умови if-else. Конструкція else if. Оператор вибору switch. Оголошення змінних у гілках case. Умовнаоперація "?:". Оператори циклів. Простий оператор циклу з передумовою while. Простий оператор циклу з постумовою do-while. Складний оператор циклу з передумовою for. Оператори break та continue.
Лекція 3. Структури та масиви. Покажчики.
Перечислення. Структури. Об’єднання. Поля. Робота з великими об'ємами даних. Необхідність застосування масивів. Оголошення масиву. Робота з елементами одновимірного масиву. Робота з елементами багатовимірного масиву. Застосування масивів. Доступ до пам'яті за допомогою змінних-покажчиків. Динамічне виділення пам'яті. Робота з елементами масивів за допомогою змінних-покажчиків. Динамічні масиви.
Лекція 4. Функції. Обробка помилок.
Об’ява та визначення функції. Поняття черги та стеку. Передача параметрів функцій. Змінне число аргументів функції. Показник на функцію. Рекурсія. Обробка помилок.
Лекція 5. Робота з файлами та рядками.
Поняття файлу. Відкриття файлів. Читання та запис інформації в файл. Стандартні файли. Робота з файловою системою. Функції роботи з рядками.
Лекція 6. Стандартні бібліотеці.
Генератор псевдовипадкового числа. Організація пошуку. Організація сортування. Запуск застосування. Функції та змінні стандартних бібліотек.
Лекція 7. Препроцесор. Модульні програми.
Процес компіляції програми. Директива препроцесора define. Директива препроцесора include. Директива препроцесора line. Директиви умовної компіляції препроцесора. Директива препроцесора error. Директива препроцесора pragma. Програмні модулі. Доступ до зовнішніх даних.
Лекція 8. Особливості мови програмування С++.
Створення об'єктно-орієнтованої мови C++. Константи. Булевій тип. Робота з пам’ятаю. Оператор розширення області видимості. Обробка виключень. Структурні типи даних. Перевантаження функцій. Перевантаження операторів. Функції з параметрами за умовчанням.
Лекція 8. Особливості мови програмування С++.
Створення об'єктно-орієнтованої мови C++. Константи. Булевій тип. Робота з пам’ятаю. Оператор розширення області видимості. Обробка виключень. Структурні типи даних. Перевантаження функцій. Перевантаження операторів. Функції з параметрами за умовчанням.
Лекція 9. Класи та потоки.
Поняття класу. Рівні доступу. Конструктори. Деструктори. Потоки. Стандартні потоки. Маніпулятори потоків.
Лекція 10. Спадкування та дружні функції.
Поняття спадкування класу. Рівні доступу при спадкуванні. Дружні функції. Особливості перевантаження операторів. Віртуальні методі.
Лекція 11. Множинне і віртуальне успадкування.
Поняття множинного спадкування класу. Розподіл пам’яті при множинному спадкуванні. Віртуальне успадкування.
Лекція 12. Інформація о типі часу виконання.
Поняття механізму роботи RTTI. Доступ до інформації о типах даних та її використання. Динамічне та статичне перетворення типів.
Лекція 13. Шаблони.
Поняття шаблонів. Шаблоні функцій. Шаблоні класів. Успадкування з використанням шаблонів.
Лекція 14. Виключення.
Обробка виключень. Формування фільтрів при обробки виключень. Класи та ієрархія обробки виключень.
Лекція 15. Взаємодія з іншими мовами програмування.
Взаємодія з мовою асемблера. Виклик функцій C з програми на мові C++. Доступ до даних та функцій C++ з програми на мові C. Перейменування функцій, класів та шаблонів.
Лабораторні заняття
Лабораторна робота №1. Ознайомлення з середовищем розробки. Найпростіша програма на мові C.
Мета роботи: Навчитися працювати в інтегрованому середовищі розробки Dev C ++, створювати найпростіші консольні додатки, ознайомитися з функціями виведення інформації.
Лабораторна робота №2. Оператори умови і циклу в мові C.
Мета роботи: Навчитися використовувати різні види операторів циклу і умови при розробці програм на мові C.
Лабораторна робота №3. Функції і оператори вибору і переходу в мові C.
Мета роботи: Навчитися розробляти функції і використовувати оператори вибору і переходу при розробці програм на мові C.
Лабораторна робота №4. Структури, глобальні змінні, математичні функції і обробка математичних помилок в мові C.
Мета роботи: Вивчити зумовлені глобальні змінні; навчитися розробляти програми з використанням структур, математичних функцій і обробника математичних помилок на мові C.
Лабораторна робота №5. Робота з файлами і рядками на мові C.
Мета роботи: Вивчити функції мови, що використовуються для роботи з символьними масивами і введення / виводу в / з файл. Навчитися розробляти програми, що працюють з текстовими рядками і з файлами ОС на мові C.
Лабораторна робота №6, 7. Виклики функцій за вказівником і функції зі змінним числом параметрів на мові C.
Мета роботи: Навчитися працювати з покажчиками, використовувати їх при виклику функцій і розробляти і використовувати функції зі змінним числом параметрів на мові C.
Лабораторна робота №8. Файли, що включаються і області видимості, директиви препроцесора мови C.
Мета роботи: Навчитися використовувати директиви препроцесора для організації файлової структурою і управлінням областями видимості даних на мові C.
Лабораторна робота №9. Програма на мові C ++. Класи і потоки.
Мета роботи: Вивчити принципи об'єктно-орієнтованого програмування на мові C++. Навчиться розробляти програми, використовуючи класи об'єктів і працювати з потоками введення / виведення.
Лабораторна робота №10. Програма на мові C ++. Перевантаження і дружні функції.
Мета роботи: Вивчити принципи об'єктно-орієнтованого програмування на мові C++. Навчиться розробляти програми, використовуючи класи об'єктів, що містять дружні функції і розробляти власні версії операторів потоків введення / виведення.
Лабораторна робота №11. Програма на мові C ++. Класи, оператори і потоки.
Мета роботи: Вивчити принципи об'єктно-орієнтованого програмування на мові C++. Навчиться розробляти програми, використовуючи класи об'єктів і працювати з файловими потоками введення / виведення, шляхом перевизначення відповідних операторів.
Лабораторна робота №12. Програма на мові C ++. Класи. Спадкування. Віртуальні методи.
Мета роботи: Вивчити принципи побудови базових і дочірніх класів при розробці програм. Навчиться використовувати віртуальні методи при розробці класів.
Лабораторна робота № 13. Програма на мові C ++. Класи. Множинне і віртуальне успадкування.
Мета роботи: Вивчити принципи побудови базових і дочірніх класів при розробці програм. Навчиться використовувати множинне успадкування і віртуальні базові класи.
Лабораторна робота № 14. Програма на мові C ++. Обробка винятків.
Мета роботи: Вивчити принципи обробки виняткових ситуацій на мові C ++. Навчиться розробляти програми, що використовують безпечний код.
Лабораторна робота № 15. Програма на мові C ++. Шаблони.
Мета роботи: Вивчити принципи використання шаблонів і просторів імен. Навчиться розробляти програми, що дозволяють використовувати один код для роботи з різними типами даних.
Консультації здійснюються впродовж семестру згідно встановленого розкладу.
Індивідуальна робота
Для денної форми здобуття освіти
Розрахунково-графічна робота
Мета розрахунково-графічної роботи – набуття студентами практичних навичок самостійної розробки програмної системи.
Здобувач отримує завдання на першому тижні семестру на лабораторному занятті.
Пояснювальна записка містить 25-35 сторінок Кількість розділів – 4.
Змістовна послідовність виконання роботи.
1. Постановка завдання.
2. Проєктування програмного забезпечення з використанням мови С або С++.
3. Контрольний приклад.
4. Висновки.
Захист розрахунково-графічної роботи – протягом останнього навчального тижня семестру.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні
1) 14-ти лабораторних робіт. Лабораторні роботи виконуються з використанням засобів розробки DevC++ відповідно до мети та завдань. По результатах виконання кожної лабораторної роботи оформлюється і захищається відповідний протокол. Бездоганне виконання кожної лабораторної роботи №1 – 5 та №7 – 13 оцінюється у 2 балі, №6, 14 – у 3 балі;
2) розрахунково-графічної роботи. Бездоганне виконання оцінюється у 20 балів.
3) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі тестування.
Бездоганне виконання кожної модульної контрольної роботи становить 25 балів.
Підсумковий контроль – екзамен. Екзамен у письмовій формі. Максимальна оцінка, яку може отримати студент – 100 балів.

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

ПРН8. Володіти сучасними методами розробки програм і програмних комплексів та прийняття оптимальних рішень щодо складу програмного забезпечення, алгоритмів процедур і операцій.
ПРН9. Вміти створювати ефективні алгоритми для обчислювальних задач системного аналізу та систем підтримки прийняття рішень.
ПРН10. Знати архітектуру сучасних обчислювальних систем і комп’ютерних мереж.
ПРН13. Проектувати, реалізовувати, тестувати, впроваджувати, супроводжувати, експлуатувати програмні засоби роботи з даними і знаннями в комп’ютерних системах і мережах.

b322505 ▪ 2025