212970

Objektno programiranje

Da

5.0

30

30

0

Fakultet za fiziku

5.0

30(V) + 30(P)

doc. dr. sc. Miran Pobar

doc. dr. sc. Miran Pobar (V, P)

Ciljevi predmeta:
Cilj predmeta je usvajanje temeljnih znanja o objektno paradigmi te primjena standardnih koncepata objektne paradigme kod modeliranja sustava i implementacije u odabranom objektnom programskom jeziku.
Cilj je osposobiti studente da samostalno analiziraju i specificiraju zahtjeve, razviju modele i programiraju koristeći objektno-orijentirani pristup u rješavanju problemskih zadataka.

Sadržaj predmeta:
-Uvod u objektno modeliranje i programiranje. Standardi i specifičnosti odabranog objektnog jezika (npr. C#. Pojmovi objektne paradigme kao što su klasa, objekt, privatnost podataka i enkapsulacija, konstruktori i destruktori, relacije među klasama, hijerarhija klasa, apstrakcije, nasljeđivanje, preopterećivanje, polimorfizam.
-Modeliranje osnovnih koncepata klasa kao što su konstruktori, članski atributi i metode s definiranom vidljivošću korištenjem strukturnih dijagrama UML-a (dijagrama klasa, objekata).
-Definiranje klasa s članskim atributima i funkcijama s definiranom vidljivošću. Konstruktori i destruktori. Preopterećivanje konstruktora i funkcija. Uporaba osnovnih sistemskih klasa i funkcija te korisnički definiranih klasa. Dinamička definicija klasa. Složene klase, nizovi klasa, iteratori.
-Modeliranje promjena stanja objekata (dijagram aktivnosti, dijagram stanja) i interakciju objekata (dijagram slijeda, dijagram komunikacije).
-Relacije među klasama. Nasljeđivanje: vrste i primjena nasljeđivanja. Modeliranje i implementacija nasljeđivanja. Hijerarhija klasa i višestruko nasljeđivanje. Nadjačavanje i preopterećivanje funkcija. Apstraktne klase, polimorfizam, sučelja..
-Iznimke i događaji.
-Delegati, predlošci funkcija i klasa. Preopterećenje operatora. Odabrane biblioteke klasa.
-Primjeri i analiza objektnih modela i implementacija rješenja problemskih zadataka iz različitih domena primjene.

(više autora) (2022): C# programming guide
M. Ivašić-Kos (2018): Objektno modeliranje - UML, on-line prezentacije predavanja, zadaci i modeli različitih problemskih situacija
Ian Griffiths (2022): Programming C# 10

Grady Booch (2007): Object-Oriented Analysis and Design with Applications (3rd Edition), pdf
Dan Clark (2011): Beginning C# Object-Oriented Programming
Erich Gamma (2009): Design Patterns: Elements of Reusable Object-Oriented Software, pdf
Eric Freeman, Elisabeth Robson (2020): Head First Design Patterns (2nd edition)
Robert C. Martin (2015): Clean Code: A Handbook of Agile Software Craftsmanship

1. Objasniti pojmove objektne paradigme kao što su klasa, objekt, privatnost podataka i enkapsulacija, konstruktori i destruktori, relacije među klasama, hijerarhija klasa, apstrakcije, nasljeđivanje, polimorfizam.
2. Osmisliti i modelirati osnovne koncepte klasa kao što su konstruktori, članski atributi i metode s definiranom vidljivošću te ih prikazati odgovarajućim dijagramom (dijagram klasa, dijagram aktivnosti ili slijeda).
3. Implementirati klasu s konceptima kao što su konstruktori, članski atributi i metode u odgovarajućem programskom jeziku.
4. Osmisliti i modelirati koncepte objektnog modela kao što su enkapsulacija, relacije asocijacije i hijerarhija klasa, nasljeđivanje, preopterećivanje, polimorfizam te ih prikazati dijagramom klasa.
5. Implementirati koncepte objektnog modela kao što su asocijacija i hijerarhija klasa, nasljeđivanje, preopterećivanje, nadjačavanje i polimorfizam u odgovarajućem programskom jeziku na temelju osmišljenog dijagrama klasa.
6. Usporediti i analizirati različite implementacije modela u objektnoj paradigmi kao što je korištenje standardnih operatora, delegata i metoda klase.
7. Primijeniti vještine i znanja iz objektne paradigme prilikom rješavanja problemskih zadataka