Objektno orijentirano programiranje

Opis predmeta

Uvod. Osnovna načela objektno orijentiranog programiranja i oblikovanja. Modeliranje. Ponovna iskoristivost koda. Programski okviri za razvoj programa. Programski jezik Java. Java kao strojno neovisna platforma. Alati za programiranje. Rad iz komandne linije.Konvencije pisanja koda. Reorganizacija programa. Apstrakcija. Enkapsulacija. Klase i objekti. Statički članovi. Modifikatori vidljivosti. Konstruktori. Veze između klasa. Upravljanje memorijom i sakupljači smeća. Nasljeđivanje. Polimorfizam. Apstraktne klase. Sučelja. Uvod u oblikovne obrasce. Iznimke. Datoteke i tokovi. Kolekcije. Općeniti algoritmi nad kolekcijama. Jednostavni i složeni komparatori. Generici. Višedretvenost i višedretvene aplikacije. Događaji. Izrada aplikacija s grafičkim korisničkim sučeljem. Jednostavne i složene grafičke komponente. Razvoj vlastitih grafičkih komponenti. Testiranje programa. Analiza performansi programa. Optimizacija programa.

Opće kompetencije

Nakon položenog ispita studenti će razumjeti osnovne koncepte objektnog programiranja. Bit će u stanju pisati vlastite programe manje i srednje složenosti u programskom jeziku Java. Također će biti u stanju primijeniti naučene koncepte objektno orijentirane paradigme pri radu u drugim programskim jezicima.

Ishodi učenja

  1. Opisati načela objektno orijentirane paradigme
  2. Primijeniti koncepte apstrakcije, enkapsulacije podataka, nasljeđivanja i polimorfizma na razvoj programa
  3. Koristiti objektno orijentirani programski jezik i pripadne biblioteke za razvoj programa
  4. Razviti, ispitivati i uklanjati pogreške koristeći načela objektnog oblikovanja te integriranih razvojnih okruženja
  5. Razviti i osmisliti programe s grafičkim korisničkim sučeljima
  6. Primijeniti višedretvenost u svrhu razvoja odazivih korisničkih sučelja
  7. Opisati i objasniti faktore koji doprinose dobrom objektno-orijentiranom rješenju

Oblici nastave

Predavanja

popraćena materijalima i prezentacijom stavljenom na web-stranicu predmeta

Provjere znanja

međuispit i završni ispit

Laboratorijske vježbe

složeni laboratorijski zadaci koji obuhvaćaju objektno orijentirano programiranje u Javi

Pokusi na predavanjima

predavanja su popraćena demonstracijom programskih rješenja i alata

Konzultacije

redovite tjedne konzultacije svih nastavnika tijekom cijele godine

Stjecanje vještina

pretraživanje Weba i pronalaženje radova iz područja predmeta

Programske vježbe

osobni primjerak alata za programiranje u Javi, samostalna specifikacija, programiranje

E-učenje

samostalno pronalaženje video lekcija i njihovo isprobavanje

Ostalo

domaće zadaće

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 0 % 50 % 0 % 50 %
Međuispit: Pismeni 0 % 25 % 0 %
Završni ispit: Pismeni 0 % 25 %
Ispit: Pismeni 0 % 50 %

Tjedni plan nastave

  1. Programski jezik Java. Java kao strojno neovisna platforma. Alati za programiranje. Rad iz komandne linije.Konvencije pisanja koda. Reorganizacija programa.
  2. Apstrakcija. Enkapsulacija. Klase i objekti. Statički članovi. Modifikatori vidljivosti.
  3. Konstruktori. Veze između klasa.
  4. Nasljeđivanje. Polimorfizam.
  5. Apstraktne klase. Sučelja.
  6. Unutarnji i anonimni razredi. Iznimke.
  7. Rad s datotečnim sustavom. Tokovi.
  8. Međuispit.
  9. Kolekcije. Općenito o kolekcijama, skupovi i implementacije, liste i implementacije. Mape. Ostale kolekcije.
  10. Općeniti algoritmi nad kolekcijama. Generici. Jednostavni i složeni komparatori.
  11. Izrada aplikacija s grafičkim korisničkim sučeljem. Osnovni koncepti, prozori, vizualni razmještaj komponenata, potporne komponente. Jednostavne grafičke komponente.
  12. Višedretvenost i višedretvene aplikacije: osnovni rad, rad s bazenima dretvi.
  13. Komponente za prikaz složenih podataka: modeli i pogledi. Izbornici. Uporaba postojećih i razvoj vlastitih grafičkih komponenti. Korisničko sučelje i višedretvenost.
  14. Testiranje programa. Analiza performansi programa. Optimizacija programa.
  15. Završni ispit.

Studijski programi

Sveučilišni preddiplomski
Računarstvo (studij)
(3. semestar)

Za upis predmeta treba položiti predmete

Literatura

Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston (2007.), Object-Oriented Analysis and Design with Applications (3rd Edition), Addison-Wesley
Bruce Eckel (2006.), Thinking in Java (4th Edition), Prentice-Hall
Marko Čupić (2007.), Materijali za Java tečaj, FER
Kent Beck (2006.), Test-Driven Development, By Example, Addison-Wesley
Walter Savitch, Kenrick Mock (2012.), Absolute Java, Student Value Edition (5th Edition), Addison-Wesley

Predavanja

Laboratorijske vježbe