Перейти до вмісту
Система сертифікації ІТ-дисциплін
Система сертифікації ІТ-дисциплін
  • Головна
  • Для ІТ-спеціалістів
  • Для викладачів
  • Силабуси
  • Пілот проєкту
  • Приєднатись до Kharkiv IT Cluster

Об’єктно-орієнтоване програмування

Home / / Об’єктно-орієнтоване програмування

Розробники та рецензенти

Заклад вищої освіти:

Компанія-рецензент 1:

Компанія-рецензент 2:

Валідація:

Опис зображення
Розробник навчальної програми:

Валентин Любченко - кандидат технічних наук, доцент кафедри "інформатики"

Базова інформація

Шифр та назва спеціальності:
122 - Комп'ютерні науки
Назва освітньо-наукової програми
Інформатика
Назва дисципліни
Об'єктно-орієнтоване програмування
Вид дисципліни
Основна
Блок дисципліни
Алгоритмізація і програмування
Кількість студентів
59
Курс/Семестр
2

Загальна інформація про дисципліну

Анотація
Курс охоплює основи об'єктно-орієнтованого програмування (ООП) на мові C++, включаючи ключові парадигми: інкапсуляцію, наслідування, поліморфізм. Студенти навчаться працювати з класами та об'єктами, використовувати конструктори, деструктори, абстрактні класи, інтерфейси та механізми перевантаження. Окрему увагу приділено шаблонній бібліотеці STL. Розглядаються основні контейнери (vector, list, set, map) та алгоритми STL, а також ефективне використання ітераторів і шаблонів. Також курс включає введення в патерни проєктування.
Анотація
Формування компетентностей щодо теоретичних і практичних знань в області об'єктно-орієнтованого програмування на мові C++. Студенти навчаються основним принципам ООП (інкапсуляція, наслідування, поліморфізм), розробці алгоритмів і програм на основі цього підходу, створенню класів та їх застосуванню для розв'язання задач. Вони також отримають практичні навички розробки програмного забезпечення з використанням сучасних інтегрованих середовищ розробки та стандартної бібліотеки шаблонів (STL).
Анотація
Лекції, лабораторні роботи, самостійна робота. Підсумковий контроль – іспит
Розподіл часу
Загальний обсяг (кредитів): 5; Лекції (занять): 15; Лабораторні (занять): 6; Практичні (занять): 3; Самостійна робота (годин): 80
Попередні дисципліни
-
Матеріально-технічне та програмне забезпечення дисципліни
Компілятор С++ (IDE): Clion, Visual Studio, xcode, dev-c++ тощо
Структура дисципліни
Теоретична складова Назва, перелік питань або анотація лекції Годин Практична складова Опис та приклад завдання, а також посилання на методичні матеріали Годин Інструменти, засоби та технології
  • Потокові класі мови С++.
Основні поняття об’єкту, на прикладі рядків мови С++. Рядки мови С++ std::string: будова, основні методи. Ідея застосування об’єкту на прикладі рядка string. 2 Знайти та замінити усі цифрові символи на символ ‘*’ Перевірити скільки слів складається тільки з цифр. на лекції Clion/ Visual Studio/ xCode
Потокові класи ostream, istream: методи форматування,  методи обміну з потоками, маніпулятори. Створення власних маніпуляторів. Перевантаження потоків для власних типів 2 Нехай у масиві структур зберігатиметься інформація про успішність студентів, яку необхідно вивести на екран у зручному для користувача вигляді Petrov........._____3.500 Sidorov........_____1.667 Створити власний маніпулятор на лекції Clion/ Visual Studio/ xCode
Файлові (ifstream, ofstream) та рядкові потоки (stringstream): текстові та бінарні файли, створення потоку в оперативній пам’яті. 2 Підрахувати скільки символів/слів/рядків у файлі.  Запис та читання структури Point  з двома полями x та y в текстовий та бінарний файл. Створити функцію запису та читання в потік, застосувати її для файлового та рядкового потоку. на лекції Clion/ Visual Studio/ xCode
  • Клас, як реалізація інкапсуляції ООП в С++
Основні постулати ООП: інкапсуляція, успадкування, поліморфізм. Поняття класу в С++, як реалізація ООП. Загальний синтаксис.  Поля та методи класу.  Специфікатори доступу.  Статичні поля, статичні методи. 2 Приклад класу TData з полями year, month, day. Реалізація інкапсуляції: створення методів геттери та сеттери. на лекції Clion/ Visual Studio/ xCode
Конструктори, деструктори.  Представлення об'єкта в пам'яті, прихований покажчик this 2 Розширення класу TData усіма видами конструкторів, деструктором. на лекції Clion/ Visual Studio/ xCode
Перевантаження унарних  операції, перевантаження бінарних операцій. Перевантаження операції присвоєння, індексації, приведення до типу, операція () 2 Клас MyInt з полем data. Перевантажити префіксну і постфіксну операцію ++ методами класу. Перевантажити префіксну і постфіксну операцію – зовнішніми функціями.  Клас Tarr, який зберігає динамічний масив. Перевантажити операцію присвоїти, індексацію. Перевантажити приведення до типу, як середнє арифметичне на лекції Clion/ Visual Studio/ xCode
  • Успадкування та поліморфізм
Просте та множинне успадкування. Віртуальне успадкування. Порядок виклику конструкторів та деструкторів при успадкуванні. Передача параметрів конструктору базового класу. 2 Створення базового класу Base з усіма типами конструкторів. Створення класу Delivered з явним викликом деструкторів базового класу. на лекції Clion/ Visual Studio/ xCode
Поліморфізм. Віртуальні методи класу.  Абстрактні класи.  Раннє та пізнє зв’язування.  Механізм реалізації пізнього зв’язування 2 Розробити клас Monstr  з полями life та power, з методом hit (з перевіркою, що монстр не може бити себе), чисто віртуальними методами draw. Реалізувати класи нащадки Rabbit та Dragon. на лекції Clion/ Visual Studio/ xCode
Множинне успадкування. Порядок створення та видалення об'єктів і виклики конструкторів. 1 Розробити базові класи Animal та Pet, а також реалізувати клас-нащадок Dog, який об'єднує функціональність обох базових класів. Клас Dog представляє собою домашнього улюбленця, який має загальні властивості і поведінку тварин. Clion/ Visual Studio/ xCode
Агрегація, композиція.  Дружні функції і класи. 1 Реалізувати клас Point. LineComposition, який включає два об'єкти Point. LineAgregation який агрегує два об'єкти Point. на лекції Clion/ Visual Studio/ xCode
Шаблонні класи (template). Спеціалізація шаблонного класу.  Наслідування від шаблонного класу 2 Реалізувати шаблонний клас Data, який зберігає довільний дип. на лекції Clion/ Visual Studio/ xCode
Оператори приведення типів мови С++ (static_cast dynamic_cast, const_cast, reinterpret_cast). Динамічна ідентифікація типу typeid 2 Приклади застосування static_cast для стандартних типів та неполіморфних класів. Приклади застосування const_cast для зняття обмеження константності покажчика/посилання. Перетворення адреси long у вказівник на структуру кольору за допомогою reinterpret_cast. Реалізувати ієрархію класів Animal, Cat, Dog. Реалізувати безпечне приведення до типів за допомогою dynamic_cast. Перевірка типу переданого об’єкту у функцію за допомогою typeid. на лекції Clion/ Visual Studio/ xCode
  • Введення до патернів проєктування
Поняття патернів проєктування.  Огляд патернів: 
  • Singleton (Одинак), 
  • Factory Method (Фабричний метод), 
  • Observer (Спостерігач),
  • Strategy (Стратегія), 
  • Command (Команда).
Singleton: Приклад клас Log, який забезпечує збереження та запис логів додатка і гарантує, що існує лише один екземпляр цього класу в програмі. Factory Method: Приклад генерація різних типів документів: TextDocument, SpreadsheetDocument, PresentationDocument. Реалізувати фабричний метод для створення екземплярів документів в залежності від типу, переданого в параметрах методу фабрики. Observer: Приклад системи для моніторингу погоди, що включає клас WeatherStation для визначення погодних умов і класи підписників (DisplayCurrentConditions, DisplayForecast, DisplayStatistics), які автоматично оновлюються про зміни у WeatherStation. Strategy: Приклад системи для обробки платіжних транзакцій, яка включає клас PaymentProcessor. Приклад реалізації різних стратегій обробки платежів: кредитною карткою, PayPal, банківським переказом, як окремі класи. Застосування патерну Strategy для можливості динамічного вибору стратегії оплати під час виконання програми. Command: Приклад системи управління замовленнями в онлайн-магазині, яка включає клас Order. Реалізовані команди для створення нових замовлень, видалення та оновлення статусу існуючих замовлень. Кожна команда реалізована як окремий клас, що виконує інтерфейс Command. Використано паттерн Command для можливості обробки команд як об'єктів, здатних до передачі, зберігання та скасування в системі управління замовленнями.
  • Стандартна бібліотека шаблонів класів (STL)
Послідовний контейнер  vector,  list, deque, структура, основні методи. Ітератори: потокові, вставки Створити вектор/список/чергу з довільними об’єктами. Приклади запису та читання через ітератор. Приклад застосування і тератора вставки при копіюванні з одного контейнера в інший. на лекції Clion/ Visual Studio/ xCode
Асоціативні контейнери map, multimap set, multiset, biset.  Підрахувати частоту повторення слів у файлі 1, за винятком слів вказаних у файлі 2 на лекції Clion/ Visual Studio/ xCode
Алгоритми STL: Не модифікуючі, модифікуючі, зв’язані з сортуванням Приклади застосування алгоритмів, відповідно до лабораторного завдання  на лекції Clion/ Visual Studio/ xCode
Теми та завдання для самостійної роботи
ЗАВДАННЯ ДО ЛАБОРАТОРНИХ РОБІТ
Потокові класи та рядки мови С++ 4 Варіант 1  Виконати варіанти завдань лабораторної роботи за умови, що вхідні дані  зберігаються в рядковому потоку std::stringstream.На один об’єкт відводиться один рядок. Поля відділені крапка з комою (‘;’). Кожне завдання реалізувати у вигляді функції. Реалізувати перевантаження потоку.Результати обробки вхідних даних необхідно зберегти в текстовий файл результатів.Кожне завдання оформити у вигляді окремою функцією. Всі об’явлення винести в окрему іменовано область.Настроювання потоку організувати у вигляді власних маніпуляторів.Необхідно зчитати вхідні дані, вивести їх на екран і в файл у форматованому вигляді: текстове поле структури повинне бути вирівняне по лівому полю і займати 15 знакомісць, числове поле повинне бути вирівняне по правому полю і займати 8 знакомісць. Символ заповнювач «.», наприклад: Сидоров................................3 Максименко.............................5 Варіант 1  Описати структуру з іменем WORKER, яка містить наступні поля: прізвище та ініціали робітника; назва посади; рік зайняття посади. Написати програму, яка виконує наступні дії:
  • зчитування даних з рядкового потоку в масив, який складається структурами типу WORKER; 
  • впорядкувати записи за алфавітом; 
  • виведення на дисплей та у файл прізвищ робітників, стаж роботи в організації яких перевищує значення введене з клавіатури; якщо таких робітників немає, вивести відповідне повідомлення. 
  • реалізувати пошук інформації за першими літерами прізвища
Clion/ Visual Studio/ xCode
Основи розробки класів на мові С++ 4 Завдання 6  Розробити клас, що представляє студента. Студент характеризується ім'ям, прізвищем, групою і набором іспитів, які він складав. Іспит характеризується назвою предмета, оцінкою студента по ньому і датою складання (рік, семестр). Група характеризується курсом і факультетом.  Розробити методи які дозволяють: 1. дізнатися повне ім'я студента (ім'я + прізвище) і його курс 2. дізнатися, чи вчиться він на заданому факультеті 3. дізнатися найвищу оцінку серед усіх іспитів з даного предмету 4. додати йому оцінку за іспит (назва передається як параметр) 5. видалити для нього оцінку за іспит (назва передається як параметр) 6. дізнатися число іспитів, які він склав зі вказаною оцінкою 7. дізнатися його середній бал за вказаний семестр Clion/ Visual Studio/ xCode
Наслідування, поліморфізм, інкапсуляція, виключення 4 Виконати варіант завдання з лабораторної роботи 2, створивши шаблонний базовий абстрактний клас у якому реалізовані створення та операції з динамічним шаблонним масивом, об’явлені чисто віртуальні методи вводу виводу. У класі нащадку, який створений успадкуванням до заданого типу (відповідної структури), винести решту методи. Продемонструвати роботу з конструкторами базового та успадкованого класів Clion/ Visual Studio/ xCode
Патерни проєктування  4 Створити програму відповідного варіанту лабораторної роботи з використанням патернів проєктуванняю  Варіант 1  Створити програму до управління бібліотекою, яка включає такі функції:
  1. Реалізуйте класи для представлення книг, користувачів бібліотеки і процесу видачі книг.
  2. Використовуйте патерн Singleton для класу, що зберігає інформацію про усі наявні книги.
  3. Застосуйте патерн Factory Method для створення різних типів користувачів бібліотеки (наприклад, студенти, викладачі).
  4. Використовуйте патерн Observer для відстеження стану книг у бібліотеці і повідомлення користувачам про зміни (додання нових книг, видачу книги і т.д.).
  5. Реалізуйте патерн Command для створення команд, які дозволяють резервувати книги, оновлювати їх стан і відстежувати історію дій користувачів з книгами.
Clion/ Visual Studio/ xCode
Контейнери та алгоритми стандартної бібліотеки С++ 4 Створити контейнер об'єктів класів, реалізованих в лабораторній роботі 5 (студентів, гуртожитків, викладачів і т.д.) Контейнер реалізувати як вектор. Провести певні дії з цим контейнером. Не застосовувати цикли, використовувати тільки відповідні стандартні алгоритми. Перетворити класи для вирішення даного завдання. Варіант 1  Необхідні завдання такі: 1. забезпечити для контейнера можливість зчитування з файлу і запису в файл з використанням ітераторів потоків. 2. забезпечити для контейнера сортування за прізвищем студента (це повинно бути сортування за замовчуванням), а також сортування за його середнім балом за останню сесію. 3. винести в окремий вектор всіх студентів, починаючи зі студента із середнім балом вищим, ніж 4 4. зберегти всі середні бали студентів з вектора з кроку 3 в окремому векторі 5. дізнатися, скільки в векторі з кроку 4 значень середнього бала вище заданого 6. знайти середній бал для всіх студентів з використанням accumulate () 7. перевірити, чи входить вектор, отриманий на кроці 3, у вихідний вектор як підпослідовність. Clion/ Visual Studio/ xCode
Асоціативні контейнери 4 Варіант 1  Розробити програму, яка зчитує текст і підраховує число повторень кожного слова, за винятком слів, зазначених у списку. Слова в тексті розділяються пробілами. Підрахунок числа повторень слова реалізовувати за допомогою асоціативного масиву, список слів для виключення реалізовувати за допомогою множини. Кожен раз, коли зустрілося слово зі списку, виводити повідомлення. Створити набір функцій для виведення результатів і винести їх в окремий файл. Оголошення функцій винести в заголовний (header) файл. Вихідні дані зчитати з файлу і вивести в файл. Clion/ Visual Studio/ xCode
ТЕМИ ТА ЗАВДАННЯ ДЛЯ САМОСТІЙНОЇ РОБОТИ
№ Назва та опис завдання Методи контролю та критерії оцінювання Годин
1 Опрацювати тему:  Потокові класі мови С++ Виконання лабораторної роботи. Опитування в рамках захисту лабораторної роботи 10
2 Опрацювати тему: Клас, як реалізація ООП в С++ Виконання лабораторної роботи. Опитування в рамках захисту лабораторної роботи 20
3 Опрацювати тему : Успадкування Виконання лабораторної роботи. Опитування в рамках захисту лабораторної роботи 20
4 Опрацювати тему : Стандартна бібліотека шаблонів класів (STL) Виконання лабораторної роботи. Опитування в рамках захисту лабораторної роботи 30
Проєкт
Непередбачено
Рекомендовані джерела інформації та навчальні матеріали
Основні
№ Назва До теми (вказати номер)
1 Основи програмування мовою С++: Навчальний посібник /Є.П. Путятін, В.А. Любченко, О.А. Кобилін, Д.О. Руденко, Д.С. Пелешенко — Х.: ТОВ «Компанія СМІТ», 2018. —  260 с 2,3
2 C/C++ Programmer's Reference by Herbert Schildt (Fourth Edition) 1, 2, 3, 4
3 The C++ Programming Language (4th Edition) Bjarne Stroustrup 1, 2, 3, 4
4 Бублик В. В. Об’єктно-орієнтоване програмування : підручник. К.: ІТкнига, 2015. 624 с.  1, 2, 3, 4
5 Lafore R. Object-Oriented Programming in C++. 4th ed. Sams Publishing; 2002. 1040 pages. 1, 2, 3, 4
6
7
8
9
10
Додаткові
№ Назва До теми (вказати номер)
1 Effective Modern C++ (2014) By Scott Meyers 3,4
2 Balagurusamy, E. Object-Oriented Programming with C++. 4th ed., McGraw-Hill Education, 2008. 608 pages. 1, 2, 3, 4
3 Farrell, Joyce. Object-Oriented Programming Using C++, Cengage Learning, 2008, 816 pages
4 Gamma, Erich, et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. 
Контрольні заходи
Назва та опис Методи контролю та критерії оцінювання
Оцінка лабораторних робіт З кожної лабораторної роботи студент оформлює звіт, що містить завдання, результати його виконання та висновки. Максимальна оцінка по 10 балів 6*10 = 60
Тестування Тест в системі dl.nure : максимальний бал 40
Комбінаційний іспит Письмовий іспит. Оцінка 100 балів
Результати навчання
Підсумкова оцінка складається 60% від успішності у семестрі + 40% від письмового іспиту

Зв'язок з ринком праці

Спеціальність/професія, підготовці до діяльності в якій читається курс:
С++ Developer
Посилання на вакансії (понад 3),
  1. https://www.work.ua/jobs/5362493/
  2. https://www.work.ua/jobs/4939220/
  3. https://www.work.ua/jobs/2969995/
  4. https://jobs.dou.ua/companies/visonic-a-tyco-international-company/vacancies/170857/
  5. https://jobs.dou.ua/companies/ozzylogik-ltd/vacancies/267211/
 
Перелік компетентностей із вказаних як вимоги до вакансії, які набувають студенти, в процесі проходження дисципліни.
Основи ООП  в мові С++ Навички роботи з бібліотекою шаблонів STL Застосування алгоритмів STL

Інструменти оцінювання результатів навчання за дисципліною

Об'єкт оцінювання (знання методів та принципів, практичні навички,  командна робота тощо) Методи контролю (тести, виконання поточних практичних завдань та їх форма: написання коду, створення діаграми Гантта, створення прототипу тощо) Інструмент оцінювання (доступ до результатів тесту, гостьова лекція, посилання на виконані завдання, посилання на проєкт, присутність на захисті проєктів, доступ до запису захисту тощо)
Лабораторні роботи Написання коду на С++, відповідно до завдання Захист лабораторних робіт 
Тестування Відповіді на запитання Результати тестування в dl.nure Приклад тесту за посиланням https://docs.google.com/document/d/1JqESPeMTl3FqphK6N8n9URBQywQ3QoG7/edit?usp=sharing&ouid=101968586042068355797&rtpof=true&sd=true
Комбінаційний іспит Написання коду, відповіді на теоретичні запитання Виконати (письмово) та захист завдання Приклад завдання на іспит https://drive.google.com/file/d/1frPCdkFwcaI8epn_j_8xjnMFVlbQnwzY/view?usp=sharing

Залишити відповідь Скасувати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Недавні записи

  • Організаційна зустріч 23.06.2025
  • Старт нового сезону сертифікації — 2025

Останні коментарі

  1. polina до Криптографія та стеганографія
  2. olena до Організаційна зустріч 23.06.2025
  3. admin до Технології розробки мобільних додатків

Категорії

  • Записи

Сторінки

  • Головна
  • Для викладачів
  • Для ІТ-спеціалістів
  • Інструкція для викладача
  • Пілот проєкту
  • Приєднатись до Kharkiv IT Cluster
  • Силабуси

Архіви

  • Організаційна зустріч 23.06.2025
  • Старт нового сезону сертифікації — 2025

Календар

Квітень 2026
Пн Вт Ср Чт Пт Сб Нд
 12345
6789101112
13141516171819
20212223242526
27282930  
« Чер    

Тема WordPress Project Management від Misbah WP | Працює на WordPress