Oblikovni obrasci u programiranju
Opis predmeta
Proučavaju se opća načela te konkretne metode oblikovanja prilagodljivih i modularnih programskih podsustava. Uvodi se pojam oblikovnog obrasca kao isprobanog rješenja za razred čestih problema u pojedinim problemskim domenama. Razmatraju se klasifikacije obrazaca prema razini apstrakcije, svrsi i području primjene, zajedno s odgovarajućim predstavnicima. Pretpostavljena su osnovna znanja iz domene objektno orijentiranog programiranja stečena na uvodnim kolegijima.
Ishodi učenja
- prepoznati simptome neprikladne programske organizacije
- objasniti prednosti dinamičkog polimorfizma, predložaka i implicitnog tipiziranja.
- objasniti glavna načela programskog oblikovanja i prepoznati slučajeve njihovog kršenja
- procijeniti kvalitetu različitih programskih organizacija na temelju ključnih načela oblikovanja
- prepoznati različite oblikovne obrasce u nekomentiranom izvornom kôdu
- usporediti prikladnost različitih oblikovnih obrazaca u kontekstu konkretnog oblikovnog problema
- primijeniti oblikovna načela za koncipiranje kvalitetnih programskih komponenti
Oblici nastave
Predavanja
Predmet predviđa tri sata predavanja tjedno.
LaboratorijPredmet predviđa četiri laboratorijske vježbe. http://www.zemris.fer.hr/~ssegvic/ooup/
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 50 % | 20 % | 50 % | 0 % | ||
Međuispit: Pismeni | 0 % | 40 % | 0 % | |||
Završni ispit: Pismeni | 0 % | 40 % | ||||
Ispit: Pismeni | 50 % | 80 % | ||||
Ispit: Usmeni | 20 % |
Tjedni plan nastave
- Statička i dinamička svojstva programskih sustava. Značaj interakcije programskih komponenata i programske organizacije. Osnove razvojnih procesa.
- Simptomi neprikladne organizacije. Veza između promjene zahtjeva i nereda programske organizacije. Dijagrami razreda prema metodi OMT. Dijagram fizičke organizacije.
- Tehnike za izražavanje fleksibilnih programa. Dinamički polimorfizam u C++-u, C-u i Pythonu. Statički polimorfizam u C++-u. Objektno-orijentirano oblikovanje, ugovorno oblikovanje, zauzimanje inicijalizacijom.
- Logička načela oblikovanja: nadogradnja bez promjene, Liskovino načelo supstitucije, načelo inverzije ovisnosti, načelo jedinstvene odgovornosti, načelo izdvajanja sučelja. Fizička načela oblikovanja: inkrementalno testiranje, dodjeljivanje razina, cikličke ovisnosti.
- Oblikovni obrasci. Strategija. Okvirna metoda. Promatrač
- Dekorator. Naredba.
- Rješavanje problema za vježbu.
- Međuispit
- Generičke tvornice. Jedinstveni objekt. Iterator.
- Prilagodnik. Kompozit. Stanje.
- Proxy. Most.
- Prototip. Posjetitelj.
- Metoda tvornica. Model-pogled-upravljač.
- Rješavanje problema za vježbu.
- Završni ispit
Studijski programi
Sveučilišni preddiplomski
Izborni predmeti (6. semestar)[FER3-HR] Računarstvo - studij
Izborni predmeti
(6. semestar)
[FER2-HR] Programsko inženjerstvo i informacijski sustavi - modul
Izborni predmeti
(6. semestar)
[FER2-HR] Računalno inženjerstvo - modul
Izborni predmeti
(6. semestar)
[FER2-HR] Računarska znanost - modul
Izborni predmeti
(6. semestar)
Sveučilišni diplomski
Izborni predmeti (2. semestar)[FER3-HR] Automatika i robotika - profil
Izborni predmeti
(2. semestar)
[FER3-HR] Elektroenergetika - profil
Izborni predmeti
(2. semestar)
Izborni predmeti
(2. semestar)
[FER3-HR] Elektronika - profil
Izborni predmeti
(2. semestar)
Izborni predmeti
(2. semestar)
Izborni predmeti
(2. semestar)
Izborni predmeti
(2. semestar)
Jezgreni predmeti profila
(2. semestar)
[FER3-HR] Računalno inženjerstvo - profil
Izborni predmeti
(2. semestar)
Izborni predmet profila
(2. semestar)
Izborni predmeti
(2. semestar)
[FER3-HR] Računarska znanost - profil
Jezgreni predmeti profila
(2. semestar)
[FER3-HR] Znanost o mrežama - profil
Izborni predmeti
(2. semestar)
[FER3-HR] Znanost o podacima - profil
Izborni predmeti
(2. semestar)
Literatura
Erich Gamma, Richard Helm (Computer scientist), Ralph E. Johnson, John Vlissides (1995.), Design Patterns,
Auditorne vježbe
Laboratorijske vježbe
Za studente
Izvedba
ID 183426
Ljetni semestar
5 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Seminar
15 Auditorne vježbe
8 Laboratorijske vježbe
0 Konstrukcijske vježbe
Ocjenjivanje
89 izvrstan
76 vrlo dobar
63 dobar
50 dovoljan
Forum
>> / Sve diskusijske grupe / Općenito
Naslov | Odgovori | Autor | Zadnji odg. |
---|---|---|---|
* 2 labos, nulti zadatak | 0 | Viktor Poslončec | 9. 4. 2021. u 20:32 |
* 2. labos, 3. zadatak leksikografski poredak znacenje? | 0 | Matej Fabijanić | 8. 4. 2021. u 15:04 |
* Pitanje za 1. labos 1. zadatak | 1 | Josip Vucić | 20. 3. 2021. u 12:09 |
* Pitanje vezano uz podpitanja zadataka prve laboratorijske vježbe | 1 | Nikola Kešćec | 16. 3. 2021. u 15:44 |
Napomena:
* - oznaka za nove poruke