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

Спеціальність: Комп'ютерні науки
Код дисципліни: 6.122.00.O.012
Кількість кредитів: 5.00
Кафедра: Автоматизовані системи управління
Семестр: 2 семестр
Форма навчання: денна

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

Спеціальність: Комп'ютерні науки
Код дисципліни: 6.122.00.O.014
Кількість кредитів: 5.00
Кафедра: Системи штучного інтелекту
Лектор: Гасько Р.Т.
Семестр: 2 семестр
Форма навчання: денна
Результати навчання: знати: основні можливості та обмеження мов програмування Java типи даних та основні конструкції мов Java реалізацію концепції об’єктно-орієнтованого програмування у Java як реалізовувати взаємодію із базами даних та файловою системою вміти: здійснювати пошук інформації в різних джерелах для розв’язання задач спеціальності; ефективно працювати як індивідуально, так і у складі команди, представляти результати роботи; уміти здійснювати пошук інформації в різних джерелах для розв’язання задач спеціальності; уміти системно мислити та застосовувати творчі здібності до формування принципово нових ідей; створити власний програмний продукт, використовуючи концепцію об’єктно-орієнтованого програмування і асинхронність обробки; створити модуль з можливістю його використання сторонніми розробниками; працювати із популярними реляційними базами використовуючи моделі, написані на мові Java; використовувати багатопотоковість і багатоядерні процесори для розробки ПЗ за допомогою Java; розробляти тести для автоматичної перевірки функціонування програмного продукту.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Алгоритмізація та програмування ч.1 Командна робота та презентаційні навички Алгоритмізація та програмування ч.2
Короткий зміст навчальної програми: Основні принципи ООП. SOLID принципи. Оголошення та ініціалізація змінних; приведення примітивних типів; різниця між примітивними типами та вказівниковими типами; читання і запис полів об’єкта; життєвий цикл об’єкта Використання Java операторів СТВОРЕННЯ І ВИКОРИСТАННЯ МАСИВІВ МОВОЮ ЯВА ВИКОРИСТАННЯ ЦИКЛІВ МОВИ JAVA РОБОТА З МЕТОДАМИ ТА ІНКАПСУЛЯЦІЄЮ ЗАСОБАМИ МОВИ JAVA РОБОТА З НАСЛІДУВАННЯМ ЗАСОБАМИ МОВИ ЯВА РОБОТА З СПЕЦІАЛІЗОВАНИМИ КЛАСАМИ МОВИ JAVA БАГАТОПОТОКОВІСТЬ І АСИНХРОННІСТЬ ЗАСОБАМИ МОВИ JAVA
Методи та критерії оцінювання: лабораторні роботи - 40 практичні роботи - 10 письмова компонента - 40 усна компонента – 10
Рекомендована література: Joshua Bloch. Effective Java, Second Edition. – Addison-Wesley – 2008 – 346p. Raoul-Gabriel Urma. Java 8 in Action: Lambdas, Streams, and functional-style programming, First Edition. – Manning Publications – 2014 – 424p Ho, Clarence, Harrop, Rob, Schaefer, Chris. Pro Spring 4. – Apress – 2014 – 683 p

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

Спеціальність: Комп'ютерні науки
Код дисципліни: 6.122.00.O.013
Кількість кредитів: 5.00
Кафедра: Системи автоматизованого проектування
Лектор: к.т.н., асистент каф. САП Оборська Оксана Володимирівна
Семестр: 2 семестр
Форма навчання: денна
Результати навчання: Внаслідок вивчення дисципліни “Об’єктно-орієнтоване програмування” студенти повинні: - знати основи об’єктно-орієнтованого програмування; - володіти сучасними методами та засобами об’єктно-орієнтованого програмування з використанням середовища Visual Studio; - вміти обробляти виключення і бібліотеки класів; - використовувати технології об’єктно-орієнтованого програмування. - володіти принципами побудови інформаційних моделей. Формування теоретичної бази знань студентів з мови програмування C/C++; - ознайомитись з принципами пошуку помилок в програмах і методами їх відлагодження та тестування; - набути практичних навичок роботи з типовими задачами програмування і методами їх рішення. - оцінювати отримані результати та аргументовано захищати їх під час здачі звіту.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: пререквізити: алгоритмізація та програмування ч.1, алгоритмізація та програмування ч.2; кореквізити: дискретна математика.
Короткий зміст навчальної програми: Курс “Об’єктно-орієнтоване програмування” включає таке коло питань: Основи об’єктно-орієнтованої мови програмування С++. Історія виникнення. Відмінності мови С та С++ не пов’язані з використанням об’єктів. Порівняння функціонального та об’єктного підходу. Об’єктно – орієнтоване програмування. Головні принципи об’єктного підходу. Абстрагування. Обмеження доступу. Модульність. Ієрархія. Поняття класів та об'єктів. Конструктори та деструктори. Протоколи опису класу. Створення об’єктів. Доступ до полів та методів. Використання специфікаторів доступу класу. Види класів. Контейнерні, вкладені, локальні. Конструктори та деструктори. Правила визначення конструкторів. Методи ініціалізації елементів у конструкторах. Порядок виклику конструкторів та деструкторів. Статичні члени класу. Перевантаження функцій та операцій. Унарні та бінарні оператори. Класи потоків С++. Операції поміщення та вилечення. Передресація введення та виведення. Визначення потокових операцій як дружніх. Функції керування процесом I/O. Прапорці форматування. Маніпулятори. Файлові потоки. Обробка виняткових ситуацій. Засоби керування, викидання об’єктів, структурне керування винятками. Успадкування (одинарне, множинне). Механізм успадкування. Керування доступами. Дружні класи та дружні функції. Інкапсуляція, наслідування, поліморфізм. Віртуальні функції. Чисті віртуальні функції та абстрактні базові класи. Розміщення VPTR та таблиці VMT у пам’яті. Віртуальні деструктори. Бібліотека стандартних шаблонів. Стек, списки, черги, деки, асоціативні відображення, множини. Рядки символів, вектори, матриці, алгоритми, масиви значень. Бібліотека стандартних шаблонів. Параметризовані функції. Параметризовані класи. Контейнери. API – функції для управління потоками та процесами. Синхронізація потоків у Windows. DLL (Dynamic-Linc Library). Qt Creator. Огляд властивостей DLL. Створення DLL і застосування Qt. Qt Creator - основні властивості. Засоби UML. Об’єктно-орієнтований аналіз та проектування предметного середовища засобами UML. Патерни та антипатерни проектування. Особливості роботи.
Методи та критерії оцінювання: - поточний контроль (45%): письмові звіти з лабораторних робіт, усне опитування; - підсумковий контроль (55%, екзаменаційний контроль): тестування (45%), усна компонента (10%).
Рекомендована література: - Страуструп Б. Язык программирования Си++: Пер. с англ. – М.: Радио и связь, 1991.-352с. - Прата Стивен. Язык программирования С++. Лекции и упражнения. Учебник: пер. С англ./ Стивен Прата – СПб.: OOO<<ДиаСофтЮП>>, 2005. – 1104 c. - Харви Дейтел, Пол Дейтел. Как программировать на С++, 2001. – 1007 с.(електронний варіант) - Аверкин В.П., Бобровський А.І., Веснич В.В., Радушинський В.Ф., Хомоненко А.Д. Программирование на С++, 2003. – 249 с.(електронний варіант) - Шилдт Г. Теория и практика С++: пер. с англ. – СПб.: BHV – Санк-Петербург, 1996. – 416 с. - Павловская Т. А. С/С++. Программирование на языке высокого уровня / Т. А. Павловская. – СПб. : Питер, 2007. – 461 с.