
Strukture podataka i algoritmi
- Predavanje 30
- Vježbe 30
- Samostalni rad 120
Naziv predmeta
Strukture podataka i algoritmi
Oznaka predmeta
22-00-506
Semestar
2
ECTS
6
Nastavnici i suradnici
Sadržaj i cilj
Ovaj kolegij uvodi studente u područje podatkovnih struktura i algoritama iz dvije perspektive: koncepti na kojima se temelje i kako ih primijeniti za rješavanje svakodnevnih programerskih problemskih zadataka.
Ovo je središnji kolegij u sklopu studija Programskog inženjerstva te studenti proširuju znanja, razumijevanje i vještine stečene pohađanjem kolegija Programiranje u prvom semestru. Pohađanjem ovog kolegija, studenti stječu vještine za rješavanje složenijih problemskih zadataka u području programiranja. U sklopu ovog kolegija, studenti također stječu znanja potrebna za pohađanje budućih kolegija. Stečene vještine značajno doprinose stručnom razvoju studenata u povezanim profesionalnim područjima.
Studenti će naučiti:
• apstraktne tipove podataka poput lista, povezanih lista, stogova, redova, tablica raspršivanja, rječnika implemetiranih binarnim stablima traženja i slično
• konkretne implementacije dostupne u biblioteci STL
• algoritme povezane s podatkovnim strukturama poput izmjena, pretraživanja, sortiranja, i slično
• izraziti i tumačiti algoritamsku složenost.
Kolegij se podučava u programskom jeziku C++. Završno vrednovanje se temelji na rješavanju niza praktičnih zadataka u programskom jeziku C++ upotrebom zadanih alata za razvoj softvera.
Literatura
Obvezna literatura:
1. Demistificirani C++
Preporučena literatura:
1. O'Dwyer, A. (2017) Mastering the C++17 STL: Make full use of the standard library components in C++17. Birmingham: Packt Publishing.
Dodatna literatura:
1. Cormen, T. (2009) Introduction to Algorithms. 3rd edn. Cambridge: MIT Press.
Minimalni ishodi učenja
- Utvrditi i obrazložiti vremensku složenost a priori i a posteriori za zadani algoritam izveden u programskom jeziku.
- Izraditi rješenje upotrebom linearnih podatkovnih struktura (lista, povezana lista, stog, red) i povezanih algoritama.
- Izraditi rješenje upotrebom hijerarhijskih podatkovnih struktura (binarno stablo, hrpa, prioritetni red) i povezanih algoritama.
- Izraditi rješenje upotrebom rječnika izvedenih binarnim stablima traženja i povezanih algoritama.
- Opisati algoritme sortiranja i pretraživanja i izraditi rješenje na temelju algoritama sortiranja i pretraživanja.
- Izraditi rješenje upotrebom tehnika adresiranja i objasniti njihovu vremensku složenost.
Željeni ishodi učenja
- Izraditi složenija programska rješenja upotrebom projekata s više datoteka i korisnički definiranim tipovima podataka.
- Izraditi složenije rješenje upotrebom linearnih podatkovnih struktura (lista, povezana lista, stog, red) i povezanih algoritama.
- Izraditi složenije rješenje upotrebom hijerarhijskih podatkovnih struktura (binarno stablo, hrpa, prioritetni red) i povezanih algoritama.
- Izraditi složenije rješenje upotrebom rječnika izvedenih binarnim stablima i povezanih algoritama.
- Opisati algoritme sortiranja i pretraživanja i izraditi složenije rješenje na temelju algoritama sortiranja i pretraživanja.
- Izraditi složenije rješenje upotrebom tehnika adresiranja i objasniti njihovu vremensku složenost.