Објектно оријентисана парадигма

ID: 7091
Врста предмета: научно-стручни
Носилац предмета: Радојевић Љ. Слободан
Извођачи: Радојевић Љ. Слободан
Контакт особа: Радојевић Љ. Слободан
Ниво студија: Основне академске студије – Информационе технологије у машинству
ЕСПБ: 5
Облик завршног испита: писмени+усмени
Катедра: Катедра за информационе технологије у машинству

Извођења

Циљ

Омогућити студентима да усвоје знање из основа објектно оријентисаног програмирања. Да разумеју наслеђивање као суштину хијерархије класа, и како се формирају инстанце - реализација објеката коју такве хијерархије описију. Упознати их са учаурењем, преоптерећењем, полиморфизмом и какав је утицај ових особина на инстанце. Студенти морају да формирају и користе сопствене системе класа поштујући методологије објектно оријентисаног дизајна.

Исход

Oспособљеност студента да пројектује систем класа, реализује га и функционално користи. Упознаће основне контејнере и начин њихове употребе да би се креирали објекти система класа.

Садржај теоријске наставе

1. Основно о објектно оријентисаном софтверу. Појам класе, објекта, инстанце. 2. Основно о учаурењу, преоптерећењу, полиморфизму и наслеђивање. 3. Пројектовање класе и система класа. 4. Конструктори и деструктор. Експлицитни и имплицитни конструктори. Како и када се извршавају конструктори и деструктори. 5. Наслеђивање и односи објеката надкласе и подкласе. Примена модова приступа у наслеђивању. 6. Врсте наслеђивања, једноструко линеарно, вишеструко линеарно, хијерархиско, вишеструко хијерархијско, проблем дијаманата. 7. Преоптерећење оператора и функција. Полиморфизам и начин позивања одређеног метода у систему полиморфизма. Виртуелне функције. 8. Виртуелна класа и њено место у систему класа. 9. Пријатељска класа и њено место у систему класа. 10. Идеја контејнера. Вектор контејнер и употреба. Проблем динамичке меморије. 11. Излаз и улаз података објекта коришћењем вектора.

Садржај практичне наставе

1. Улаз и излаз у C++. Синтакса класе у C++. 2. Конструктори и деструктори. Примери експлицитног и имплицитног конструктора. Позивање конструктора и деструктора. 3. Пример single хијерархије класа. Преглед модова приступа подацима у хијерархији класа. 4. Преоптерећење оператора и основни примери полиморфизма. 5. Конструктори и деструктор. Примери конструктора и деструктора и увид у начин извршавања њиховог кода кроз dibugger. 6. Врсте наслеђивања на примeрима и како се користе модова приступа. 7. Пример вишеструког хијерархијског система класа. 8. Проблем дијаманта и начин решавања. 9. Употреба виртуелне и пријатељске класе. 10. Вектор контејнер и употреба. Проблем динамичке меморије. 11. Стварање објеката у контејнеру вектор.

Услов похађања

Програмирање. Структуре података. Основе теорије алгоритама. Основе оперативних система.

Ресурси

C++11, C++14, C++17, C++20 gcc/g++ Kate, Visual Studio Code

Фонд часова

Укупан фонд часова: 75

Активна настава (теоријска)

Ново градиво: 25
Разрада и примери (рекапитулација): 0

Активна настава (практична)

Аудиторне вежбе: 25
Лабораторијске вежбе: 10
Рачунски задаци: 0
Семинарски рад: 0
Пројекат: 0
Консултације: 0
Дискусија/радионица: 0
Студијски истраживачки рад: 0

Провера знања

Преглед и оцена рачунских задатака: 0
Преглед и оцена лабораторијских извештаја: 0
Преглед и оцена семинарских радова: 0
Преглед и оцена пројекта: 0
Колоквијум са оцењивањем: 10
Тест са оцењивањем: 0
Завршни испит: 5

Провера знања (укупно 100 поена)

Активност у току предавања: 0
Тест/колоквијум: 70
Лабораторијска вежбања: 0
Рачунски задаци: 0
Семинарски рад: 0
Пројекат: 0
Завршни испит: 30
Услов за излазак на испит (потребан број поена): 70

Литература

Bjarne Stroustrup; A Tour of C++; Addison-Wesley; Bjarne Stroustrup; C++ Programming language; Addison-Wesley; Ulla Kirch-Prinz, Peter Prinz; A Complite Guide to Programming in C++; Jones and Bartlett Publishers; Nell Dale; C++ Data Structures; Jones and Bartlett Publishers