Об'єктно-орієнтоване програмування, частина 1

Спеціальність: Програмно-апаратні пристрої інфокомунікаційних систем
Код дисципліни: 6.172.10.O.016
Кількість кредитів: 6.00
Кафедра: Програмно-апаратних систем інфокомунікацій
Лектор: К.т.н., доц. Шкілюк Олександр Петрович
Семестр: 3 семестр
Форма навчання: денна
Мета вивчення дисципліни: Мета навчальної дисципліни — вивчення основних принципів об'єктно-орієнтованого програмування – однієї з найбільш важливих методологій розробки, яка ґрунтується на уявленні про програму як про сукупність об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію наслідування. Відповідно до парадигми об'єктно-орієнтованого програмування, кожен об'єкт здатний отримувати повідомлення, обробляти дані, та надсилати повідомлення іншим об'єктам.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: Загальні компетентності: • ЗК-1. Здатність до абстрактного мислення, аналізу та синтезу. • ЗК-2. Здатність застосовувати знання у практичних ситуаціях. • ЗК-3. Здатність планувати та управляти часом. • 3К-4. Знання та розуміння предметної області та розуміння професійної діяльності. • ЗК-6. Здатність працювати в команді. • ЗК-7. Здатність вчитися і оволодівати сучасними знаннями. • ЗК-8. Вміння виявляти, ставити та вирішувати проблеми. • ЗК-13. Здатність до системного мислення; • ЗК-14. Здатність здійснювати пошук та аналізувати інформацію з різних джерел; Фахові компетентності: • ФК-1.Здатність розуміти сутність і значення інформації в розвитку сучасного інформаційного суспільства . • ФК-2. Здатність вирішувати стандартні завдання професійної діяльності на основі інформаційної та бібліографічної культури із застосуванням інформаційно-комунікаційних технологій і з урахуванням основних вимог інформаційної безпеки. • ФК-3. Здатність використовувати базові методи, способи та засоби отримання, передавання, обробки та зберігання інформації. • ФК-4. Здатність здійснювати комп'ютерне моделювання пристроїв, систем і процесів з використанням універсальних пакетів прикладних програм.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: • знати можливості мови програмування С++, структур даних та засобів їх використання; • знати загальні підходи до використання засобів стандартних бібліотек для опису класів, методів та атрибутів; • знати сучасні методи, засоби і технології проектування програмного забезпечення; • знати основні етапи розробки закінченого програмного проекту та основні вимоги до оформлення текстового, програмного та ілюстративного матеріалу для звіту до нього. • уміти створити розвинений інтерфейс для власних програм з використанням принципу інкапсуляції даних; побудувати ієрархію успадкування, використовувати поліморфізм; У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання: Можливості мови програмування С++, структур даних та засобів їх використання Загальні підходи до використання засобів стандартних бібліотек для опису класів, методів та атрибутів Сучасні методи, засоби і технології проектування програмного забезпечення; Основні етапи розробки закінченого програмного проекту та основні вимоги до оформлення текстового, програмного та ілюстративного матеріалу звіту до нього. Інтерфейс для власних програм з використанням принципу інкапсуляції даних; побудувати ієрархію успадкування, використовувати поліморфізм;
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Основи IT та електронної інженерії Програмування Програмування апаратних засобів
Короткий зміст навчальної програми: Об'єктно-орієнтоване програмува?ння (ООП, англ. Object-oriented programming, OOP) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. Відповідно до парадигми об'єктно-орієнтованого програмування, кожен об'єкт здатний отримувати повідомлення, обробляти дані, та надсилати повідомлення іншим об'єктам. Кожен об'єкт — своєрідний незалежний автомат з окремим призначенням та відповідальністю. Таким чином, програма є набором об'єктів, що мають стан та поведінку. Об'єкти взаємодіють використовуючи повідомлення. Будується ієрархія об'єктів: програма в цілому — це об'єкт, для виконання своїх функцій вона звертається до об'єктів що містяться у ньому, які своєю чергою виконують запит шляхом звернення до інших об'єктів програми.
Опис: Вступ до мови програмування С++. Зворотна сумісність С++ щодо С Типи даних. Операції та їх пріоритети. Цикли. Функції. Директиви препроцесора. Створення багатофайлових програм. Простір імен. Класи та їх елементи. Клас як тип даних. Методи та атрибути класів. Конструктори і деструктори класів. Рівні доступу до атрибутів класу. Масиви. Робота із пам’яттю. Вказівники, посилання. Динамічне виділення пам’яті. Наслідування, інкапсуляція, перевантаження операторів. Віртуальні функції, поліморфізм, абстракція. Виключення. Файли і потоки. Огляд стандартної бібліотеки шаблонів (Standard Template Library). Патерни програмування.
Методи та критерії оцінювання: Поточний контроль (оцінка виконаних завдань) Семестровий контроль (проведення письмового екзамену)
Критерії оцінювання результатів навчання: Поточний контроль: - Лабораторні роботи - 40 балів; Екзаменаційний контроль: - Письмова компонента - 50 балів; - Усна компонента - 10 балів; Загалом: 100 балів.
Порядок та критерії виставляння балів та оцінок: 100-88 балів - атестований з оцінкою «відмінно» - Високий рівень: здобувач освіти демонструє поглиблене володіння поняттєвим та категорійним апаратом навчальної дисципліни, системні знання, вміння і навички їх практичного застосування. Освоєні знання, вміння і навички забезпечують можливість самостійного формулювання цілей та організації навчальної діяльності, пошуку та знаходження рішень у нестандартних, нетипових навчальних і професійних ситуаціях. Здобувач освіти демонструє здатність робити узагальнення на основі критичного аналізу фактичного матеріалу, ідей, теорій і концепцій, формулювати на їх основі висновки. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку, самостійної науково-дослідної діяльності, що реалізується за підтримки та під керівництвом викладача. 87-71 балів - атестований з оцінкою «добре» - Достатній рівень: передбачає володіння поняттєвим та категорійним апаратом навчальної дисципліни на підвищеному рівні, усвідомлене використання знань, умінь і навичок з метою розкриття суті питання. Володіння частково-структурованим комплексом знань забезпечує можливість їх застосування у знайомих ситуаціях освітнього та професійного характеру. Усвідомлюючи специфіку задач та навчальних ситуацій, здобувач освіти демонструє здатність здійснювати пошук та вибір їх розв’язання за поданим зразком, аргументувати застосування певного способу розв’язання задачі. Його діяльності ґрунтується на зацікавленості та мотивації до саморозвитку, неперервного професійного розвитку. 70-50 балів - атестований з оцінкою «задовільно» - Задовільний рівень: окреслює володіння поняттєвим та категорійним апаратом навчальної дисципліни на середньому рівні, часткове усвідомлення навчальних і професійних задач, завдань і ситуацій, знання про способи розв’язання типових задач і завдань. Здобувач освіти демонструє середній рівень умінь і навичок застосування знань на практиці, а розв’язання задач потребує допомоги, опори на зразок. В основу навчальної діяльності покладено ситуативність та евристичність, домінування мотивів обов’язку, неусвідомлене застосування можливостей для саморозвитку. 49-00 балів - атестований з оцінкою «незадовільно» - Незадовільний рівень: свідчить про елементарне володіння поняттєвим та категорійним апаратом навчальної дисципліни, загальне уявлення про зміст навчального матеріалу, часткове використання знань, умінь і навичок. В основу навчальної діяльності покладено ситуативно-прагматичний інтерес.
Рекомендована література: 1. Шкілюк О.П. Методичні вказівки для виконання лабораторних робіт з курсу «Об'єктно-орієнтоване програмування на С++». 2. Бєлов Ю.А., Карнаух Т.О., Коваль Ю.В., Ставровський А.Б. Вступ до програмування мовою С++. – К.: Видавничо-поліграфічний центр "Київський університет", 2012. – 175 с. 3. Васильєв О.М. Програмування на С++ в прикладах і задачах. – К.: Видавництво: "Ліра-К", Київ, 2017 рік, 382 с. 4. Галкін О.В., Верес М.М. Мова програмування С++. Конспект лекцій . К.: ДП “Вид. дім “Персонал”, 2017. — 260 с 5. Грицюк Ю.І., Рак Т.Є. Програмування мовою С++. – Львів : Вид-во Львівського ДУ БЖД, 2011. – 292 с. 6. Пех П.А., Лавренчук С.В., Делявський М.В., Гринюк С.В. Лабораторний практикум з програмування мовою С/С++. – Луцьк : Вежа-Друк, 2020. 228 с.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).