Naziv predmeta | Objektno programiranje |
Detalji | Kod VSITE124 Skr. OBJ ECTS 5 Godina 3 Semester Zimski semestar Vrsta izborni smjera Razina HKO 6 Preddiplomski studij E-Learning 0% |
Aktivnosti | IT zg - Zim 24/25 ECTS Jedinice Sati Svega P 1 15 2 30
A 0.5 15 1 15
L 0.5 6 2 15
S 0 0 0 0
KA 0 0 0 0
KP 0 2 1 0
PR 0 0 0 0
IP 0 0 0 0
IU 0 1 2 0
SU 3 1 90 90
|
Nastavnici | Nositelji: Nenad Čaklović, pred. |
Preduvjeti | Nema |
Sadržaj | Oblikovanje i implementacija programa u C++ jeziku: forma, funkcije i primitivni tipovi podataka. Klase i objekti. Nizovi, tokovi i operatori. Sučelje klase, apstrakcija i implementacija. Iteratori i obrasci. Polimorfizam i nasljeđivanje. Apstraktne klase. Generičke klase. Rukovanje iznimkama. Temeljne dinamičke strukture podataka. Interakcija s Windows 2000 operativnim sustavom. Pristup izradi većih projekata. Analiza zahtjeva, izrada zadatka, model sustava i objekata, izrada, testiranje i analiza upotrebe programa. Uvod u MFC klase.
|
Ciljevi učenja | Opća.
Principi objektnog i generičkog programiranja. Analiza postojećeg koda.
Vođenje manjih projekata. Pisanje sigurnog, jednostavnog i razumljivog
koda.
Posebna.
Programski jezik C++: definicija klasa i funkcija članova; izvođenje;
polimorfizam; predlošci; iznimke; standardna biblioteka
|
Ishodi učenja | 1. Razumjeti odlike, temelje i principe objektnog programiranja. 2. Čitati, razumjeti i analizirati postojeći kod - primjere, module ili projekte. 3. Pratiti moderne tendencije, standarde i alate u objektnom programiranju. 4. Dizajnirati i voditi manje projekte - analiza problema, specifikacija, planiranje, dokumentacija. 5. Samostalno izvoditi manje projekte - od definicije modula, biblioteka, klasa, funkcija do implementacije. 6. Bez problema se uklopiti u veće (nove ili postojeće) projekte unutar razvojnog tima
|
Sposobnosti | Kolegij pruža specijalistička znanja s područja programiranja kao nadogradnju jezgre računarstva i osposobljava polaznike za programiranje u programskom jeziku MS C++
|
Preporučena literatura | 1. Motik, Boris; Šribar, Julijan: «Demistificirani C++», Element Zagreb, 1997. 2. N. Plaziv+bat, Objektno orijentirano programiranje, Veleučilište u Splitu, Split 2002. 3. Eckel, B: «Thinking in C++», Second Edition, Prentice Hall, 2000. 4. Stroustrup, B: «The C++ Programming Language», Adison Wesley, 1986.
|
Dodatna literatura | 1. Liberty, Jesse: «Teach Yourself C++ in 21 Days», SAMS Publishing, 2001.
|
predavanja (P) | - 1. UVOD
1.1. Odlike objektnog programiranja
1.2. Uvod u programski jezik C++
1.3. Razlike programskih jezika C i C++
- 2. ELEMENTI OBJEKTNOG PROGRAMIRANJA
2.1. Pojam objekta
2.2. Razredi objekata
- 3. UPOTREBA OBJEKATA
3.1. Članovi i metode
3.2. Prava pristupa
3.3. Vrste metoda
- 4. KREIRANJE I INICIJALIZACIJA OBJEKATA
4.1. Dinamička alokacija
4.2. Konstruktor, destruktor
4.3. Redoslijed inicijalizacije
4.4. Statički članovi
- 5. NAMESPACE
5.1. Pojam namespace-a
5.2. Operator::
5.3. Objekti iz standardnog namespace-a
- 6. NASLJEĐIVANJE
6.1. Princip nasljeđivanja
6.2. Bazna i izvedena klasa
6.3. Prava pristupa
6.4. Redoslijed inicijalizacije
- 7. VIRTUALNE FUNKCIJE
7.1. Pojam virtualne funkcije
7.2. Implementacija virtualnih funkcija
7.3. Virtualni destruktor
7.4. Čisto virtualne funkcije, apstraktne klase, interface
- 8. VIŠESTRUKO NASLJEĐIVANJE
8.1. Višestruke bazne klase
8.2. Redoslijed inicijalizacije
8.3. Virtualno izvođenje
- 9. OPERATORI
9.1. Pojam friend
9.2. Funkcije operatori
9.3. Preopterećenje operatora
9.4. Operatori implicitne pretvorbe
- 10. TEMPLATE
10.1. Template klase
10.2. Template funkcije
10.3. Instanciranje
10.4. Specijalizacija
10.5. Eksplicitna konverzija
- 11. IZNIMKE
11.1. Bacanje i hvatanje iznimki
11.2. Hijerarhija iznimki
11.3. Deklaracija funkcija
- 12. STANDARDNA BIBLIOTEKA - KOLEKCIJE
12.1. Osobine standardnih kolekcija, iteratori
12.2. Sekvencijalne kolekcije: vector, deque, list
12.3. Adapteri: stack, queue, priority_queue
12.4. Asocijativne kolekcije: map, multimap, set, multiset
- 13. STANDARDNA BIBLIOTEKA - ALGORITMI
13.1. Standardni algoritmi, standardni objekti
13.2. Funkcijski objekti, predikat
13.3. Podjela algoritama, primjeri
- 14. BIBLIOTEKE ZA RAD U WINDOWSIMA
14.1. Javne besplatne biblioteke, OWL, ATL
14.2. MFC, hijerarhija klasa, primjer jednostavnog programa
- Nije definirano
|
auditorne vježbe (A) | - 1. UVOD 1.1. Odlike objektnog programiranja 1.2. Uvod u programski jezik C++ 1.3. Razlike programskih jezika C i C++
- 2. ELEMENTI OBJEKTNOG PROGRAMIRANJA 2.1. Pojam objekta 2.2. Razredi objekata
- 3. UPOTREBA OBJEKATA 3.1. Članovi i metode 3.2. Prava pristupa 3.3. Vrste metoda
- 4. KREIRANJE I INICIJALIZACIJA OBJEKATA 4.1. Dinamička alokacija 4.2. Konstruktor, destruktor 4.3. Redoslijed inicijalizacije 4.4. Statički članovi
- 5. NAMESPACE 5.1. Pojam namespace-a 5.2. Operator:: 5.3. Objekti iz standardnog namespace-a
- 6. NASLJEĐIVANJE 6.1. Princip nasljeđivanja 6.2. Bazna i izvedena klasa 6.3. Prava pristupa 6.4. Redoslijed inicijalizacije
- 7. VIRTUALNE FUNKCIJE 7.1. Pojam virtualne funkcije 7.2. Implementacija virtualnih funkcija 7.3. Virtualni destruktor 7.4. Čisto virtualne funkcije, apstraktne klase, interface
- 8. VIŠESTRUKO NASLJEĐIVANJE 8.1. Višestruke bazne klase 8.2. Redoslijed inicijalizacije 8.3. Virtualno izvođenje
- 9. OPERATORI 9.1. Pojam friend 9.2. Funkcije operatori 9.3. Preopterećenje operatora 9.4. Operatori implicitne pretvorbe
- 10. TEMPLATE 10.1. Template klase 10.2. Template funkcije 10.3. Instanciranje 10.4. Specijalizacija 10.5. Eksplicitna konverzija
- 11. IZNIMKE 11.1. Bacanje i hvatanje iznimki 11.2. Hijerarhija iznimki 11.3. Deklaracija funkcija
- 12. STANDARDNA BIBLIOTEKA - KOLEKCIJE 12.1. Osobine standardnih kolekcija, iteratori 12.2. Sekvencijalne kolekcije: vector, deque, list 12.3. Adapteri: stack, queue, priority_queue 12.4. Asocijativne kolekcije: map, multimap, set, multiset
- 13. STANDARDNA BIBLIOTEKA - ALGORITMI 13.1. Standardni algoritmi, standardni objekti 13.2. Funkcijski objekti, predikat 13.3. Podjela algoritama, primjeri
- 14. BIBLIOTEKE ZA RAD U WINDOWSIMA 14.1. Javne besplatne biblioteke, OWL, ATL 14.2. MFC, hijerarhija klasa, primjer jednostavnog programa
- Nije definirano
|
laboratorijske vježbe (L) | - podrška u standardnoj biblioteci za unos i ispis
- klasa sa privatnim i javnim članovima za čitanje i pisanje u datoteku
- klasa za dinamički spremnik brojeva, alokacija
- bazne i izvedene klase, konstruktor/destruktor, redoslijed izvršavanja
- apstraktna klasa, virtualne funkcije
- klasa sa preopterećenim operatorima
- generički spremnik - template klasa
- kalkulator sa obradama iznimki
- standardna biblioteka - vector, list, map
- standardna biblioteka - algoritmi na vektoru cijelih brojeva
|
kolokvij - teorija (KP) | - Kolokvij se polaže kroz test koji se sastoji od 5 do10 kratkih zadataka teoretskog i praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (2) ELEMENTI OBJEKTNOG PROGRAMIRANJA, (3) UPOTREBA OBJEKATA, (4) KREIRANJE I INICIJALIZACIJA OBJEKATA, (5) NAMESPACE, (6) NASLJEĐIVANJE, (7) VIRTUALNE FUNKCIJE, (8) VIŠESTRUKO NASLJEĐIVANJE. Svaki zadatak se ocjenjuje s 5 - 10 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova. Kolokvij se u slučaju opravdanog razloga može pisati naknadno. U protivnom, student pripadajući dio gradiva polaže na pismenom ispitu.
- Kolokvij se polaže kroz test koji se sastoji od 3 do 5 zadataka praktičnog značaja. Obuhvaća sljedeće nastavne cjeline: (9) OPERATORI, (10) TEMPLATE, (11) IZNIMKE, (12-13) STANDARDNA BIBLIOTEKA. Svaki zadatak se ocjenjuje s 10 - 20 bodova, ovisno o njegovoj težini, a uvjet za prolaz je 50% maksimalnog broja bodova. Kolokvij se u slučaju opravdanog razloga može pisati naknadno. U protivnom, student pripadajući dio gradiva polaže na pismenom ispitu.
|
ispit - teorija (IU) | - Za studente koji su položili kolokvije, ispit se sastoji od usmenog ispita kroz koji se provjerava teoretsko i praktično znanje. Konačna ocjena se formira na osnovu rezultata kolokvija, ocjene laboratorijskih vježbi, ocjena stečenih tijekom nastave na osnovu kratkih testova i ocjene usmenog ispita. Studenti koji nisu položili kolokvije moraju pismeno polagati pripadajuće gradivo kroz test koji se sastoji od 3 zadatka praktičnog značaja.
|
samostalno učenje (SU) | - / kolokviji, konzultacije, samostalno učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju
|