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

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;