Форма № Н-3.03

Міністерство освіти і науки України

ЖИТОМИРСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

Кафедра програмного забезпечення систем

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

Програма

нормативної навчальної дисципліни

підготовки бакалаврів

напряму 6.050103 "Програмна інженерія"

(Шифр за ОПП 3.05)

Житомир

2014 рік

 

РОЗРОБЛЕНО ТА ВНЕСЕНО: Житомирський державним технологічним університетом

РОЗРОБНИКИ ПРОГРАМИ: Ковальчук Вікторія Наумівна, доцент кафедри програмного забезпечення систем, к. п.н.

Обговорено та рекомендовано до затвердження Вченою радою факультету інформаційно-комп’ютерних технологій

“____” _______________ 20___ року,
протокол №__

Вступ

Програма вивчення навчальної дисципліни “ Об’єктно-орієнтоване програмування ” складена відповідно до освітньо-професійної програми підготовки бакалаврів 6.050103 "Програмна інженерія"

Предметом вивчення навчальної дисципліни «Об’єктно-орієнтоване програмування» є теоретичні відомості про об’єктно-орієнтований підхід до програмування та мова С++ як засіб створення програм з використанням ООП підходу.

Міждисциплінарні зв’язки: під час вивчення дисципліни студент використовує знання та навики набуті при вивченні дисциплін: ПП 3.01 Основи програмної інженерії, ПП 3.02 Основи програмування. Дана дисципліна забезпечує вивчення таких дисциплін: ПП 3.04 Комп’ютерна дискретна математика, ПП 3.07 Алгоритми та структури даних та ПП 3.09 Людино-машинна взаємодія.

Програма навчальної дисципліни складається з таких змістових модулів[1]:

НЕ нашли? Не то? Что вы ищете?

1.  Основи об’єктно-орієнтованого програмування.

2.  Наслідування та поліморфізм.

3.  Шаблони, виключні ситуації та класи стандартної бібліотеки мови С++.

4.  Об’єктно-орієнтоване проектування складних систем.

1. Мета та завдання навчальної дисципліни

1.1. Мета викладання дисципліни – навчити студентів самостійно будувати програми середньої складності мовою С++ з використанням структурно-модульного та об’єктно-орієнтованого методу програмування.

1.2. Основними завданнями вивчення дисципліни є ознайомлення з основами об’єктно-орієнтованого програмування, отримання навичок використання класів, механізмів наслідування, інкапсуляції, поліморфізму.

1.3. Згідно з вимогами освітньо-професійної програми студенти повинні знати:

·  передумови і історію виникнення об’єктно-орієнтованого підходу

·  поняття класу та об’єкту

·  методи об’єктно-орієнтованого аналізу і проектування

·  основні синтаксичні конструкції мови С та С++

·  найважливіші класи та функції стандартних бібліотек мови С та С++, що включає управління пам’яттю, файлами, консоллю, математичні обчислення

·  основні методології розробки програмного забезпечення, особливості їх застосування для об’єктно-орієнтованих програм

·  поняття патерну проектування, види паттернів, особливості їх використання.

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

·  складати програми мовами С та С++

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

·  побудувати структурований алгоритм обробки базових структур даних із застосуванням об’єктно-орієнтованого підходу

·  програмно реалізувати поняття у вигляді класу, створити об’єкти даного класу

·  виділити загальні методи обробки даних у окремі класи та методи застосувати принципи інкапсуляції, обмеження доступу та поліморфізму для побудови програми середньої складності.

На вивчення навчальної дисципліни відводиться 288 години 8 кредитів ЄКТС[2].

2. Інформаційний обсяг навчальної дисципліни

Змістовий модуль 1. Об’єктно-орієнтоване програмування.

Тема 1. Основи об’єктно-орієнтованого програмування. Вступ до мови Сі++. Основні особливості мови, не пов’язані з об’єктно-орієнтованим програмуванням. Поняття об’єкту та його порівняння зі структурами даних та алгоритмів в мові Сі. Оператори new та delete для керування пам’яттю.

Тема 2. Вбудовані (inline) функції. Перевантаження імен функцій. Аргументи по замовчуванню. Однорядкові коментарі. Глобальні константи. Скорочена форма при використанні означень struct, enum, union.

Змістовий модуль 2. Інкапсуляція та приховання інформації.

Тема 1. Поняття інкапсуляції. Поняття про захист внутрішніх даних об’єкту. Метод як канал доступу до внутрішніх даних. Модель об’єкта як чорного ящика. Клас та екземпляр.

Тема 2. Найпростіший синтаксис означення класу. Специфікатори доступу public, protected та private. Означення методів класу за межами класу

Змістовий модуль 3. Розподіл поведінки та реалізації.

Тема 1. Конструктори, їх роль та призначення. Конструктори по замовчуванню та з параметрами. Особливості ініціалізації членів-даних, винесення перед тілом конструктора. Динамічне виділення пам’яті для об’єкту: виклик конструктора з оператору new. Деструктори.

Змістовий модуль 4. Класи та підкласи.

Тема 1. Відношення клас-підклас та його зв’язок з відношенням абстрактне-конкретне. Сумісність типів знизу вгору.

Тема 2. Дружні функції, окремі класи та класи в цілому, обхід механізмів захисту членів класу. Переваги та недоліки використання механізму дружності в програмах з об’єктно-орієнтованою композицією.

Змістовий модуль 5. Успадкування (перевизначення, динамічне зв'язування)

Тема 1. Наслідування. Механізм наслідування членів-даних та методів.

Тема 2. Перевантаження операторів функціями та методами.

Змістовий модуль 6. Поліморфізм (поліморфізм підтипів і успадкування)

Тема 1. Поліморфізм та віртуальні функції. Поняття оголошеного та фактичного типу. Механізм виклику віртуальної функції.

Змістовий модуль 7. Ієрархія класів

Тема 1. Ієрархія класів. Приклади. Множинне наслідування та його проблеми.

Тема 2. Особливості виклику конструктора базового класу з конструктору надкласу. Порядок виклику конструкторів та деструкторів для об’єктів похідних класів.

Змістовий модуль 8. Класи колекцій і протоколи ітерації

Тема 1. Класи потоків введення-виведення. Управління форматом, модифікатори.

Тема 2. Шаблони функцій та класів.

Тема 3. Класи колекцій стандартної бібліотеки.

Тема 4. Обробка виняткових ситуацій. Поняття про виняткову ситуацію. Обґрунтування вимог до механізму обробки винятків. Оператори try, throw і catch. Порядок генерування та перехоплення виняткової ситуації.

3. Рекомендована література

Основна

1.  Войтенко ія та практика (мова С). — Житомир, 2002.

2.  С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003. – 461с.

3.  Х. Дейтел, П. Дейтел. Как программировать на С++. – Binom, 2000. – 1037 с

4.  Б. Керниган, Р. Пайк. Практика программирования – СПб.; М.: «Невский диалект» , 2001

5.  Язык программирования Си. - М.: Финансы и статистика, 1992. — 272 с.

6.  Энциклопедия языка Си.— М.: Мир, 1992. —687 с.

7.  І., Березин курс С и С++. – М.: ДИАЛОГ-МИФИ, 1996. – 288с.

8.  Объектно-ориентированный анализ и проектирование. — К.; 2002.

9.  Введение в С++.

10.  З. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб: Питер, 2001. – 368 с.

Допоміжна

11.  Принципы объектно-ориентированной разработки программ. 2-е издание. – М.: Издательский дом «Вильямс», 2002. – 496 с.

12.  «Структурные модели в объектно-ориентированном анализе и проектировании». Издательство «Лори», 1999

13.  Шаммас С++ и объектно-ориентированного программирования. – К. : Диалектика, 1996. – 448с.

14.  Алгоритмы и структуры данных. — М.: Мир, 1989

15.  Ахо, Хопкрофт, Ульман. Структуры данных и алгоритмы.— М.: Вильямс, 2000. — 384 с.

4. Форма підсумкового контролю успішності навчання: екзамен (2 семестр).

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

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

Підсумковий контроль – екзамен відбувається за підготовленими викладачем і затвердженими на засіданні кафедри екзаменаційними білетами, які містять дві частини – практичну (виконується на ПЕОМ) і теоретичну (у усної співбесіди за визначеними питаннями).

Розробники програми:

, к. п.н., доцент кафедри програмного забезпечення систем ЖДТУ

[1] Назви тем змістовних модулів згідно стандарту

[2] За навчальним планом