Дисципліна: Об`єктно-орієнтоване програмування
Обсяг дисципліни, годин (кредитів ЄКТС): 7 (210).
Мета дисципліни: надання теоретичних і практичних знань щодо сучасних наукових концепцій, понять, методів та технологій об‘єктно-орієнтованого програмування, дослідження властивостей і особливостей класів та об‘єктів, а також процесів створення працездатних програм
Завдання дисципліни:
- вивчити основи проєктування програмного забезпечення;
- вивчити технології об’єктно-орієнтованого програмування;
- вивчити прийоми роботи з візуальними середовищами програмування;
- набуття навичок розробки й тестування програмних продуктів функціонуючих під керуванням сучасних операційних систем; формування у студентів абстрактного мислення, яке повинне допомогти рішенню прикладних задач, пов’язаних з різноманітними галузями знань.
Попередні умови для вивчення даної дисципліни: «Вища математика», «Дискретна математика», «Теорія ймовірності», «Алгоритми та структури даних» та «Основи програмування».
Навчальні цілі дисципліни полягають у формуванні у студентів:
інтегративної компетентності:
Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати, експлуатувати, типове для спеціальності обладнання.
загальних компетентностей:
ЗК 1. Здатність до абстрактного мислення, аналізу та синтезу.
ЗК 2. Здатність застосовувати знання у практичних ситуаціях.
ЗК 3. Знання та розуміння предметної області та розуміння професійної діяльності.
ЗК 6. Здатність вчитися й оволодівати сучасними знаннями.
ЗК 8. Здатність генерувати нові ідеї (креативність).
фахових компетентностей:
СК 3. Здатність до логічного мислення, побудови логічних висновків, використання
формальних мов і моделей алгоритмічних обчислень, проєктування, розроблення й аналізу
алгоритмів, оцінювання їх ефективності та складності, розв’язності та нерозв’язності
алгоритмічних проблем для адекватного моделювання предметних областей і створення
програмних та інформаційних систем.
СК 8. Здатність проєктувати та розробляти програмне забезпечення із застосуванням різних парадигм програмування: узагальненого, об’єктно-орієнтованого, функціонального, логічного, з відповідними моделями, методами й алгоритмами обчислень, структурами даних і механізмами управління.
Програмні результати навчання:
ПР 1 Застосовувати знання основних форм і законів абстрактно-логічного мислення, основ методології наукового пізнання, форм і методів вилучення, аналізу, обробки та синтезу інформації в предметній області комп'ютерних наук.
ПР 2 Використовувати сучасний математичний апарат неперервного та дискретного аналізу, лінійної алгебри, аналітичної геометрії, в професійній діяльності для розв’язання задач теоретичного та прикладного характеру в процесі проєктування та реалізації об’єктів інформатизації.
ПР 9 Розробляти програмні моделі предметних середовищ, вибирати парадигму програмування з позицій зручності та якості застосування для реалізації методів та алгоритмів розв’язання задач в галузі комп’ютерних наук.
В результаті вивчення дисципліни студент повинен
знати:
- принципи побудови класів об'єктів та їх методів, основні типи класів та способи їх надбудови і взаємодії;
- правила побудови і основні елементи програми мовою С++;
- основні принципи ООП;
вміти:
- будувати та зображати різними способами функціональні та структурні схеми програмного забезпечення;
- оперувати моделями об'єктів (даними та методами) та створювати програмні засоби керування ними;
- програмувати на мові С++ та інших ООП;
- виконувати тестування та налагодження програми.
Зміст дисципліни (тематика):
Змістовий модуль 1. Основи об’єктно-орієнтованого аналізу, проєктування та програмування.
Тема 1. Об'єктно-орієнтований аналіз та проєктування.
Поняття об'єктно-орієнтованого аналізу, проєктування та програмування. Об'єктна модель предметного середовища, принципи її побудови. Основи об'єктно-орієнтованого проєктування мовою UML. Канонічні діаграми UML. Основи об'єктно-орієнтованої мови програмування, доповнення С++ до С.
Тема 2. Технологія об’єктно-орієнтованого програмування мовою С++.
Класи і об’єкти в мові С++. Абстрагування та інкапсуляція. Перевантаження операцій та функцій. Перетворення типів, що визначаються класом. Успадкування та ієрархії класів. Просте та множинне успадкування. Реалізація поліморфізму: віртуальні функції та поліморфічні кластери. Області дії та простори імен. Оброблення виняткових ситуацій.
Змістовий модуль 2. Розвиток об’єктних технологій в сучасних системах програмування.
Тема 3. Введення в узагальнене програмування.
Параметричний поліморфізм. Шаблони функцій. Шаблони класів.
Тема 4. Стандартні бібліотеки С++.
Потоковий ввід-вивід в програмах на С++. Ввід-вивід файлів. Стандартна бібліотека
шаблонів (STL). Алгоритми, контейнери та ітератори.
Тема 5. Сучасні технології програмування мовою С++.
Основи динамічного зв'язування. Введення в компонентне програмування.
Візуальне об'єктно-орієнтоване програмування в середовищі Visual Studio.Тема 1.
Види робіт: лекції, лабораторні, самостійні.
Форма підсумкового контролю: залік.
