Об'єктно-орієнтоване програмування 1
Мета вивчення дисципліни: формування фундаментальних понять, принципів і методів об’єктно-орієнтованого програмування: поняття об’єкту, абстракції, спадкоємства, поліморфізму, інкапсуляції, мови, методології і технології об’єктно-орієнтованого програмування.
Практичне значення та використання отриманих знань: розглянути підходи дозволяють навчити майбутніх фахівців основних етапів процесу проектування програмного забезпечення і визначення принципів об’єктно-орієнтованого програмування щодо розробки програм мовою C++, типовим підходам до розробки і аналізу найбільш розповсюджених алгоритмів рішення економіко-математичних задач, здійснення аналізу можливостей сучасних інструментальних середовищ розробки програм (на прикладі середовища Visual C++ MFC), та визначення концепцій і вивчення основних принципів організації віконних програм у середовищі ОС Windows.
4 Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1. “Принципи ООП. Загальний пристрій Windows. Особливості програмування для ОС Windows. Принципи ООП. Поняття об'єкту. Поліморфізм, спадкоємство і інкапсуляція.. Структура програми ОС Windows.. Об'єкти, використовувані в ОС Windows.. Пристрій ОС Windows. Типи даних”.
Лекція 2. “Проста програма на мові С для ОС Windows. Цикл обробки повідомлень. Принцип побудови простої програми для ОС Windows.. Види вікон.. Головне вікно застосування. Діалогові вікна. Повідомлення. Черги повідомлень. Пріоритет.. Функції API для роботи з повідомленнями”.
Лекція 3. “Основна функція вікна. Поняття дочірніх вікон. Організація виводу у вікно. Системи координат. Основна функція вікна. Обробка повідомлень за умовчанням. Створення дочірніх вікон. Повідомлення WM_PAINT. Поняття контексту пристрою. Види систем координат. Перетворення систем координат. Режими відображення. Робота з пристроями відображення”.
Лекція 4. “Робота з клавіатурою і мишею. Фокус введення. Робота з пам’яттю Windows. Повідомлення клавіатури. Шляхи і послідовність обробки повідомлень клавіатури. Поняття фокусу введення. Z-послідовність.. Повідомлення миші. Захоплення миші. Види пам’яті. Доступ до об’єктів пам’яті. Управління пам’яттю. Робота з пам’ятаю. Обмін даними за допомогою пам’яті”.
Лекція 5. “Робота з файлами ОС Windows. Поняття ресурсів. Акселератори та меню. Створення файлів. Рівні доступу. Введення інформації з файлів. Виведення інформації в файл. Графічні файли. Поняття ресурсів в ОС Windows. Створення акселераторів. Загрузка акселераторів. Використання акселераторів. Створення меню. Загрузка меню. Модифікація меню”.
Лекція 6. “Поняття ресурсів. Діалогові вікна. Ікони, картинки, рядкові і призначені для користувача ресурси. Ресурси діалогових вікон. Основна функція діалогового вікна. Система координат діалогового вікна. Модальні та немодальні діалоги. Стандартні діалоги. Ікони.. Рядки. Призначені для користувача ресурси.. Створення/видалення ресурсів”.
Лекція 7. “Таймер. Буфер обміну. Реєстр. Обробка помилок та виключень ОС Windows. Створення таймера. Режими роботи таймера. Доступ та керування буфером обміну. Призначення розділів реєстру. Доступ до ключів реєстру. Створення/видалення інформації з реєстру. Обробка помилок за допомогою Windows API. Особливості обробка виключень ОС Windows. Формування повідомлень користувачу про виключних подіях. Класи та ієрархія обробки виключень”.
Лекція 8. “Основні відомості про STL. Вектори. Состав STL. Поняття ітератора. Види ітераторів. Поняття масивів змінної довжини. Вектори. Використання векторів. Застосування ітераторів для роботи з елементами контейнерів”.
Лекція 9. “Бібліотека STL. Списки та черги. Асоціативні контейнері. Списки. Черги. Відмінності звичайних контейнерів. Поняття асоціативного контейнеру. Безлічі. Словники. Дублікати ключів в асоціативному контейнері”.
Лекція 10. “Бібліотека STL. Алгоритми. Поняття алгоритмів бібліотеки STL. Алгоритми пошуку. Підрахунок. Пошук підпослідовності. Копіювання. Обмін. Заміна. Перетворення. Видалення. Генерація. Розділення. Заповнення”.
Лекція 11. “Бібліотека STL. Алгоритми сортування та числові операції. Адаптери. Сортування. Бінарний пошук. Об’єднання. Операції над безлічами. Операції над пірамідами. Мінімум та максимум. Скалярний добуток. Сума та різниця. Адаптери ітераторів. Адаптери контейнерів. Адаптери функцій”.
Лекція 12. “Особливості мови програмування C ++ v.11. Історія створення нового стандарту версії 11. Посилання на тимчасові об'єкти та семантика перенесення.. Узагальнені константні вирази. Зовнішні шаблони. Альтернативний синтаксис функцій. Списки ініціалізації. Універсальна ініціалізація. Виведення типів. For-цикл з колекції. Лямбда-функції та вирази”.
Лекція 13. “Особливості мови програмування C ++ v.11. Продовження. Поліпшення конструкторів об'єктів. Явне заміщення віртуальних функцій та фінальність. Константа нульового покажчика. Перерахування зі строгою типізацією. Кутові дужки. Оператори явного перетворення. typedef для шаблонів. Зняття обмежень із union. Ідентифікатори зі спеціальним значенням”.
Лекція 14. “Особливості мови програмування C ++ v.11. Продовження. Висновок типу значення, що повертається для функцій. Альтернативний висновок типу при оголошенні. Зменшення обмежень на константні вирази. Шаблони змінних. Агрегатна ініціалізація класів із ініціалізаторами полів. Літерали двійкових чисел. Розділювачі розрядів. Узагальнені лямбда-функції. Захоплення виразів для лямбда-функцій. Атрибут [[deprecated]]”.
Лекція 15. “Особливості мови програмування C ++ v. 11. Продовження. Шаблони зі змінною кількістю аргументів. Нові строкові літерали. Тип long long int. Статична діагностика. Зміни у наявних компонентах. Хеш-таблиці. Регулярні вирази”.
Лабораторні заняття
Лабораторна робота №1. “Основи програмування серед Windows: віконна процедура, цикл повідомлень”.
Мета роботи: Вивчити принципи функціонування програм у віконному середовищі операційної системи Microsoft Windows. Навчитися розробляти віконні програми, засновані на циклі обробки системних повідомлень.
Лабораторна робота №2,3. “Основи програмування серед Windows: віконна процедура, робота з основними елементами управління”.
Мета роботи: Вивчити принципи функціонування програм у віконному середовищі операційної системи Microsoft Windows. Навчитися розробляти віконні програми, використовуючи основні функції WinAPI та функції керування віконними елементами.
Лабораторна робота №4,5. “Основи програмування для середовища Windows: виведення у вікно”.
Мета роботи: Вивчити принципи функціонування та взаємодії програм у віконному середовищі багатозадачної операційної системи Microsoft Windows. Навчитися розробляти віконні програми, що виводять інформацію у вікна. Вивчити основні функції WinAPI та функції для керування вікнами.
Лабораторна робота №6. “Основи програмування серед Windows: ресурси, діалогові вікна”.
Мета роботи: Вивчити принципи функціонування та взаємодії програм у віконному середовищі багатозадачної операційної системи Microsoft Windows. Навчитися розробляти віконні програми, що використовують для роботи діалоги; а також створювати та використовувати ресурси програм Windows. Вивчити основні функції WinAPI та функції для керування діалоговими вікнами та їх елементами.
Лабораторна робота №7. “Основи програмування в середовищі Windows: ресурси, робота з меню та акселераторами”.
Мета роботи: Вивчити принципи функціонування та взаємодії програм у віконному середовищі багатозадачної операційної системи Microsoft Windows. Навчитися розробляти віконні програми, а також створювати та використовувати ресурси програм Windows. Вивчити основні функції WinAPI та функції для роботи з меню та акселераторами.
Лабораторна робота №8,9. “Основи програмування серед Windows: діалогові вікна загального користування, робота з файлами”.
Мета роботи: Вивчити принципи функціонування та взаємодії програм у віконному середовищі багатозадачної операційної системи Microsoft Windows. Навчитися розробляти віконні програми, а також створювати та використовувати файли. Вивчити основні функції WinAPI та функції для роботи з файлами та діалоговими вікнами загального користування.
Лабораторна робота №10,11. “Програма мовою C++. Використання бібліотеки STL. Вектор”.
Мета роботи: Вивчити принципи використання шаблонів та бібліотеки шаблонів STL (Standard Template Library) мовою C++. Навчиться розробляти програми за допомогою векторних класів.
Лабораторна робота №12. “Введення до стандартної бібліотеки шаблонів C++. Контейнери”.
Мета роботи: Вивчити структуру та основні елементи стандартної бібліотеки шаблонів. Навчитися використовувати ітератори для роботи з елементами векторів, черг, списків та стеків.
Лабораторна робота №13. “Використання бібліотеки STL. Безліч та списки”.
Мета роботи: Вивчити принципи використання бібліотеки шаблонів STL (Standard Template Library) мовою C++. Навчиться розробляти програми, використовуючи класи множин та списків.
Лабораторна робота №14,15. “Використання особливостей мови програмування C ++ v.11”.
Мета роботи: Вивчити засади використання особливостей мови програмування C++ v.11. Навчиться розробляти програми, використовуючи лямбда функції та інші нововведення мови C++.
Консультації здійснюються впродовж семестру згідно встановленого розкладу.
Форми контрольних заходів та оцінювання результатів навчання
Для денної форми здобуття освіти
Поточний контроль полягає у виконанні
1) 10-ти лабораторних робіт. Лабораторні роботи виконуються з використанням засобів розробки DevC++ відповідно до мети та завдань. По результатах виконання кожної лабораторної роботи оформлюється і захищається відповідний протокол. Бездоганне виконання кожної лабораторної роботи оцінюється у 4 балі;
2) двох модульних контрольних робіт. Модульні контрольні роботи складаються з теоретичної і практичної частин та проводяться у формі тестування.
Бездоганне виконання кожної модульної контрольної роботи становить 30 балів.
Підсумковий контроль – екзамен. Екзамен у письмовій формі. Максимальна оцінка, яку може отримати студент – 100 балів.
Політика освітнього процесу та умови допуску до підсумкового контролю
Активна участь в практичних заняттях, дотримання графіків здачі контрольних та індивідуальних завдань, самостійна робота здобувача при підготовці до всіх видів аудиторних занять, присутність на консультаціях. Здобувачі зобов’язані дотримуватись принципів академічної доброчесності при виконанні модульних контрольних робіт, поточних контрольних та індивідуальних завдань, складання заліку/екзамену.
Робота, яка виконана після встановлених викладачем термінів, не приймається.
Відсутність здобувача на контрольній роботі відповідає оцінці «0».
Під час всіх видів аудиторних занять здійснювати телефонні дзвінки забороняється.
Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження модульних та підсумкового контролів.
ПРН8. Володіти сучасними методами розробки програм і програмних комплексів та прийняття оптимальних рішень щодо складу програмного забезпечення, алгоритмів процедур і операцій.
ПРН9. Вміти створювати ефективні алгоритми для обчислювальних задач системного аналізу та систем підтримки прийняття рішень.
ПРН10. Знати архітектуру сучасних обчислювальних систем і комп’ютерних мереж.
ПРН13. Проектувати, реалізовувати, тестувати, впроваджувати, супроводжувати, експлуатувати програмні засоби роботи з даними і знаннями в комп’ютерних системах і мережах.