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

Обов'язкова дисципліна
Навчальна дисципліна загальної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 4.5.
Кількість аудиторних занять: 
15 аудиторних занять; лабораторні – 7 аудиторних занять.
Самостійна робота: 
91 година.
Індивідуальна робота: 
• очна форма — курсова робота.
Семестровий контроль: 
Екзамен. Захист курсової роботи.
Викладач: 
к.т.н., доцент Нестерюк Олександр Геннадійович.
Анотація: 

Мета вивчення дисципліни: формування фундаментальних понять, принципів і методів об’єктно-орієнтованого програмування: поняття об’єкту, абстракції, спадкоємства, поліморфізму, інкапсуляції, мови, методології і технології об’єктно-орієнтованого програмування.
Практичне значення та використання отриманих знань: розглянути підходи дозволяють навчити майбутніх фахівців основних етапів процесу проектування програмного забезпечення і визначення принципів об’єктно-орієнтованого програмування щодо розробки програм мовою C++, типовим підходам до розробки і аналізу найбільш розповсюджених алгоритмів рішення економіко-математичних задач, здійснення аналізу можливостей сучасних інструментальних середовищ розробки програм (на прикладі середовища Visual C++ MFC), та визначення концепцій і вивчення основних принципів організації віконних програм у середовищі ОС Windows.
−    

Тематика та види навчальних занять

Для денної форми здобуття освіти

Лекційні заняття 
Лекція 1. “Особливості мови програмування C ++ v.14. Нові функції стандартної бібліотеки. М'ютекси та блокування, що розділяються.. Гетерогенний пошук у асоціативних контейнерах. Стандартні літерали користувача. Адресація до кортежів на кшталт”. 
Лекція 2. “Особливості мови програмування C ++ v.17. Структурні прив'язки.. Області видимості.. Ініціалізатори. Декомпозиція при оголошенні. Автоматичне виведення параметрів шаблонів. Оголошення вкладених просторів імен. Атрибути nodiscard, fallthrough, maybe_unused.. Клас string_view для параметрів-рядків. Класи optional та variant. Використовуйте функції std::size, std::data, std::begin, std::end. Структуровані прив'язки для масивів та структур. . Нові бібліотечні типи та контейнери”.
Лекція 3. “Особливості мови програмування C ++ v.17. Продовження. Заготування. Унарні та бінарні вирази. Аргументи шаблонів. Посилання. Зміни Constexpr. Макропідстановка. Тип, що повертається. Диспетчеризація. Static if. Structured bindings. Масиви. Складні структури. Порядок виконання операторів. Мінімізація копіювання. Інші зміни стандартної бібліотеки v.17”.
Лекція 4. “Особливості мови програмування C ++ v.20. Заборони та видалення. Дрібні зміни. Модулі. Співпрограми. Зміни typename, new. [[nodiscard]]. Розширений constexpr. consteval та constinit. explicit (bool). Тризначне порівняння («зірколіт»). Концепції умовно-тривіальна функція та неявні шаблони. Зміни у ініціалізації, конструкторах, лямбда-функціях. Редакційні редагування стандарту”.
Лекція 5. “Особливості мови програмування C ++ v.20. Продовження. Дрібні зміни у бібліотеці. Оголошення функцій constexpr. Бібліотека форматування. Вказівники, що не володіють, на масив (span). Бібліотеки bit, syncstream, ranges, chrono, jthread, stop_token. Бар'єри та засуви. Різнорідний пошук. Інші зміни стандартної бібліотеки v.20”.
Лекція 6. “Особливості мови програмування C ++ v.23. Заборони та видалення. Дрібні зміни. if consteval. Тимчасова копія об'єкта. Анотація [[assume(bool)]]. Статичні operator() та operator[]. Зміни кодування символів. Різні зміни у бібліотеці. stacktrace. move_only_function. Апаратно-різнорідні бар'єри. Монадні операції. Прямий друк у консоль. Необов'язкові дробові типи”. 
Лекція 7. “Особливості мови програмування C ++ v.23. Продовження. Нова функціональність діапазонів та уявлень, рядків, string::resize_and_overwrite, ітераторів, контейнерів, constexpr, format. Оптимізації та попередження. Функція unreachable. Інші зміни стандартної бібліотеки v.23”.
Лекція 8. “Особливості мови програмування Microsoft Visual C++. Можливості і концепції використання Microsoft Visual C++. Рішення і проекти Microsoft Visual C++. Проста віконна програма на мові Microsoft Visual C++. Інтерфейси”. 
Лекція 9. “Введення в бібліотеку MFC. Загальні відомості про бібліотеку. Призначення бібліотеки. Склад і структура бібліотеки. Ієрархія класів бібліотеки”. 
Лекція 10. “Віконні класи бібліотеки MFC. Реалізація основних компонентів віконного застосування за допомогою MFC. Види віконних класів і способи роботи з ними. Побудова власних віконних класів”. 
Лекція 11. “Невізуальні класи бібліотеки MFC. Робота з файлами і рядками. Робота з реєстром. Робота з ресурсами”.
Лекція 12. “Прості контейнери бібліотеки MFC. Контейнер CArray. Контейнер, аналогічні та модифіковані від CArray. Списки CList”. 
Лекція 13. “Асоціативні контейнери бібліотеки MFC. Контейнер CMaps. Контейнер, аналогічні та модифіковані від CMaps”. 
Лекція 14. “Архітектура документ-представлення в бібліотеки MFC. Клас CDocTemplate. Клас CSingleDocTemplate. Клас CMultiDocTemplate. Фрейми. Серіалізація”. 
Лекція 15. “Використання документів в бібліотеки MFC. Документи та їх представлення. Печать документів”.

Лабораторні заняття 
Лабораторна робота №1. “Використання особливостей мови програмування C++ v.14 та 17”.
Мета роботи: Вивчити принципи використання особливостей мови програмування C++ v.14 та 17. Навчиться розробляти програми, використовуючи тимчасові класи та інші нововведення мови C++.
Лабораторна робота №2. “Використання особливостей мови програмування C++ v.17 та 20”.
Мета роботи: Вивчити принципи використання особливостей мови програмування C++ v.17 та 20. Навчиться розробляти програми, використовуючи тимчасові класи та інші нововведення мови C++.
Лабораторна робота №3,4. “Вивчення бібліотеки MFC. Створення простої програми”.
Мета роботи: Вивчити принципи побудови програм C++ з використанням бібліотеки Microsoft Foundation Classes. Навчиться розробляти програми за допомогою середовища Microsoft Visual Studio 2017.
Лабораторна робота № 5. “Вивчення бібліотеки MFC. Виведення у вікно”.
Мета роботи: Вивчити принципи побудови програм C++ з використанням бібліотеки Microsoft Foundation Classes. Навчиться розробляти віконні програми, що виводять інформацію у вікна.
Лабораторна робота № 6. “Вивчення бібліотеки MFC. Відображення та робота з ресурсами”.
Мета роботи: Вивчити принципи побудови програм C++ з використанням бібліотеки Microsoft Foundation Classes. Навчиться розробляти програми, що виводять графічну інформацію у вікно та працюють із ресурсами за допомогою середовища Microsoft Visual Studio 2017.
Лабораторна робота № 7. “Вивчення бібліотеки MFC. Робота з файлами”.
Мета роботи: Вивчити принципи побудови програм C++ з використанням бібліотеки Microsoft Foundation Classes. Навчитися розробляти віконні програми, а також створювати та використовувати файли з файлами та діалоговими вікнами загального користування за допомогою середовища Microsoft Visual Studio 2017.

Консультації здійснюються впродовж семестру згідно встановленого розкладу.

Індивідуальна робота

Для денної форми здобуття освіти

Курсова робота 

Виконання КР повинно включати пояснювальну записку, друкований і електронний варіант виконаної роботи.
Мета курсової роботи – курсова робота є самостійною роботою здобувачів, яка підводить узагальнення вивчення різних тим різних дисциплін. В процесі виконання цієї роботи здобувачі повинні навчитися користуватися  на практиці теоретичними знаннями систематизувати їх, поглибити і розширити. Це сприяє закріпленню знань теоретичного курсу та придбання студентами навиків проектування та досягнення працездатності програм на об’єктно-орієнтованої мові програмування високого рівня. Тематика курсового проектування періодично уточнюється і коректується. Зразкова тематика приведена в методичних вказівках по курсовій роботі.  Основна робота по курсовому проектуванню виконується з використанням існуючих модулів і пакетів прикладних програм, наявних в системному і прикладному програмному забезпеченні комп'ютерів лабораторії кафедри. Здобувачі згідно вибраної теми повинні провести необхідні дослідження роботи пакетів, можливостей засобів розробки і можливості їх ефективного використання для створення власних проектів. 
У пояснювальній записці здобувач описує постановку задачі, обосновує вибір методу розв’язання, описує алгоритм і результати виконання завдання. В електронному вигляді представляє  реалізовану на обраній мові програмування КР.
Змістовна послідовність виконання роботи.
1.Введення
2. Завдання (ціль та задачі його досягнення)
3. Опис комп'ютерних і програмних засобів для виконання роботи.
4. Розробка алгоритму.
5. Розробка програми.
6. Контрольний приклад (обробка результатів).
7. Висновок і виводи.
Оцінювання роботи здійснюється з розрахунку 100 балів.

Форми контрольних заходів та оцінювання результатів навчання

Для денної форми здобуття освіти

Поточний контроль полягає у виконанні
1) 6-тю лабораторними роботами. Лабораторні роботи виконуються з використанням засобів розробки DevC++ та Microsoft Visual C++ відповідно до мети та завдань. По результатах виконання кожної лабораторної роботи оформлюється і захищається відповідний протокол. Бездоганне виконання кожної лабораторної роботи №1, 2, 4, 5 оцінюється у 6 бали, №3, 6 – у 8 балі;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі тестування.
Бездоганне виконання кожної модульної контрольної роботи становить 30 балів.
3) курсової роботи. Бездоганне виконання КР оцінюється у 40 балів, захист – 60 балів.
Підсумковий контроль – екзамен. Екзамен у письмовій формі. Максимальна оцінка, яку може отримати студент – 100 балів.

Політика освітнього процесу та умови допуску до підсумкового контролю
Активна участь в практичних заняттях, дотримання графіків здачі контрольних та індивідуальних завдань, самостійна робота здобувача при підготовці до всіх видів аудиторних занять, присутність на консультаціях. Здобувачі зобов’язані дотримуватись принципів академічної доброчесності при виконанні модульних контрольних робіт, поточних контрольних та індивідуальних завдань, складання заліку/екзамену.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на контрольній роботі відповідає оцінці «0».
Під час всіх видів аудиторних занять здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних та підсумкового контролів.

Результати навчання: 

ПРН8. Володіти сучасними методами розробки програм і програмних комплексів та прийняття оптимальних рішень щодо складу програмного забезпечення, алгоритмів процедур і операцій.
ПРН9. Вміти створювати ефективні алгоритми для обчислювальних задач системного аналізу та систем підтримки прийняття рішень.
ПРН10. Знати архітектуру сучасних обчислювальних систем і комп’ютерних мереж.
ПРН13. Проектувати, реалізовувати, тестувати, впроваджувати, супроводжувати, експлуатувати програмні засоби роботи з даними і знаннями в комп’ютерних системах і мережах.
 

2024 рік