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

Спеціальність: Комп'ютерні науки (Проектування і програмування інтелектуальних систем та пристроїв)
Код дисципліни: 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. Патерни та антипатерни проектування. Особливості роботи.
Методи та критерії оцінювання: - поточний контроль (45%): письмові звіти з лабораторних робіт, усне опитування; - підсумковий контроль (55%, екзаменаційний контроль): тестування (45%), усна компонента (10%).
Рекомендована література: - Страуструп Б. Язык программирования Си++: Пер. с англ. – М.: Радио и связь, 1991.-352с. - Прата Стивен. Язык программирования С++. Лекции и упражнения. Учебник: пер. С англ./ Стивен Прата – СПб.: OOO<<ДиаСофтЮП>>, 2005. – 1104 c. - Харви Дейтел, Пол Дейтел. Как программировать на С++, 2001. – 1007 с.(електронний варіант) - Аверкин В.П., Бобровський А.І., Веснич В.В., Радушинський В.Ф., Хомоненко А.Д. Программирование на С++, 2003. – 249 с.(електронний варіант) - Шилдт Г. Теория и практика С++: пер. с англ. – СПб.: BHV – Санк-Петербург, 1996. – 416 с. - Павловская Т. А. С/С++. Программирование на языке высокого уровня / Т. А. Павловская. – СПб. : Питер, 2007. – 461 с.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).