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

Спеціальність: Системний аналіз
Код дисципліни: 6.124.00.O.018
Кількість кредитів: 7.00
Кафедра: Інформаційні системи та мережі
Лектор: к.т.н., доцент Кравець Петро Олексійович
Семестр: 3 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою дисциплiни „Об’єктно-орієнтоване програмування” є комплексне засвоєння студентами cучасних об’єктно-орієнтованих мов та технологій програмування.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: ІНТ. Здатність використовувати теоретичні та фундаментальні знання, уміння і навички для успішного розв’язування складних спеціалізованих задач та практичних проблем під час професійної діяльності у галузі системного аналізу, інженерії даних і знань або у процесі навчання, що передбачає застосування теорій та методів системного аналізу та інженерії даних і знань та характеризуються комплексністю та невизначеністю умов. Загальні компетентності: К02. Здатність застосовувати знання у практичних ситуаціях. К03. Здатність планувати і управляти часом. К04. Знання та розуміння предметної області та розуміння професійної діяльності. К05. Здатність спілкуватися державною мовою усно і письмово. К06. Здатність спілкуватися іноземною мовою. К14. Здатність оцінювати та забезпечувати якість виконуваних робіт. К15. Здатність реалізувати свої права і обов’язки як члена суспільства, усвідомлювати цінності громадянського (вільного демократичного) суспільства та необхідність його сталого розвитку, верховенства права, прав і свобод людини і громадянина в Україні. К16. Здатність зберігати та примножувати моральні, культурні, наукові цінності і досягнення суспільства на основі розуміння історії та закономірностей розвитку предметної області, її місця у загальній системі знань про природу і суспільство та у розвитку суспільства, техніки і технологій, використовувати різні види та форми рухової активності для активного відпочинку та ведення здорового способу життя. Фахові компетентності: К17. Здатність використовувати системний аналіз як сучасну міждисциплінарну методологію, що базується на прикладних математичних методах та сучасних інформаційних технологіях і орієнтована на вирішення задач аналізу і синтезу технічних, економічних, соціальних, екологічних та інших складних систем. К22. Здатність до комп’ютерної реалізації математичних моделей реальних систем і процесів; проектувати, застосовувати і супроводжувати програмні засоби моделювання, прийняття рішень, оптимізації, обробки інформації, інтелектуального аналізу даних. К23. Здатність використовувати сучасні інформаційні технології для комп’ютерної реалізації математичних моделей та прогнозування поведінки конкретних систем а саме: об’єктно-орієнтований підхід при проектуванні складних систем різної природи, прикладні математичні пакети, застосування баз даних і знань. К24. Здатність організовувати роботу з аналізу та проектування складних систем, створення відповідних інформаційних технологій та програмного забезпечення.
Результати навчання: • знати технологію об’єктно-орієнтованого проектування програмних систем; • знати об’єктно-орієнтовану мову програмування С++; • вміти розробляти програмні системи засобами об’єктно-орієнтованого програмування на мові С++; • вміти відлагоджувати та реалізовувати програми в середовищах "Borland C++", “Visual C++”, “Borland Builder C++” або інших. ПР08. Володіти сучасними методами розробки програм і програмних комплексів та прийняття оптимальних рішень щодо складу програмного забезпечення, алгоритмів процедур і операцій. ПР13. Проектувати, реалізовувати, тестувати, впроваджувати, супроводжувати, експлуатувати програмні засоби роботи з даними і знаннями в комп’ютерних системах і мережах.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Алгоритмізація і програмування • Операційні системи • Дискретна математика • Комп’ютерні мережі • Програмування та командна робота • Методології системного аналізу • Організація баз даних та знань
Короткий зміст навчальної програми: Знання, отримані в процесі вивчення цієї дисципліни, забезпечать можливість застосовування на практиці методів та засобів об’єктно-орієнтованого програмування для побудови ефективних і надійних програмних систем, придатних до вдосконалення та нарощування за рахунок контейнерних класів, успадкування класів, механізму пізнього зв’язування віртуальних функцій з об’єктами, динамічної ідентифікації та приведення типів, шаблонів функцій та класів, стандартної бібліотеки шаблонних класів.
Опис: Базові поняття ООП - класи, інкапсуляція даних і методів, успадкування, поліморфізм віртуальних методів та пізнє зв’язування. Оголошення класів та об’єктів. Елементи класу – дані та методи. Види елементів класу. Рівні доступу до елементів класу. Друзі класу. Конструктори та деструктор. Перевантаження операцій. Одинарне та множинне успадкування класів. Поліморфізм віртуальних методів та пізнє зв’язування. Шаблонні функції та класи. Бібліотека стандартних шаблонів. Динамічна ідентифікація та приведення типів. Опрацювання виняткових станів.
Методи та критерії оцінювання: Діагностика знань відбувається шляхом оцінювання виконаних лабораторних робіт, екзаменаційної контрольної роботи у формі тестових запитань трьох рівнів складності та курсової роботи. Оцінювання лабораторних робіт складається з усного опитування та перевірки працездатності комп’ютерних програм. Екзаменаційний контроль полягає у виконанні письмової контрольної роботи у вигляді тестів. Кількість тестових завдань – біля 30. Тести охоплюють усі розділи навчальної дисципліни. У випадку багатоваріантних відповідей на тестове завдання оцінювання здійснюється за правилом „все або нічого”. При оцінюванні курсової роботи враховується поточний контроль виконання роботи, відповідність змісту роботи заданій темі, повнота викладення матеріалу, працездатність та оригінальність розроблених програм, захист роботи та відповіді на контрольні запитання, якість оформлення роботи, відповідність методичним вказівкам та галузевим стандартам.
Критерії оцінювання результатів навчання: • Поточний контроль (30%): письмові звіти з лабораторних робіт, усне опитування; • Підсумковий контроль (70%, екзамен): письмово-усна форма.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Кравець П.О. Об’єктно-орієнтоване програмування: навч. Посібник / П.О. Кравець. – Львів: Видавництво Львівської політехніки, 2012. – 624 с. 2. Stroustrup B. The C++ programming language / Bjarne Stroustrup. – Fourth edition. – Addison-Wesley. – 2013. – 1376 p. 3. Schildt H. C++: The Complete Reference, 5th Edition / Herbert Schildt. – McGraw-Hill Education. –2012. – 1200 p. 4. Schildt H. Java: The Complete Reference, Seven Eition / H. Schildt. – The McGraw-Hill Companies, 2007. – 1057 p. 5. Schildt H. C# 4.0: The Comlete Reference, 1st Edition / H. Schildt. – The McGraw-Hill Companies, 2010. – 976 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).

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

Спеціальність: Системний аналіз
Код дисципліни: 6.124.00.O.019
Кількість кредитів: 2.00
Кафедра: Інформаційні системи та мережі
Лектор: к.т.н., доцент Кравець Петро Олексійович
Семестр: 3 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою дисциплiни „Об’єктно-орієнтоване програмування” є комплексне засвоєння студентами cучасних об’єктно-орієнтованих мов та технологій програмування.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: ІНТ. Здатність використовувати теоретичні та фундаментальні знання, уміння і навички для успішного розв’язування складних спеціалізованих задач та практичних проблем під час професійної діяльності у галузі системного аналізу, інженерії даних і знань або у процесі навчання, що передбачає застосування теорій та методів системного аналізу та інженерії даних і знань та характеризуються комплексністю та невизначеністю умов. Загальні компетентності: К02. Здатність застосовувати знання у практичних ситуаціях. К03. Здатність планувати і управляти часом. К04. Знання та розуміння предметної області та розуміння професійної діяльності. К05. Здатність спілкуватися державною мовою усно і письмово. К06. Здатність спілкуватися іноземною мовою. К14. Здатність оцінювати та забезпечувати якість виконуваних робіт. К15. Здатність реалізувати свої права і обов’язки як члена суспільства, усвідомлювати цінності громадянського (вільного демократичного) суспільства та необхідність його сталого розвитку, верховенства права, прав і свобод людини і громадянина в Україні. К16. Здатність зберігати та примножувати моральні, культурні, наукові цінності і досягнення суспільства на основі розуміння історії та закономірностей розвитку предметної області, її місця у загальній системі знань про природу і суспільство та у розвитку суспільства, техніки і технологій, використовувати різні види та форми рухової активності для активного відпочинку та ведення здорового способу життя. Фахові компетентності: К17. Здатність використовувати системний аналіз як сучасну міждисциплінарну методологію, що базується на прикладних математичних методах та сучасних інформаційних технологіях і орієнтована на вирішення задач аналізу і синтезу технічних, економічних, соціальних, екологічних та інших складних систем. К22. Здатність до комп’ютерної реалізації математичних моделей реальних систем і процесів; проектувати, застосовувати і супроводжувати програмні засоби моделювання, прийняття рішень, оптимізації, обробки інформації, інтелектуального аналізу даних. К23. Здатність використовувати сучасні інформаційні технології для комп’ютерної реалізації математичних моделей та прогнозування поведінки конкретних систем а саме: об’єктно-орієнтований підхід при проектуванні складних систем різної природи, прикладні математичні пакети, застосування баз даних і знань. К24. Здатність організовувати роботу з аналізу та проектування складних систем, створення відповідних інформаційних технологій та програмного забезпечення.
Результати навчання: • знати технологію об’єктно-орієнтованого проектування програмних систем; • знати об’єктно-орієнтовану мову програмування С++; • вміти розробляти програмні системи засобами об’єктно-орієнтованого програмування на мові С++; • вміти відлагоджувати та реалізовувати програми в середовищах "Borland C++", “Visual C++”, “Borland Builder C++” або інших. ПР08. Володіти сучасними методами розробки програм і програмних комплексів та прийняття оптимальних рішень щодо складу програмного забезпечення, алгоритмів процедур і операцій. ПР13. Проектувати, реалізовувати, тестувати, впроваджувати, супроводжувати, експлуатувати програмні засоби роботи з даними і знаннями в комп’ютерних системах і мережах.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: • Алгоритмізація і програмування; • Операційні системи
Короткий зміст навчальної програми: Знання отримані в процесі вивчення цієї дисципліни забезпечують можливість застосовувати на практиці методи та засоби об’єктно-орієнтованого програмування для побудови ефективних і надійних програмних систем, здатних до вдосконалення та нарощування за рахунок успадкування класів, механізму пізнього зв’язування віртуальних функцій з об’єктами, динамічної ідентифікації та приведення типів.
Опис: Метою виконання курсової роботи є практичне засвоєння студентами сучасних технологій та засобів об’єктно-орієнтованого програмування. Тематика курсових робіт пов'язана з розробкою проектів програм, що базуються на використанні класів та відношень між ними. Курсова робота повинна включати в себе такі розділи: • завдання на курсову роботу; • зміст; • вступ; • формулювання задачі; • методи та засоби розв’язування задачі; • розроблення графічних схем класів та алгоритмів • проектування структури програми; • проектування інтерфейсу користувача; • розроблення програми та її опис; • інструкція користувачу; • контрольний приклад та аналіз результатів комп'ютерної реалізації програми; • висновки; • література (не менше 10 джерел згідно ДСТУ 7-1-2006); • додатки: • специфікація на програму; • роздрук текстів програм. Обсяг курсової роботи повинен становити біля 30 сторінок друкованого тексту (без додатків). Формат А4, друк з однієї сторони листа, відступи зліва, згори, знизу – 20 мм, справа – 10 мм, шрифт Times New Roman 12 – 14, міжрядковий інтервал 1 – 1,5 . Елементи рисунків – згруповані, нумерація сторінок – знизу справа листа. Приклад завдання для курсової роботи Створити клас Студент, що має ім'я (вказівник на рядок), номер курсу, ідентифікаційний номер та рейтинг. 1. Визначити конструктори ініціалізації, копіювання, деструктор та методи для зміни і читання значень полів даних класу. 2. Побудувати та використати додатковий клас-ітератор. 3. Перевантажити операцію ++ (дружня до класу функція) для зміни курсу, операцію ^ (метод класу) - для зміни рейтингу, операцію присвоєння об’єктів =, потокові операції введення >> та виведення << об’єктів. 4. Створити public-похідний клас – Студент-дипломник, що має тему дипломної роботи (рядок символів). Визначити конструктор, деструктор та метод зміни назви дипломної роботи. 5. У межах ієрархії класів побудувати поліморфічний кластер на основі віртуального методу для читання полів-рядків символів (імені студента або назви дипломної роботи). Продемонструвати механізм пізнього зв’язування.
Методи та критерії оцінювання: При оцінюванні курсової роботи враховується поточний контроль виконання роботи, відповідність змісту роботи заданій темі, повнота викладення матеріалу, працездатність та оригінальність розроблених програм, захист роботи та відповіді на контрольні запитання, якість оформлення роботи, відповідність методичним вказівкам та галузевим стандартам.
Критерії оцінювання результатів навчання: Результати поточного виконання роботи – 20. Відповідність змісту роботи заданій темі, повнота викладення матеріалу – 20. Працездатність та оригінальність розроблених програм – 20. Захист роботи, відповіді на контрольні запитання – 30. Якість оформлення роботи, відповідність методичним вказівкам та галузевим стандартам – 10.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Кравець П.О. Об’єктно-орієнтоване програмування: навч. Посібник / П.О. Кравець. – Львів: Видавництво Львівської політехніки, 2012. – 624 с. 2. Stroustrup B. The C++ programming language / Bjarne Stroustrup. – Fourth edition. – Addison-Wesley. – 2013. – 1376 p. 3. Schildt H. C++: The Complete Reference, 5th Edition / Herbert Schildt. – McGraw-Hill Education. –2012. – 1200 p. 4. Schildt H. Java: The Complete Reference, Seven Eition / H. Schildt. – The McGraw-Hill Companies, 2007. – 1057 p. 5. Schildt H. C# 4.0: The Comlete Reference, 1st Edition / H. Schildt. – The McGraw-Hill Companies, 2010. – 976 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).