Об'єктно-орієнтоване програмування
Спеціальність: Комп'ютерні науки (Проектування і програмування інтелектуальних систем та пристроїв)
Код дисципліни: 6.122.12.O.008
Кількість кредитів: 7.00
Кафедра: Системи автоматизованого проектування
Лектор: к.т.н., ст.викл. каф. САП Оборська Оксана Володимирівна
Семестр: 2 семестр
Форма навчання: денна
Завдання: Забезпечити студентам здобуття поглиблених теоретичних та практичних знань, умінь та розуміння принципів і методів об’єктно-орієнтованого програмування для формування навичок алгоритмічного мислення, освоєння процесів алгоритмізації та їхньої реалізації на обчислювальних машинах, успішного виконання професійних обов’язків за спеціальністю «Комп’ютерні науки» та підготовки студентів для подальшого навчання.
Результати навчання: Внаслідок вивчення дисципліни “Об’єктно-орієнтоване програмування” студенти повинні:
- знати основи об’єктно-орієнтованого програмування;
- володіти сучасними методами та засобами об’єктно-орієнтованого програмування з використанням середовища Visual Studio;
- вміти обробляти виключення і бібліотеки класів;
- використовувати технології об’єктно-орієнтованого програмування.
- володіти принципами побудови інформаційних моделей. Формування теоретичної бази знань студентів з мови програмування C/C++;
- ознайомитись з принципами пошуку помилок в програмах і методами їх відлагодження та тестування;
- набути практичних навичок роботи з типовими задачами програмування і методами їх рішення.
- оцінювати отримані результати та аргументовано захищати їх під час здачі звіту.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: пререквізити: алгоритмізація та програмування ч.1, алгоритмізація та програмування ч.2;
кореквізити: дискретна математика.
Короткий зміст навчальної програми: Курс “Об’єктно-орієнтоване програмування” включає таке коло питань: Основи об’єктно-орієнтованої мови програмування С++. Історія виникнення. Відмінності мови С та С++ не пов’язані з
використанням об’єктів. Порівняння функціонального та
об’єктного підходу. Об’єктно – орієнтоване програмування.
Головні принципи об’єктного підходу. Абстрагування. Обмеження
доступу. Модульність. Ієрархія. Поняття класів та об'єктів. Конструктори та деструктори.
Протоколи опису класу. Створення об’єктів. Доступ до полів та
методів. Використання специфікаторів доступу класу. Види
класів. Контейнерні, вкладені, локальні. Конструктори та
деструктори. Правила визначення конструкторів. Методи
ініціалізації елементів у конструкторах. Порядок виклику
конструкторів та деструкторів. Статичні члени класу. Перевантаження функцій та операцій. Унарні та бінарні
оператори. Класи потоків С++. Операції поміщення та вилечення.
Передресація введення та виведення. Визначення потокових
операцій як дружніх. Функції керування процесом I/O. Прапорці
форматування. Маніпулятори. Файлові потоки.
Обробка виняткових ситуацій. Засоби керування, викидання
об’єктів, структурне керування винятками. Успадкування (одинарне, множинне). Механізм успадкування.
Керування доступами. Дружні класи та дружні функції.
Інкапсуляція, наслідування, поліморфізм. Віртуальні функції.
Чисті віртуальні функції та абстрактні базові класи. Розміщення
VPTR та таблиці VMT у пам’яті. Віртуальні деструктори.
Бібліотека стандартних шаблонів. Стек, списки, черги, деки,
асоціативні відображення, множини. Рядки символів, вектори,
матриці, алгоритми, масиви значень.
Бібліотека стандартних шаблонів. Параметризовані функції.
Параметризовані класи. Контейнери.
API – функції для управління потоками та процесами.
Синхронізація потоків у Windows.
DLL (Dynamic-Linc Library). Qt Creator. Огляд властивостей
DLL. Створення DLL і застосування Qt. Qt Creator - основні
властивості. Засоби UML. Об’єктно-орієнтований аналіз та проектування предметного середовища засобами UML.
Патерни та антипатерни проектування. Особливості роботи.
Опис: Історія виникнення. Відмінності мови С та С++ не пов’язані з використанням об’єктів. Порівняння функціонального та об’єктного підходу. Об’єктно – орієнтоване програмування. Головні принципи об’єктного підходу. Абстрагування. Обмеження доступу. Модульність. Ієрархія.
Поняття класів та об'єктів. Конструктори та деструктори. Протоколи опису класу. Створення об’єктів. Доступ до полів та методів. Використання специфікаторів доступу класу. Види класів. Контейнерні, вкладені, локальні. Конструктори та деструктори. Правила визначення конструкторів. Методи ініціалізації елементів у конструкторах. Порядок виклику конструкторів та деструкторів. Статичні члени класу.
Перевантаження функцій та операцій. Унарні та бінарні оператори.
Класи потоків С++. Операції поміщення та вилечення. Передресація введення та виведення. Визначення потокових операцій як дружніх. Функції керування процесом I/O. Прапорці форматування. Маніпулятори. Файлові потоки.
Обробка виняткових ситуацій. Засоби керування, викидання об’єктів, структурне керування винятками.
Успадкування (одинарне, множинне). Механізм успадкування. Керування доступами. Дружні класи та дружні функції.
Інкапсуляція, наслідування, поліморфізм. Віртуальні функції. Чисті віртуальні функції та абстрактні базові класи. Розміщення VPTR та таблиці VMT у пам’яті. Віртуальні деструктори.
Бібліотека стандартних шаблонів. Стек, списки, черги, деки, асоціативні відображення, множини. Рядки символів, вектори, матриці, алгоритми, масиви значень.
Бібліотека стандартних шаблонів. Параметризовані функції. Параметризовані класи. Контейнери.
API – функції для управління потоками та процесами. Синхронізація потоків у Windows.
DLL (Dynamic-Linc Library). Qt Creator. Огляд властивостей DLL. Створення DLL і застосування Qt. Qt Creator - основні властивості.
Засоби UML. Об’єктно-орієнтований аналіз та проектування предметного середовища засобами UML.
Патерни та антипатерни проектування. Особливості роботи.
Методи та критерії оцінювання: - поточний контроль (45%): письмові звіти з лабораторних робіт, усне опитування;
- підсумковий контроль (55%, екзаменаційний контроль): тестування (45%), усна компонента (10%).
Критерії оцінювання результатів навчання: 8 лабораторних робіт по 5 балів (всього 40 балів)
50 балів письмова робота
10 балів усна компонента
Порядок та критерії виставляння балів та оцінок: 100-88 балів - атестований з оцінкою «відмінно» - Високий рівень: здобувач освіти демонструє поглиблене володіння поняттєвим та категорійним апаратом навчальної дисципліни, системні знання, вміння і навички їх практичного застосування. Освоєні знання, вміння і навички забезпечують можливість самостійного формулювання цілей та організації навчальної діяльності, пошуку та знаходження рішень у нестандартних, нетипових навчальних і професійних ситуаціях. Здобувач освіти демонструє здатність робити узагальнення на основі критичного аналізу фактичного матеріалу, ідей, теорій і концепцій, формулювати на їх основі висновки. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку, самостійної науково-дослідної діяльності, що реалізується за підтримки та під керівництвом викладача. 87-71 балів - атестований з оцінкою «добре» - Достатній рівень: передбачає володіння поняттєвим та категорійним апаратом навчальної дисципліни на підвищеному рівні, усвідомлене використання знань, умінь і навичок з метою розкриття суті питання. Володіння частково-структурованим комплексом знань забезпечує можливість їх застосування у знайомих ситуаціях освітнього та професійного характеру. Усвідомлюючи специфіку задач та навчальних ситуацій, здобувач освіти демонструє здатність здійснювати пошук та вибір їх розв’язання за поданим зразком, аргументувати застосування певного способу розв’язання задачі. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку. 70-50 балів - атестований з оцінкою «задовільно» - Задовільний рівень: окреслює володіння поняттєвим та категорійним апаратом навчальної дисципліни на середньому рівні, часткове усвідомлення навчальних і професійних задач, завдань і ситуацій, знання про способи розв’язання типових задач і завдань. Здобувач освіти демонструє середній рівень умінь і навичок застосування знань на практиці, а розв’язання задач потребує допомоги, опори на зразок. В основу навчальної діяльності покладено ситуативність та евристичність, домінування мотивів обов’язку, неусвідомлене застосування можливостей для саморозвитку. 49-00 балів - атестований з оцінкою «незадовільно» - Незадовільний рівень: свідчить про елементарне володіння поняттєвим та категорійним апаратом навчальної дисципліни, загальне уявлення про зміст навчального матеріалу, часткове використання знань, умінь і навичок. В основу навчальної діяльності покладено ситуативно-прагматичний інтерес.
Рекомендована література: Базова
1. Powers L., Snell M. Microsoft Visual Studio 2015 Unleashed 3th Edition. — Sams Publishing, 2015. — 1320 p. — ISBN-10: 0672337363, ISBN-13: 978-0672337369.
2. Penberthy W. Beginning ASP.NET for Visual Studio 2015 Wrox, 2016. — 792 p. — ISBN: 978-1-119-07742-8.
3. Бублик В.В. Об’єктно-орієнтоване програмування Підручник. — К.: ІТкнига, 2015. — 624 с.: іл.
Допоміжна
1. Методичні вказівки для виконання лабораторних робіт з курсу “Об’єктно-орієнтоване програмування” для спеціальності 122 “Комп’ютерні науки” / Укл.: О.В. Оборська, В.І. Каркульовський, Н.Б. Яворський – Національний університет «Львівська політехніка», Львів, 2021. – 127 с.
Інформаційні ресурси
C++ Tutorial [Електронний ресурс] // Офіційний сайт Tutorialspoint. – Режим доступу : http://www.tutorialspoint.com/cprogramming.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).