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

Обов'язкова дисципліна
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 6.0.
Кількість аудиторних занять: 
30 годин лекційних занять, 14 годин практичних занять, 16 години лабораторних занять.
Самостійна робота: 
складає 120 годин.
Індивідуальна робота: 
• очна форма — курсова робота.
Семестровий контроль: 
Екзамен. Захист курсової роботи.
Освітню компоненту забезпечує: 
Викладач: 
: ст. викладач Федорова Г.М..
Анотація: 

Анотація навчальної дисципліни

Мета дисципліни:
забезпечити теоретико-практичну підготовку студентів, яка буде основою для  подальшого вивчення дисциплін, пов’язаних з технологіями розробки програмного забезпечення, надбання студентами знань з теорії та практики об’єктно-орієнтованого аналізу і програмування.
Завдання дисципліни:
-    розвити уміння аналізувати предметну область
-    розвити здібності до  абстрагування для виділення об’єктів та класів, 
-    оволодіти стилем та прийомами об’єктно-орієнтованого  програмування, 
-    оволодіти основами тестування та налагодження програм.

Основні результати навчання

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

Форми організації освітнього процесу та види навчальних занять

Л – лекційні заняття; ЛЗ – лабораторні заняття; ПР – практичне заняття; СРС – самостійна робота здобувача вищої освіти; КР – курсова робота; МКР – модульна контрольна робота; К – консультації.

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

1 тиждень

          Л1. Введення в платформу. Машинна математика. Системи числення. Типи даних. Арифметичні операції.
ПР1.Типи даних, введення / виведення.
СРС. К.

2 тиждень

          Л2. Особливості та переваги мови Java. Процес компілювання та виконання програми. Коментарі, типи даних, операції. Елементарні програми на мові Java. Клас String.
ЛР1. Компілювання простої програми на мові Java.
СРС. К.

3 тиждень

    Л3.Організація розгалужень та циклів. Оператори break i continue. Застосування масивів.
ПР2. Застосування операторів break i continue і масивів в програмах на Java.
СРС. К.

4 тиждень

Л4. Умовні конструкції. Логічні та бітові операції. Оператори порівняння. пріоритет операцій.
ЛР2. Программа для проведення арифметичних дій на мові Java.
СРС. К.
 

         
5 тиждень

Л5. Структура класу. Конструктори. Об’єкти як параметри. Об’єкти як значення, що повертаються. Ключове слово this. 
ПР3. Застосування конструкторів на мові Java.
СРС. К.

6 тиждень

Л6. Статичні дані та методи. Опис констант. Знищення об’єкта метод finalize.
ЛР3. Робота з рядками на мові Java.
СРС. К.

7 тиждень

Л7. Циклічні конструкції. Оператори переходу. Оптимізація арифметичних обчислень.
ПР4. Робота з функціями на мові Java.
МКР1
СРС. К.

8 тиждень

Л8. Суперклас та підклас.  Сумісність об’єктів в ієрархії успадкування.  Динамічне зв’язування, поліморфізм. Абстрактні класи.
ЛР4. Програма з декількома класами на мові Java.
СРС. К.
 

9 тиждень

Л9. Використання ключового слова final для запобігання успадкуванню. Клас Object.
ПР5.Створення ієрархії класів. Мова Java.
СРС. К.

10 тиждень

Л10. Одновимірні масиви. Обробка одновимірних масивів. Алгоритми сортування.
ЛР5. Реалізація обробки масивів на мові Java.
СРС. К.

11 тиждень

Л11.  Інтерфейси – загальні положення.  Реалізація інтерфейсу.  Посилання на інтерфейс. 
ПР6. Застосування інтерфейсів в програмах на мові Java.
СРС. К.

12 тиждень

Л12.  Реалізація у одному класі декількох інтерфейсів.  Успадкування інтерфейсів.
ЛР6. Реалізація спадкування у мові Java.
СРС. К.

13 тиждень

Л13.  Класифікація виняткових ситуацій. Принцип обробки виняткової ситуації. Оператори try і catch.
ПР7. Застосування принципу обробки виняткової ситуації інтерфейсів в програмах на мові Java.
СРС. К.

14 тиждень

Л14.  Вкладені оператори try. Генерація виняткової ситуації.
ЛР7. Реалізація вкладених операторів та обробка виняткових ситуацій у мові Java.
СРС. К.

15 тиждень

Л15. Пакети, оператор import. Пакет Swing.  Фрейми.  Зображення геометричних фігур.  Управління кольором.  Виведення тексту.  Управління компоновкою.
ПР8. Застосування пакетів та фреймів в програмах на мові Java.
МКР2
СРС. К.

16 тиждень
 
Л16. Обробка подій. Внутрішні класи.   Обробка подій, пов’язаних з клавіатурою.  Обробка подій, пов’язаних з мишкою.
ЛР8. Програми з застосуванням інтерфейсів і  виняткових ситуацій. 
СРС. К.

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

Виконується КР. Метою курсової роботи є поглиблення та закріплення знань, одержаних при вивченні дисципліни «Об’єктно-орієнтоване програмування», та набуття практичних навичок у проектуванні та налагодженні програм, що застосовують класи та об’єкти. . Курсова робота передбачає створення ієрархії класів, застосування композиції, проектування методів, що забезпечують інтерфейс користувача.

1–2 тижні
Одержання й уточнення завдання.

3 тиждень
Визначення проблеми і користувачів.

4 тиждень
Уточнення предметної області у вигляді діаграм діяльності.

5 – 6 тижні
Розробка варіантів використання.

7 тиждень
Визначення концептуальних класів. 

8 тиждень
Розробка діаграми концептуальних класів. 

9–10 тижні
Розробка діаграм взаємодії.

11 тиждень
Створення специфікації програмних класів.

12 тиждень
Розробка чек-листа.

13 тиждень
Оформлення пояснювальної записки.

14 тиждень
Захист курсової роботи.

Самостійна робота

 

Процедура оцінювання

Система оцінювання рівня навчальних досягнень ґрунтується на принципах ЄКТС та є накопичувальною. Здобувачі протягом семестру готуються до лекційних, практичних та лабораторних занять, виконують 2 модульні контрольні роботи, КР.
Для забезпечення оперативного контролю за успішністю та якістю рівня навчальних досягнень здобувачів вищої освіти дисципліна поділяється на два семестрові модулі

Кожний модуль оцінюється у максимально можливі 50 балів:
Модульна робота складається з теоретичної частини  та практичної частини - задачі. 

Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №1 становить 6 балів, за виконання практичної частини – 24 бали. Максимальна оцінка за правильне виконання теоретичної частини модульної роботи №2 становить 6 балів, за виконання практичної частини – 24 бали.
Кількість запитань теоретичної частини модульної роботи №1 – 3. Кожна правильна відповідь теоретичної частини оцінюється в 2 бали. 
Кількість запитань теоретичної частини модульної роботи №2 – 2. Кожна правильна відповідь теоретичної частини оцінюється в 3 бали. 
Правильне розв’язання  задачі модульної роботи №1  оцінюється в 24 бали. Задача вважається розв’язаною, якщо при її розв’язанні коректно записано код на мові С++, застосовано конструктор, деструктор, статичні дані і методи, показано застосування об'єктів класів. 
Правильне розв’язання  задачі модульної роботи №2  оцінюється в 24 бали. Задача вважається розв’язаною, якщо при її розв’язанні коректно записано код на мові Java, застосовано інтерфейс, конструктор, виконано обробку виняткової ситуації, використані  static - члени класу,  показано застосування об’єктів класів. 

Оцінювання курсової роботи виконується виходячи з наступних вимог.
Визначення проблеми і користувачів – 4 балів.
Уточнення предметної області у вигляді діаграм діяльності – 8 балів.
Розробка варіантів використання 10 балів.
Визначення концептуальних класів – 5 балів. 
Розробка діаграми концептуальних класів – 5 бали. 
Розробка діаграм взаємодії – 10.
Створення специфікації програмних класів 5 балів..
Розробка чек-листа – 8 балів.
Оформлення пояснювальної записки -5 балів.
Захист курсової роботи -40 балів..

Максимальна оцінка, яку може отримати здобувач за всі виконані види робіт – 100 балів. 

Підсумковим контролем з дисципліни є усний екзамен, білет до якого складається з теоретичної частини (5 запитань) та практичної частини -задачі. За бездоганну відповідь на кожне теоретичне питання студент отримує – 8 балів. За бездоганне виконання  завдання практичної частини студент отримує – 60 балів. 
Максимальна оцінка за правильні відповіді на всі питання екзаменаційного білету становить 100 балів.

Семестровий модуль № 1

ЛЗ1- ЛЗ3. Оцінка за виконання – 10 балів. Термін виконання – 1-8 тиждень. 
ПР1- ПР4. Оцінка за виконання – 10 балів. Термін виконання – 1-8 тиждень. 
КР (ч.1). Оцінка за виконання – 30 балів. Термін надання – 8 тиждень.
МК1. Модульна контрольна робота – 30 балів (8 тиждень). Перескладання можливе протягом 9–11 тижнів за розкладом консультацій.

Семестровий модуль № 2

ЛЗ4- ЛЗ7. Оцінка за виконання – 10 балів. Термін виконання – 9-15 тиждень. 
ПР5- ПР8. Оцінка за виконання – 10 балів. Термін виконання – 9-15 тиждень. 
КР(ч.2). Оцінка за виконання – 70 балів. Термін надання 14 тиждень.
МК2. Модульна контрольна робота – 30 балів (14 тиждень).

Умови допуску до підсумкового контролю

До екзамену допускаються здобувачі вищої освіти, які виконали всі види навчальних елементів навчальної дисципліни на не менш, ніж на 60 %.

Екзамен відбувається за всіма тематичними (змістовними) модулями дисципліни.

Політика освітнього процесу

Здобувач зобов’язаний своєчасно та якісно виконувати всі отримані завдання; за необхідністю з метою з’ясування всіх незрозумілих під час самостійної та індивідуальної роботи питань, відвідувати консультації викладача. Дотримуватись принципів академічної доброчесності.

Виконаний не свій варіант завдання здобувачем не оцінюється.

Робота, яка виконана після встановлених викладачем термінів, не приймається.

Відсутність здобувача на екзамені або на контрольній роботі відповідає оцінці «0». 
Складання/перескладання екзаменів – за встановленим деканатом розкладом.

Під час лекції здійснювати телефонні дзвінки забороняється.

Заборонено використання будь-яких підручників, посібників, конспектів лекцій, шпаргалок під час проходження  екзамену з дисципліни.

Документи (файли), що додаються: Робоча програма навчальної дисципліни.

Література
1.    Хольгер Гаст Объектно-ориентированное проектирование. Концепции и программный код Издательство Вильямс: 2018. - 1040 с.
2.    Marc Loy, Patrick Niemeyer, Daniel Leuck. Learning Java. Fifth Edition. United States of America. Published by O’reilly Media Inc.: 2020 - 620 pages.
3.    Ian Darwin Java Cookbook: Problems and Solutions for Java Developers. United States of America. Published by O’reilly Media Inc.: 2020 - 717 pages.
4.    Коузен К. Современный Java: рецепты программирования / пер. с англ. А.А. Слинкина.- М.:ДМК Пресс, 2018, - 247 с. 
5.    Васильєв О.М. Програмування мовою Java. Тернопіль: Навчальна книга – Богдан, 2019  -696 с.
6.    Кунгурцев О.Б. Основи програмування на мові Java. Середовище Net Beans./О.Б. Кунгурцев – Одеса: ВМВ, 2006. – 182 с. 
7.    Scott Oaks. Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond.United States of America. Published by O’reilly Media Inc.: 2020 - 510 pages.

Методична література
1.    Кунгурцев О.Б. Конспект лекцій з дисципліни «Об’єктно-орієнтоване програмування» для студентів спеціальності 121 – Інженерія програмного забезпечення, – Одеса: ОНПУ, 2017. - 120 с. (КЛ08736)
2.    Кунгурцев О.Б.. Методичні вказівки до практичних занять з дисципліни «Об’єктно-орієнтоване програмування» для студентів спеціальності 121 - Інженерія програмного. – Одеса: ОНПУ, 2017. - 28 с. (МВ07935)
3.    Кунгурцев О.Б Методичні вказівки до лабораторних робіт з дисципліни «Об’єктно-орієнтоване програмування» для студентів спеціальності 121 «Інженерія програмного забезпечення». –  Одеса, ОНПУ, 2017. – 18 с. (МВ07937)
4.    Кунгурцев О.Б Методичні вказівки до курсової роботи з дисципліни «Об’єктно-орієнтоване програмування» для студентів спеціальності 121 – «Інженерія програмного забезпечення. - Одеса; ОНПУ, 2017. - 8 с. (МВ07936)

Додаткова література
1.    Гради Буч. Объектно-ориентированный анализ и проектирование./ Гради Буч – СПБ
: Бином, 2000. -560с.
2.    Шилдт, Герберт. Java : методика программирования/  Герберт Шилдт. М.; СПб.; К.: Вильямс, 2008. - 511с. 
3.    Лафоре, Роберт. Структуры даннях и алгоритмы Java/ Роберт Лафоре; пер. С англ.. – 2-е изд. – СПб. : Питер, 2011. – 704 с. 
4.    Язык программирования Java./ Кен Арнолд, Джеймс Гослинг, Дэвид Холмс-СПБ:
Вильямс, 2001 - 586с.

2021 рік