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

Програмування Ч.2 (Об’єктно-орієнтоване програмування)

Home / / Програмування Ч.2 (Об’єктно-орієнтоване програмування)

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

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

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

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

Валідація:

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

Наталія Стяглик - канд.пед.наук, доцент, завідувач кафедри інформаційних технологій та математичного моделювання

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

Шифр та назва спеціальності:
125 - Кібербезпека та захист інформації
Назва освітньо-наукової програми
Системи технічного захисту інформації, Управління інформаційною безпекою
Назва дисципліни
Програмування Ч.2 (Об’єктно-орієнтоване програмування)
Вид дисципліни
Основна
Блок дисципліни
Алгоритмізація і програмування
Кількість студентів
15
Курс/Семестр
2

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

Анотація
Ця дисципліна пропонує глибоке вивчення об'єктно-орієнтованого програмування (ООП) з використанням мови програмування C++. Студенти отримають знання щодо основних концепцій ООП, таких як класи, об'єкти, методи; сформують навички написання програмного коду з урахуванням принципів ООП: успадкування, поліморфізму та інкапсуляція; вдосконалять практичне застосування ООП в розробці програмного забезпечення. Курс включає в себе також реалізацію та застосування основних структур даних та класичних алгоритмів, що використовуються в програмуванні мовою C++. Студенти також отримають можливість вдосконалити свої навички програмування шляхом вирішення практичних завдань і розробки курсового проєкту.
Анотація
Підготовка фахівців, здатних формалізувати завдання до розробки програмного забезпечення, складати алгоритми виконання задач, реалізовувати програмний код, спираючись на принципи об’єктно-орієнтованого підходу
Анотація
Лекції, лабораторні роботи, практичні роботи, самостійна робота, консультації (10 год). Підсумковий контроль – іспит
Розподіл часу
Загальний обсяг (кредитів): 0; Лекції (занять): 24; Лабораторні (занять): 16; Практичні (занять): 8; Самостійна робота (годин): 92
Попередні дисципліни
Програмування Ч.1.
Матеріально-технічне та програмне забезпечення дисципліни
-
Структура дисципліни
Теоретична складова Назва, перелік питань або анотація лекції Годин Практична складова Опис та приклад завдання, а також посилання на методичні матеріали Годин Інструменти, засоби та технології
Розділ 1 –Об’єктно-орієнтоване програмування. Робота із власними класами
Тема 1. Принципи об’єктно-орієнтоване програмування. Принципи SOLID. Базові класи.  Абстракція, інкапсуляція, поліморфізм, успадкування. Єдина відповідальність, відкритість/закритість, підстановка Лісков, розділення інтерфейсів, інверсія залежностей. Поняття класу. Структура та вміст класу. Модифікатори доступу. Методи класу. Об’єкт класу. Екземпляр класу. Масив об’єктів. 2 Розробка програм з базовими класами. Приклад: Описати базовий клас. Даними-членами класу мають бути 4-5 полів. Методи-члени класу мають забезпечити виконання наступних дій: - введення даних з клавіатури; - виведення даних на екран; - сортування за абеткою; - пошук за якимось одним полем; - підрахунок середнього значення за числовим полем; - пошук за символьним полем; В програмі має бути створений масив об’єктів. Приклади вибору тематики базового класу: - студент (ПІБ, група, курс, середній бал успішності, ...); - авто (марка, модель, колір, рік випуску, ...); - книга (автор, назва, рік видання, кількість сторінок, ...); - викладач (ПІБ, дисципліна, кафедра, кількість годин навантаження, ...); - телефон (модель, колір корпусу, розмір екрана, вартість, ...); - .... 2
Тема 2. Конструктори та деструктори класу. Конструктор за замовченням, конструктор ініціалізації, конструктор копіювання. 2 Розробка класів з використанням конструкторів та деструкторів Приклад: Описати клас, який відтворює інтерфейс динамічного одновимірного масиву. Передбачити реалізацію в класі конструкторів: - за замовченням; - ініціалізації (з параметрами); Забезпечити наявність деструктора. Передбачити реалізацію методів: - заповнення масиву випадковими значеннями в діапазоні [А; В), де А та В вводяться користувачем з клавіатури; - відображення масиву на екрані; - сортування масиву за будь-яким алгоритмом; - пошук мінімального значення в масиві. 2
Тема 3. Статичні елементи класу. Статичні змінні- члени класу та статичні методи-члени класу. 2 Розробка класів з використанням статичних елементів Приклад (змінні): Побудувати клас, який генеруватиме унікальні ідентифікатори для кожного нового об'єкта. Для цього використати статичну змінну-член класу. Приклад (методи): Реалізувати клас, який містить статичні методи для виконання базових математичних операцій (додавання, віднімання, множення, ділення). 2
Тема 4. Перевантаження операторів. Перевантаження унарних операторів. Перевантаження бінарних операторів 2 Розробка програм з використанням перевантаження операторів. Приклад: Побудувати власний клас, який буде відтворювати процес використання типу даних "Комплексне число". Мають бути реалізовані наступні методи: ● конструктор за замовчуванням; ● конструктор ініціалізації; ● деструктор. Перевантажені оператори: ● введення даних з клавіатури; ● виведення даних на екран; ● операції над об'єктами: ○ додавання (сума двох комплексних чисел); ○ віднімання (різниця двох комплексних чисел); ○ множення двох комплексних чисел; ● операція інкременту, яка збільшує на 1 дійсну і уявну частини комплексного числа; ● операція декременту, яка зменшує на 1 дійсну і уявну частини комплексного числа. *Клас має бути збережений як файл бібліотеки. Інший файл має містити приклад використання створеного типу даних. 2
Тема 5. Дружні функції та класи. Поняття дружності. Дружні функції. Дружні методи. Дружні класи 2 Розробка програм з використанням дружніх функцій Приклад: Описати клас, який відтворює інтерфейс динамічного одновимірного масиву. За допомогою дружніх функцій реалізувати: - пошук елемента за значенням; - сортування масиву. Реалізувати клас, який за допомогою дружнього методу отримуватиме вибірку унікальних значень з початкового класу. 2
Тема 6. Зв’язки між об’єктами. Успадкування. Композиція, асоціація, агрегація, залежність. Успадкування класів. Просте та множинне успадкування. Особливості роботи конструкторів та деструкторів 4 Розробка програм з використанням простого та множинного успадкування. Приклад: Створити клас Animal та розширюючі його класи Dog, Cat, Horse. Клас Animal містить змінні food, location і методи makeNoise, eat, sleep. Метод makeNoise, наприклад, може виводити на консоль "Така тварина спить". Dog, Cat, Horse перевизначають методи makeNoise, eat. Додайте змінні до класів Dog, Cat, Horse, що характеризують лише цих тварин. Створіть клас Ветеринар, у якому визначте метод void treatAnimal(Animal animal). Нехай цей метод роздруковує food і location тварини, що прийшла на прийом. У методі main створіть масив типу Animal, в який запишіть тварин всіх типів, що є у вас. У циклі надсилайте їх на прийом до ветеринара. 4
Тема 7. Віртуальні методи класу. Чисто віртуальні методи. Абстрактні класи. Поняття віртуальності. Призначення віртуальних методів. Реалізація віртуальних та чисто віртуальних методів. Створення та використання абстрактних класів 2 Розробка програм з використанням віртуальних методів та абстрактних класів Приклад: Створити абстрактний клас "Правильний багатокутник", який буде містити чисто віртуальні методи визначення периметра та площі фігури. За допомогою успадкування створити класи "Трикутник", "Квадрат", "П'ятикутник", продемонструвати роботу всіх успадкованих методів.
Тема 8. Клас-виняток. 2 Розробка програм з використанням класів- винятків Приклад: Розробити клас “Calculator”, який виконує основні арифметичні операції (додавання, віднімання, множення, ділення). Метод divide(double numerator, double denominator) повинен виконувати ділення. Створити клас- виняток “DivideByZeroException”, який буде  кидатися, якщо знаменник дорівнює нулю. 2
Розділ 2 – Standard template library
Тема 9. Бібліотека шаблонів. Template. Standard template library. String, vector, deque, queue. Контейнери та ітератори. Операції з ітераторами. Контейнери string, vector, deque, queue. 2 Розробка програм з використанням контейнерів string, vector, deque. Приклад (string): Використовуючи контейнер string, розробити програму, яка буде - отримувати рядок, введений з клавіатури; - на довільну позицію рядка додавати підрядок із назвою вашої навчальної групи; - на початок рідка додавати ваше прізвище; - видаляти з рядка всі літери А, де А вводиться з клавіатури; - рахувати кількість лексем в рядку; - перевертати рядок в зворотному напрямку. Кожна дія має супроводжуватись виведенням на екран поточного стану рядка. Приклад (vector): Створити вектор, що містить елементи довільного класу. Додати новий елемент на випадкову позицію (позиція визначається за допомогою функції rand() в діапазоні кількості елементів вектора). Визначити розташування мінімального та максимального елемента вектора (в класі має бути реалізовано правило порівняння елементів). Перемістити всі елементи, що розташовані між мінімальним та максимальним (НЕ включаючи самі min та max) до нового вектору, видаливши їх з початкового. Приклад (deque): Реалізувати власну двоспрямовану чергу (deque), елементами якої є об’єкти типу Book, що містять інформацію про автора та назву книги у форматі string. Заповнення дека має відбуватись наступним чином: книга додається на початок, якщо прізвище її автора починається з голосної літери; і додається в кінець, якщо починається з приголосної літери. Обробка дека передбачає проходження по елементах поспіль, починаючи з першого та видалення тих елементів, назва книги в яких має непарну довжину. Приклад (queue): Реалізувати клас Клієнт, що характеризується прізвищем, датою звернення, категорією, яка в свою чергу забезпечує наявність/відсутність пільги. Сформувати список клієнтів. На основі сформованого списку побудувати дві черги — звичайну та пільгову. Показати вміст кожної черги на екрані 2
Тема 10. Контейнери list, stack, set та map. Робота з контейнерами Set та Map. Конструктори створення об’єктів. Основні методи роботи з контейнерами. 2 Розробка програм з використанням контейнерів Set та Map. Приклад (list): Розробити програму, яка містить: 1. формування списку з n рядків, використовуючи контейнер list; 2. видалення елементів, розташованих між мінімальним за довжиною та максимальним за  довжиною елементами включно, зі списку (згідно з позиціями розташування); 3. додавання на початок списку елементу, що містить ваше прізвище; 4. відображення вмісту контейнера після кожної з зазначених дій. Приклад (stack): Використовуючи контейнер stack: - сформувати стек з N випадкових цілих чисел; - виконати підрахунок кількості парних елементів; - розділити елементи початкового стека на два окремі (парні елементи та непарні елементи); - у стеку, що містить непарні значення, знайти елементи, які є простими числами та вивести їх на екран; - видалити з обох отриманих стеків елементи, що повторюються. Приклад (set): Напишіть програму для управління списком студентів, де кожен студент представлений об'єктом класу Student. Клас Student має містити такі атрибути: ім'я, прізвище та номер студентського квитка. Програма повинна виконувати наступні функції: Додавати нового студента до списку. Видаляти студента за номером студентського квитка. Перевіряти, чи є студент у списку за номером студентського квитка. Виводити список всіх студентів в алфавітному порядку за прізвищем. Для цього завдання доцільно використовувати контейнер set, щоб забезпечити унікальність номерів студентських квитків та автоматичне впорядкування. Приклад (map): Реалізувати телефонний довідник, в використовуючи контейнер map. Ключем має бути номер телефону абонента в форматі +38(0--)-------, перевірка коректності формату обов'язкова. Значенням має бути інформація про абонента, яка складається з Прізвища, ініціалів, дати народження в форматі --.--.--. Інформацію про абонента бажано реалізувати у вигляді об'єкта класу. Забезпечити виконання таких операцій: - додавання абонента; - видалення абонента; - редагування будь-яких даних про абонента; - вибірка абонентів, день народження яких припадає на місяць, введений з клавіатури; - пошук абонента за прізвищем та за номером телефону. 2
Тема 11. Створення власних шаблонів. Розробка та реалізація власних шаблонів функцій. Розробка та реалізація власних шаблонів структур даних 2 Розробка програм з використанням власних шаблонів Приклад: Створити шаблон класу для будь-якої структури даних (масив, список, черга, стек, дерево тощо). Шаблон класу має включати перевантажені конструктори, метод виведення та 1-2 методи обробки створеної структури даних. 2
Теми та завдання для самостійної роботи
Назва та опис завдання Методи контролю та критерії оцінювання
Тема 1. Принципи об’єктно-орієнтоване програмування. Принципи SOLID. Базові класи. Самостійне опрацювання лекційного матеріалу. опитування під час заняття перевірка результатів виконання практичної роботи
Тема 2. Конструктори та деструктори класу. Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 3. Статичні елементи класу. Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 4. Перевантаження операторів. Використання перевантажених операторів. Особливості організації перевантаження.  Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 5. Дружні функції та класи. Особливості використання дружніх функцій та методів. Самостійне опрацювання лекційного матеріалу опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 6. Зв’язки між об’єктами. Агрегація, композиція, асоціація. Успадкування Особливості використання модифікаторів доступу в процесі організації успадкування.  Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 7. Віртуальні методи класу. Чисто віртуальні методи. Абстрактні класи. Реалізація динамічних структур даних. Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 8. Клас-виняток. Самостійне опрацювання лекційного матеріалу. опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 9. Бібліотека шаблонів. Template. Standard template library. String, vector, deque, queue. Самостійне опрацювання лекційного матеріалу опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 10. Контейнери list, stack, set та map. Самостійне опрацювання лекційного матеріалу опитування під час заняття, перевірка результатів виконання практичної роботи
Тема 11. Створення власних шаблонів. Самостійне опрацювання лекційного матеріалу опитування під час заняття, перевірка результатів виконання практичної роботи
Проєкт
Назва та опис завдання Метод контролю та захисту
Курсова робота. Приклад завдання: В процесі роботи над курсовою роботою студентом має бути: - реалізований клас (клас Студент характеризується ім'ям, прізвищем, групою і набором іспитів, які він складав. Іспит характеризується назвою предмета, оцінкою студента по ньому і датою складання (рік, семестр). Група характеризується курсом і факультетом); - реалізований клас - група студентів (не менше 10 об'єктів); - реалізований клас - меню користувача для роботи з інформацією. Меню має передбачати вибір/введення команд (не менше 5 команд) користувачем із подальшим відображенням на екрані результату виконання; - збереження остаточного вмісту об’єктів класу Студент має відбуватися у текстовому файлі, кожен рядок - інформація про окремого студента. Приклади команд, які можуть бути реалізовані: додавання елемента вектора, видалення елемента вектора, пошук елемента по певному критерію, підрахунок середнього значення по певному параметру, відображення вмісту вектора, сортування вмісту вектора за певним критерієм тощо захист курсової роботи
Рекомендовані джерела інформації та навчальні матеріали
Основні
№ Назва До теми (вказати номер)
1 Stephen Prata. С++ Primer Plus II Part. Developer's Library – Addison-Wesley Professional, 2011. – 1440 р.
2 Stanley B. Lippman, Josée Lajoie, Barbara Moo. C++ Primer (5th Edition) 5th Edition, 2014, – 1118 р.
3 Bjarne Stroustrup. The C++ Programming Language Fourth Edition. – AddisonWesley ", 2013–1366 p..
4 Основи об’єктно-орієнтованого програмування : навч. посібник / Гришанович Т. О., Глинчук Л. Я.; ВНУ імені Лесі Українки. Електронні текстові дані (1 файл: 998 КБ). Луцьк : ВНУ імені Лесі Українки, 2022. – 120 с
5 Бублик В.В. Об’єктно-орієнтоване програмування: [Підручник] / В.В. Бублик. – К.: ІТкнига, 2015. – 624 с.: іл
Додаткові
№ Назва До теми (вказати номер)
1 Cisco Systems, Inc. [Електронний ресурс] / Офіційний сайт компанії Cisco Systems – Режим доступу : http://cisco.com – Заголовок з екрана
2 Платформа масових відкритих онлайн-курсів Prometheus – Режим доступу: https://prometheus.org.ua/
3 Уроки програмування на С++ [Електронний ресурс] Режим доступу : https://acode.com.ua/uroki-po-cpp/ – Заголовок з екрана
Контрольні заходи
Назва та опис Методи контролю та критерії оцінювання
Тестові завдання автоматизовані тести на платформі Moodle
Практичні завдання перевірка звітів про виконання
Курсова робота захист курсової роботи із демонстрацією результатів
Екзамен з дисципліни перевірка письмової роботи
Результати навчання
РНД 1 студент демонструє загальні знання в частині проектування структур даних та формування вимог до програмних додатків; РНД 2 студент демонструє вміння в частині складання алгоритмів та розробки програм з дотриманням принципів об’єктно-орієнтованого програмування; РНД 3 студент демонструє знання та вміння в частині розробки класів та методів; РНД 4 студент демонструє навички роботи з контейнерами та шаблонами.

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

Спеціальність/професія, підготовці до діяльності в якій читається курс:
С++ Developer
Посилання на вакансії (понад 3),
  1. https://recruitika.com/vacancies/cc-developer-star_way_media/
  2. https://recruitika.com/vacancies/junior-c-developer-game-dev--office-work-pushka-studios/
  3. https://recruitika.com/vacancies/programmist-s-4k-soft/
  4. https://recruitika.com/vacancies/juniormiddle-c-developer-avmap-ukraine-llc/
  5. https://jobs.dou.ua/companies/streamline-ukraine/vacancies/285512/?from=list_hot
  6. https://jobs.dou.ua/companies/ozzylogik-ltd/vacancies/285412/
Перелік компетентностей із вказаних як вимоги до вакансії, які набувають студенти, в процесі проходження дисципліни.
знання та вміння програмування мовою С++, розуміння принципів ООП

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

Об'єкт оцінювання (знання методів та принципів, практичні навички,  командна робота тощо) Методи контролю (тести, виконання поточних практичних завдань та їх форма: написання коду, створення діаграми Гантта, створення прототипу тощо)
Знання, вміння за темами - виконання поточних практичних робіт у формі написання коду; - виконання тестових завдань
Розуміння принципів побудови об’єктно-орієнтованих програм, практичні навички розробки програм написання курсової роботи

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

Ваша 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