Oblikovni obrasci u programiranju
Prikazani su podaci za akademsku godinu: 2025./2026.
Nositelji
Predavanja
Auditorne vježbe
Dr. sc. tech.
Marin Kačan
Laboratorijske vježbe
Dr. sc. tech.
Marin Kačan
Opis kolegija
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.
Preduvjeti
Programski jezici C i Python, osnove programskog inženjerstva i arhitekture računala.
Studijski programi
Sveučilišni preddiplomski
Izborni kolegiji (6. semestar)[FER3-HR] Računarstvo - studij
Izborni kolegiji
(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 kolegiji (2. semestar)[FER3-HR] Automatika i robotika - profil
Izborni kolegiji
(2. semestar)
[FER3-HR] Elektroenergetika - profil
Izborni kolegiji
(2. semestar)
Izborni kolegiji
(2. semestar)
[FER3-HR] Elektronika - profil
Izborni kolegiji
(2. semestar)
Izborni kolegiji
(2. semestar)
Izborni kolegiji
(2. semestar)
Izborni kolegiji
(2. semestar)
Jezgreni kolegiji profila
(2. semestar)
[FER3-HR] Računalno inženjerstvo - profil
Izborni kolegiji
(2. semestar)
Izborni kolegiji profila
(2. semestar)
[FER3-HR] Računarska znanost - profil
Jezgreni kolegiji profila
(2. semestar)
[FER3-HR] Znanost o mrežama - profil
Izborni kolegiji
(2. semestar)
[FER3-HR] Znanost o podacima - profil
Izborni kolegiji
(2. semestar)
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
Literatura
Erich Gamma, Richard Helm (Computer scientist), Ralph E. Johnson, John Vlissides (1995.), Design Patterns,
Izvedba
ID 183426
Ljetni semestar
5 ECTS
R1 E-učenje
30 Predavanja
0 Seminar
15 Auditorne vježbe
8 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja
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
Pristupačnost