|
Šifra modula |
CS 280 |
Fakultet |
PMF Sarajevo |
Objektno orijentirano i generičko programiranje
NASTAVNI PROGRAM
A. OPŠTI PODACI
|
Fakultet |
Prirodno-matematički fakultet Univerziteta u
Sarajevu |
|
Odsjek |
Odsjek za matematiku |
|
Smjer |
Matematika i informatika; Teorijska
kompjuterska nauka; Primijenjena matematika |
|
Semestar |
Četvrti |
|
Naziv modula |
Objektno orjentirano i generičko programiranje |
|
Tip modula |
Obavezni |
|
Broj kreditnih bodova |
7 |
|
Kontakt sati |
Ukupno |
Predavanja |
Vježbe |
Seminari |
Konsultacije |
|
120 |
45 |
AV30, LV30 |
15 |
po potrebi |
|
Samostalni rad (sati) |
55 |
|
Obavezni prethodno položeni moduli |
Uvod u programiranje |
|
Modul relevantan za module |
Strukture podadaka i algoritmi; Teorija
podataka; Projektiranje računarskih aplikacija; Principi softverskog
inžinjeringa |
|
Nastavno osoblje |
|
|
– Nastavnik nosilac modula |
Doc. dr. Željko Jurić |
|
– Ostali nastavnici |
Prof. dr. Naser Prljača; Doc. dr. Haris
Gavranović |
|
– Asistenti |
Mr. Esmir Pilav; Mr. Almasa Odžak |
B. CILJEVI MODULA
|
Modul predstavlja viši kurs
programiranja na računarima za studente matematike, usmjerenja
teorijske kompjuterske nauke. Ciljevi modula su upoznavanje sa
modernim pristupom razvoju softvera – dizajniranjem i pisanjem
programa uz korištenje objektno-orjentiranih i generičkih tehnika.
Koristi se programski jezik C++. |
C. SPECIFIČNI ZADACI MODULA
|
Kroz navedeni modul studenti
će kroz samostalan rad na laboratorijskim vježbama biti posebno
usmjereni na razvoj i implementaciju na računaru objektno
orijentiranih programskih rješenja u programskom jeziku C++. |
D. OČEKIVANI REZULTATI NASTAVNOG
PROCESA
|
Nakon završetka modula,
studenti će biti u stanju da:
- Razumiju temeljne koncepte
objektno-orjentiranog razvoja softvera (skrivanje informacija,
enkapsulacija, nasljeđivanje, polimorfizam);
- Implementiraju apstraktne tipove
podataka korištenjem klasa;
- Razumiju koncepte generičkih tipova
podataka;
- Dizajniraju modularni softverski
sistem korištenjem objektno-orjentiranih metoda;
- Implementiraju softverski sistem u
jeziku C++ korištenjem objektno-orjentiranog pristupa;
- Sistematično testiraju programe i
sisteme.
|
E. SADRŽAJ NASTAVNOG PROCESA
|
Br. |
Nastavna jedinica |
Nastavni metod |
Sati rada |
|
Kontakt |
Samostalno |
|
1. |
Pokazivači i reference; Veza pokazivača i
nizova; Višestruki pokazivači; Pokazivači na funkcije |
Usmeno izlaganje 3
Vježbe i zadaci 2
Rad na računaru 2 |
7 |
3 |
|
2. |
Dinamička alokacija memorije; Operatori new i
delete; Dinamičke promjenljive; Dinamička alokacija
jednodimenzionalnih i višedimenzionalnih nizova |
– II – |
7 |
4 |
|
3. |
Strukture (slogovi) kao složeni tipovi podataka.
Pojam klase. Atributi i metode. |
– II – |
7 |
4 |
|
4. |
Koncept privatnosti; Skrivanje informacija i
enkapsulacija; Interfejs klase; Prijateljske funkcije |
– II – |
7 |
4 |
|
5. |
Objektno orijentirana filozofija. Objektno
orijentirani dizajn. UML notacija |
– II – |
7 |
3 |
|
6. |
Konstruktori; Destruktori; Konstruktor kopije;
Prenošenje instanci klasa u funkcije |
– II – |
7 |
4 |
|
7. |
Pojam izuzetaka; Bacanje izuzetaka; Hvatanje
izuzetaka |
– II – |
7 |
3 |
|
8. |
Klase kao apstraktni tipovi podataka; Klase
“string” i “vector” kao primjeri standardnih predefiniranih
apstraktnih tipova podataka |
– II – |
7 |
3 |
|
9. |
Preklapanje operatora (unarni, binarni,
specijalni) |
– II – |
7 |
4 |
|
10. |
Koncepti razvoja generičkih tipova podataka;
Generičke klase i šabloni; Generički algoritmi |
– II – |
12 |
4 |
|
11. |
Kontejnerski objekti; Funkcijski objekti (funktori);
Standardna biblioteka predložaka (STL) |
– II – |
7 |
4 |
|
12. |
Napredni koncepti objektno orijentiranog
programiranja; Nasljedjivanje; Polimorfizam; Virtuelne funkcije |
– II – |
12 |
4 |
|
13. |
Datoteke; Objektno orijentirani pristup radu sa
datotekama; Ulazni i izlazni tokovi povezani sa datotekama;
Tekstualni i binarni režim korištenja tokova; Tokovi i dinamička
alokacija memorije |
– II – |
7 |
4 |
|
14. |
Dinamičke strukture podataka; Stek i red;
Jednostruko i dvostruko povezana lista; Binarno stablo |
– II – |
7 |
4 |
|
15. |
Testiranje programa; Princip crne kutije;
Princip bijele kutije; Integrirano testiranje |
– II – |
12 |
3 |
F. PROVJERA ZNANJA I
OCJENJIVANJE
|
Provjera znanja – kriteriji |
Ocjenjivanje |
|
Kriterij |
Maksimalan broj bodova |
Bodovi za prolaz |
Osvojen broj bodova |
Ocjena (BiH) |
ECTS ocjena |
|
Domaće zadaće (2 zadaće) |
10 |
5 |
< 55,00 |
5 |
F |
|
Laboratorijske vježbe |
25 |
10 |
55,00 – 64,99 |
6 |
E |
|
Testovi tokom kursa (2 testa) |
30 |
18 |
65,00 – 74,99 |
7 |
D |
|
Projekat (seminarski rad) |
15 |
10 |
75,00 – 84,99 |
8 |
C |
|
Usmeni završni ispit |
20 |
12 |
85,00 – 94,99 |
9 |
B |
|
|
|
|
95,00 – 100,00 |
10 |
A |
|
U k u p n o |
100 |
55 |
|
G. LITERATURA
Osnovna literatura:
1. M. Harmann, R. Jones: “First Course in C++:
A Gentle Introduction”, Univ. of North London, McGraw-Hill
Companies, 1997.
2. J. Šribar, B. Motik: “Demistificirani C++ (2.
izdanje)”, Element, Zagreb, 2003.
3. B. Eckel: “Misliti na jeziku C++, Prvi tom:
Uvod u standardni C++ (prevod 2. izdanja)”, Prentice Hall
Inc, prevod Mikro Knjiga, Beograd, 2003.
4. B. J. Cox, A. Novobilski: “Object-Oriented
Programming (2nd Edition)”, Addison-Wesley
Longman, 1991.
5. D. Milićev: “Objektno orijentirano programiranje
na jeziku C++”, Mikro Knjiga, Beograd, 1995.
6. L. Kraus: “Programski jezik C++ (sa
rešenim zadacima)”, Elektrotehnički fakultet u Beogradu, 1997.
7. Ž. Jurić: “Principi programiranja (kroz
programski jezik C++)”, materijal u pripremi, PMF Sarajevo.
Dopunska literatura:
1. B. Stroustrup: “The C++ Programming
Language (2nd Edition)”, Addison-Wesley, Reading, MA,
1991.
2. U. Breymann: “Designing Components with the C++
STL”, Addison-Wesley Longman Limited, 1998.
3. B. Meyer: “Object-Oriented Software Construction”,
Prentice Hall, 1988.
4. B. Eckel: “Thinking in C++, Volume 2:
Practical Programming”, Prentice Hall Inc, 2004.
5. A. Koenig, B. Moo: “Ruminations on C++”,
Addison-Wesley Longman Inc, 1997.
6. S. Oualline: “Kako ne treba programirati na
jeziku C++ (prevod)”, Mikro Knjiga, Beograd, 2003.