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

Спеціальність: Телекомунікації та радіотехніка
Код дисципліни: 6.172.02.E.067
Кількість кредитів: 4.00
Кафедра: Телекомунікації
Лектор: Кайдан Микола Володимирович
Семестр: 7 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою викладання дисципліни є ознайомлення з основами об’єктно-орієнтованого підходу до написання програм для розв’язання широкого кола інженерних та науково-технічних задач та підготовка студентів до розроблення (програмування) та підтримки програмного забезпечення телекомунікаційних систем.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: загальні компетентності: - ЗК-5. Здатність спілкуватись державною мовою як усно, так і письмово; - ЗК-8. Вміння виявляти, ставити та вирішувати проблеми; - ЗК-15. Знання іншої мови (мов). фахові компетентності: - ФК 4 Здатність здійснювати комп’ютерне моделювання пристроїв, систем і процесів з використання універсальних пакетів прикладних програм; - ФКС2.6.Здатність брати участь у адмініструванні інфокомунікаційних та телекомунікаційних мереж
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: - УМ13. Застосувати знання і розуміння для розв’язування задач синтезу та аналізу в інфокомунікаційних системах, які характерні обраній спеціальності. - УМ14. Системно мислити та застосовувати творчі здібності до формування принципово нових ідей; - УМ17. Ефективно працювати як індивідуально, так і у складі команди. У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання: РН 1 (УМ13. Застосувати знання і розуміння для розв’язування задач синтезу та аналізу в інфокомунікаційних системах, які характерні обраній спеціальності.) РН 2 (УМ14. Системно мислити та застосовувати творчі здібності до формування принципово нових ідей.) РН 3 УМ14. Системно мислити та застосовувати творчі здібності до формування принципово нових ідей.) РН 4 (КОМ 1. Уміння спілкуватись, включаючи усну та письмову комунікацію українською та іноземною (англійською) мовами) РН 5 (КОМ 2. Здатність до використання різноманітних методів сучасних інформаційних технологій для ефективного спілкування на професійному та соціальному рівнях) РН 6 (АіВ1. Здатність адаптуватись до нових ситуацій та приймати відповідні рішення) РН 7 (АіВ2. Здатність усвідомлювати необхідність навчання впродовж усього життя з метою поглиблення набутих та здобуття нових фахових знань) РН 8 (АіВ3. Здатність відповідально ставитись до виконуваної роботи, самостійно приймати рішення, досягати поставленої мети з дотриманням вимог професійної етики)
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни: Методи кодування в ТК Супутні і наступні навчальні дисципліни: Операційні системи ТКС
Короткий зміст навчальної програми: Застосувати знання і розуміння для розв’язування задач синтезу та аналізу в інфокомунікаційних системах, які характерні обраній спеціальності. Системно мислити та застосовувати творчі здібності до формування принципово нових ідей. Ефективно працювати як індивідуально, так і у складі команди. Уміння спілкуватись, включаючи усну та письмову комунікацію українською та іноземною (англійською) мовами. Здатність до використання різноманітних методів сучасних інформаційних технологій для ефективного спілкування на професійному та соціальному рівнях. Здатність адаптуватись до нових ситуацій та приймати відповідні рішення. Здатність усвідомлювати необхідність навчання впродовж усього життя з метою поглиблення набутих та здобуття нових фахових знань. Здатність відповідально ставитись до виконуваної роботи, самостійно приймати рішення, досягати поставленої мети з дотриманням вимог професійної етики
Опис: 1. Основні поняття ООП. Основи C++ 2. Масиви. Рядки. Вказівники та посилання 3. Функція 4. Основні поняття об'єктно-орієнтованого програмування. 5. Перевантаження операторів. 6. Зв'язок між об'єктами Композиція об'єктів Агрегація Асоціація Залежність 7. Успадкування в С++ Базове успадкування Порядок побудови дочірніх класів Конструктори і ініціалізація дочірніх класів Успадкування і cпеціфікатор доступу protected . Додавання нового функціоналу в дочірній клас Перевизначення методів батьківського класу Приховування методів батьківського класу Множинне успадкування 8. Віртуальні функції. 9 Шаблони Шаблони функцій Екземпляри шаблонів функцій Контейнерні класи Шаблони класів Параметр non-type в шаблоні Явна спеціалізація шаблону функції Явна спеціалізація шаблону класу Часткова спеціалізація шаблону 10 Винятки. throw, try, catch Розкручування стека Обробники всіх типів виключень Класи-винятки та спадкування 11 Розумні вказівники Семантика переміщення Конструктор переміщення і оператор присвоювання переміщенням Функція std :: move () Розумний вказівник std::unique_ptr Розумний вказівник std::shared_ptr Розумний вказівник std::weak_ptr 12 Стандартна бібліотека шаблонів (STL) в С ++ Контейнери STL Ітератори STL Алгоритми STL 13 Робота з мережею. Алокатори Сокети Беркли. Мультиплексування. Асинхронна робота з мережею 14 Процеси та міжпроцесна взаємодія. Процеси. Сигнали. Файли Канали Черги повідомлень. Семафори. Спільна пам'ять 15 Потоки і засоби синхронізації. Паралельне програмування
Методи та критерії оцінювання: Захист лабораторних робіт у вигляді опитування за оформленими звітами. Екзаменаційний контроль письмова компонента (індивідуальні завдання - теоретичні питання та розв’язок задач), усна компонента (опитування за переліком питань, які підлягають вивченню і виносяться на семестровий контроль).
Критерії оцінювання результатів навчання: Поточний контроль 40 балів Разом за ПК письмова компонента-50 усна компонента 10
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Віртуальне навчальне середовище академії Cisco Національного університету «Львівська політехніка», Електронний навчально-методичний комплекс. [Електронний ресурс]. Режим доступу до ресурсу ЕНМК: https://www.netacad.com/portal/course/781746. 2. Віртуальне навчальне середовище Національного університету «Львівська поілтехніка», Електронний навчально-методичний комплекс. [Електронний ресурс]. Режим доступу до ресурсу ЕНМК: http://vns.lpnu.ua/course/view.php?id=8836 Рекомендована література Базова 1. Глинський Я. М. С++ Builder: навч. посіб. / Я.М. Глинський, В.Є. Анохін, В.А. Ряжська. – 4-те вид. – Л. : СПД Глинський, 2008. – 190 с. 2. Путятін Є.П., Степанов В.П. та ін. Основи програмування мовою С++: Навчальний посібник. – Х.: ТОВ «Компанія СМІТ», 2005. – 320 с. 3. Лафоре Л. Объектно-ориентирование программирование в C++, 4-е издание — М.: Питер, 2004. - 923 с. 4. Прата С. Язык программирования C++. Лекции и упражнения, 6-е изд. - Пер. с англ. - М. Издательский дом “Вильямс”, 2012. - 1248 с. 5. Строуструп Б. Введение в язык С++ - М.:Бином, 2011. - 1136 с. 6. Шилдт Г. C++: базовий курс, 3-е изд. : Пер. с англ. - М. Издательский дом “Вильямс”, 2012. - 624 с. Допоміжна 1. Березин Б.И., Березин С.Б. Программирование на С и С++ - М.: ДИАЛОГ-МИФИ, 2001. - 288 с. 2. Керниган Б., Ритчи Д.. Язык программирования С, 2-е издание - М.: Вильямс — 2009. - 292 с. 3. Митчелл М., Оулдем Д., Самьюэл А. Программирование для Linux. Профессиональный подход. - Пер. с англ. - М. Издательский дом “Вильямс”, 2008. - 288 с. 4. Папас К., Мюррей У. Программирование на C и C++ - К.: Издательская група BHV, 2000. - 320 с. 5. Шилдт Г. Справочник программиста C/C++, 3-е изд.: Пер. с англ. - М. Издательский дом “Вильямс”, 2003. - 432 с. 6. Lee M. С++ programming for absolute beginner, Second edition. - Course Technology, 2009. - 363 p. Інформаційні ресурси Електронний навчально-методичний комплекс «Об’єктно-орієнтоване програмування» (https://vns.lpnu.ua/user/view.php?id=55455&course=8836) для студентів Інституту телекомунікацій, радіоелектроніки та електронної техніки 172 спеціальності «Телекомунікації та радіотехніка». Укладач - д.т.н., доцент Кайдан Микола Володимирович, професор кафедри телекомунікації. 1. https://cppinstitute.org/ 4. http://cpp.sh/ 5. https://edube.org/sandbox?language=cpp 6. http://ideone.com/. 7. https://www.visualstudio.com. 8. https://eclipse.org.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).