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

Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.009
Кількість кредитів: 9.00
Кафедра: Програмне забезпечення
Лектор: доцент Коротєєва Тетяна Олександрівна
Семестр: 2 семестр
Форма навчання: денна
Мета вивчення дисципліни: Ознайомити студентів з різними моделями структур даних, які зустрічаються на логічному та фізичному рівнях їх організації, а також вивчити основні алгоритми опрацювання цих структур.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: ІНТ: Здатність розв’язувати складні спеціалізовані завдання або практичні проблеми інженерії програмного забезпечення, що характеризуються комплексністю та невизначеністю умов, із застосуванням теорій та методів інформаційних технологій. загальні компетентності: 1. Здатність до абстрактного мислення, аналізу та синтезу. (К01) 2. Здатність застосовувати знання у практичних ситуаціях. (К02) фахові компетентності: 1. Здатність застосовувати і розвивати фундаментальні і міждисциплінарні знання для успішного розв’язання завдань інженерії програмного забезпечення. (К20) 2. Здатність обґрунтовано обирати та освоювати інструментарій з розробки та супроводження програмного забезпечення. (К25)
Результати навчання: Результати навчання Методи навчання і викладання Методи оцінювання рівня досягнення результатів навчання ПР07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення. Лекційні та лабораторні заняття: інформаційно-рецептивний метод; репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні заходи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР08. Вміти розробляти людино-машинний інтерфейс. Практичні та лабораторні заняття: інформаційно-рецептивний метод; репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні роботи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР12. Застосовувати на практиці ефективні підходи щодо проектування програмного забезпечення. Практичні та лабораторні заняття: інформаційно-рецептивний метод; репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні заходи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР13. Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань. Лекційні, лабораторні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні роботи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР14. Застосовувати на практиці інструментальні програмні засоби доменного аналізу, проектування, тестування, візуалізації, вимірювань та документування програмного забезпечення. Практичні, лабораторні заняття: інформаційно-рецептивний метод; репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні заходи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР15. Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення. Лекційні та практичні заняття: інформаційно-рецептивний метод; репродуктивний метод. Самостійна робота: репродуктивний метод. Поточний та екзаменаційний контроль. Методи оцінювання знань: вибіркове усне опитування на практичних заняттях; захист лабораторних робіт; контрольні роботи на практичних заняттях; тести. Екзамен – письмова компонента, тестовий контроль, усна компонента. ПР23. Вміти документувати та презентувати результати розробки програмного забезпечення. Практичні заняття: інформаційно-рецептивний метод; репродуктивний метод. Самостійна робота: репродуктивний метод. Методи оцінювання знань:захист курсової роботи.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Основи програмування, Алгоритми і структури даних Об’єктно-орієнтоване програмування Конструювання ПЗ
Короткий зміст навчальної програми: Дисципліна передбачає вивчення основ об‘єктно-орієнтованого програмування, основних принципів та властивостей ООП, поняття класу та його членів, об‘єктів як змінних типу клас, доступ до членів класу через об‘єкт та вказівник в динамічній пам‘яті. Лекції дисципліни включають матеріал про перевантаження операторів, дружні функції, статичні зміннні та функції, наслідування даних та методів, розробку шаблонних класів, обробку виняткових ситуацій. Лабораторні та практичні заняття передбачають практичне засвоєння розглянутого на лекціях матеріалу. Частина програмних результатів дисципліни може бути оцінена через представлення результатів неформальної та інформальної освіти (сертифікати платформи Coursera для Intro to Operating Systems, сертифікати навчальних програм ІТ фірм, напр.. Linux Kernel GL BaseCamp, та ін..).
Опис: 1.Екскурс в історію мови С++. Відмінності С++ від С. Огляд несумісностей. Стилі програмування. Абстрагування. Обмеження доступу. Модульність. Ієрархія. Типізація. Паралелізм. Стійкість. 2.Переваги та недоліки ООП. Основні принципи ООП 3.Функції. Способи оголошення функції. Перевантаження функції в С++. Вбудовані функції. 4.Об’єкт . Операції над об’єктами. Активні і пасивні обєкти. Відношення між об’єктами. 5.Класи. Відношення між класами. Взаємозв’язок класів та об’єктів. 6.Оголошення класу. Визначення об’єкту. Доступ до членів класу. Реалізація методів классу. Конструктори та деструктори. 7.Вказівники. Оператор new. Оператор delete. Створення та видалення об’єктів в/з області динамічної пам’яті. 8.Вказівник this. Вказівники та константи. Арифметичні операції з вказівниками 9.Посилання. Передача функції аргументів за посиланням. Переваги посилань 10.Перевизначення операторів. Загальні правила перевизначення. Дружні функції 11.Наслідування. Типи наслідування. Похідні класи. Перевизначення функцій. Віртуальні методи. Метод Clone(). Недоліки віртуальних функцій. 12.Похідні класи на прикладі векторів. Масиви об‘єктів. Масиви вказівників. 13.Оголошення масивів в області динамічної пам‘яті. Масиви символів. Зв‘язані списки. Класи масивів. 14.Шаблони. Оголошення шаблонів. Функції шаблону. Спеціалізація. Шаблони та дружні функції. 15.Стандартна бібліотека шаблонів. Контейнери. Вектори. Списки. Стек. Черги. Асоціативні контейнери. Класи алгоритмів. 16.Спеціальні класи та функції. Статичні дані-члени. Статичні функції-члени. Вказівники на функції. 17.Винятки та обробка помилок. Класифікація помилок. Основні етапи застосування винятків. Обробка винятків. 18.Поліморфізм. Множинне наслідування. Віртуальний базовий клас. Правило домінування. 19.Класи можливостей. Абстрактні типи даних. Чисті віртуальні функції. 20.Об’єктно-орієнтований аналіз та проектування. Побудова моделей. Мова моделювання. Метод. Циклічне проектування. Каскадне проектування. Екстремальне програмування. Аналіз вимог. 21.Прецедент. Визначення виконавців. Створення моделі сфери діяльності. Узагальнення. Входження . Асоціація. Визначення сценаріїв. Визначення критеріїв. 22.Діаграми взаємодій. Візуалізація. Артефакти. Проектування. Взаємозв’язок класів при проектуванні.
Методи та критерії оцінювання: 1. Контрольні заходи на практичних заняттях. 2. Усне опитування на практичних заняттях. 3. Тести. 4. Захист лабораторних робіт. 5. Захист курсової роботи – усне оцінювання при захисті, оцінювання оформлення пояснювальної записки. 6. Екзаменаційний контроль (письмова компонента, усна компонента).
Критерії оцінювання результатів навчання: • поточний контроль включає захист 11 лабораторних робіт з усним опитуванням та письмовими звітами (1+2+3+4+4+4+3+4+3+4+5=37 %) та письмовий захід (8%). Для захисту лабораторних з балами встановлюються крайні терміни. За межами крайніх термінів роботи оцінюються в 0 балів; • підсумковий контроль - екзамен: письмово-усна форма (50+5=55%)
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Бублик В.В. Об’єктно-орієнтоване програмування: [Підручник] / В.В. Бублик. – К.: ІТкнига, 2015. – 624 с.: іл. ISBN 978-966-97182-1-1 2. Жуковський С.С., Вакалюк Т.А. Об‘єктно-орінтоване програмування мовою С++. Навчально-методичний посібник для студентів напряму 6.040302 Інформатика. – Житомир: Вид-во ЖДУ, 2016. – 100 c. 3. Кравець П.О. Обєктно-орієнтоване програмування. - Навчальний посібник. Львів: Видавництво Львівської політехніки, 2012. 624 с.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).