Ects: 5
Predavanja: 2
Vježbi: 2

Cilj predmeta:

Upoznati studenta s konceptima objektno orijentiranog programiranja.

Sadržaj predmeta:

Definicija objektno orijentiranog programiranja. Razlika između objektnog i proceduralnog programiranja. Upoznavanje s programskim alatima i platformom. Klase i objekti. Nasljeđivanje i enkapsulacija. Polimorfizam. Apstraktne klase. Apstraktne i virtualne metode. Preopterećenje metoda, svojstava i operatora. Definicija i korištenje delegata i događaja. Definiranje i implementacija sučelja. Klasni i objekti dijagrami. Dijagrami sekvencije i suradnje. Dijagrami aktivnosti i stanja. Dizajn programskih komponenti.

Kompetencije:

Student će upoznati karakteristike i koncepte objektno orijentiranog programiranja. Praktičan rad pri definiranju i razvoju aplikacija omogućit će studentu stjecanje praktičnih znanja i vještina za primjenu objektnog programiranja u programskom rješavanju određenih problema, vještina pri uporabi objektno orijentiranih programskih jezika i vještina pri uporabi razvojnih alata.

Ishodi učenja:

Student će nakon polaganja ovog predmeta moći: 1. Napisati jednostavan program temeljen na objektno-orijentiranim principima, te UML paradigme 2. Izabrati opciju razvoja u aplikacija u objektno-orijentiranom ili proceduralnom programskom jeziku 3. Organizirati dijelove aplikacije u klase, sučelja i pakete u skladu s objektno orijentiranim principima programiranja 4. Kreirati objektno-orijentirani model hijerarhije klasa na kojem će se temeljiti implementacija aplikacije 5. Samoprocijeniti je li potrebno složenije klase strukturirati u više jednostavnijih, radi bolje modularnosti 6. Organizirati klase na način da koriste ostale komponente aplikacije preko drugih klasa. 7. Osmisliti strukturu kako bi bila prilagođena za naknadna proširenja Navedeni ishodi učenja doprinose ishodima učenja studijskog programa: - Koristiti funkcionalnosti modernih inženjerijskih alata neophodnih za praksu (5). - Razviti programske aplikacije korištenjem suvremenih strukturnih, proceduralnih i objektnih programskih jezika (6). - Koristiti stručnu literaturu i pretraživanje dostupnih baza informacija i baza znanja (12).