Š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.