Naziv
Algoritmi i strukture podataka
Organizacijska jedinica
Odsjek za informacijske i komunikacijske znanosti
ECTS bodovi
6
Šifra
35928
Semestri izvođenja
ljetni
Jezik izvođenja
hrvatski
Satnica
Predavanja
30
Laboratorijske vježbe
15

Cilj
Stjecanje temeljnih znanja o jednostavnim i dinamičkim strukturama podataka, ovladavanje osnovnim algoritmima te osposobljavanje za primjenu stečenih znanja u rješavanju problema algoritamske naravi.
Sadržaj
  1. Uvod: algoritam, oblikovanje i temeljni algoritamski konstrukti; jezici za programiranje: generacije jezika za programiranje, definiranje jezika za programiranje, sintaksa i semantika, tipovi i strukture podataka.
  2. Python i interaktivni mod: Osnovni tipovi podataka: cjelobrojni, realni i logički.
  3. Brojčani izrazi; naredba za dodjeljivanje; naredbe za ispis i unos vrijednosti.
  4. Pojam programa. Pisanje i izvršavanje programa.
  5. Naredba selekcije. Struktura programa sa selekcijom. WHILE petlja. WHILE petlja u interpretaciji „REPEAT“ petlje.
  6. Složeni tipovi podataka (1): znak i niz znakova, lista, n-torka. FOR petlja.
  7. Datoteke.
  8. Datoteke.
  9. Složeni tipovi podataka (2): skupovi, mape.
  10. Lambda funkcija. Potprogrami: procedure i funkcije.
  11. Rekurzivni pozivi procedura i funkcija. Standardni moduli i definiranje vlastitih.
  12. Rekurzivni pozivi procedura i funkcija. Standardni moduli i definiranje vlastitih.
  13. Nestandardne strukure podataka: red, stog, jednostruko i dvostuko povezana lista. Stabla.
  14. Raspršeno adresiranje. Osnovni algoritmi sortiranja. Pretraživanje.
  15. ZAVRŠNI ISPIT.

Ishodi učenja
  1. Razumjeti osnovne algoritamske konstrukte.
  2. Razlučiti osnovne primitivne i složene tipove podataka.
  3. Prepoznati ustroj osnovnih struktura podataka u jezicima za programiranje.
  4. Dizajnirati algoritam i izabrati optimalne tipove i strukture podataka u rješavanju složenih problema.
  5. Procijeniti efikasnost algoritama sortiranja i pretraživanja.
  6. Koristiti napredne tehnike i metodologiju programiranja u ustroju algoritama.
  7. Koristiti i prilagoditi programske module drugih autora u pisanju vlastitih programa.
  8. Pratiti razvoj jezika za programiranje.
  9. Primijeniti stečena znanja u drugim predmetima studija.
Metode podučavanja
Predavanja: kombinirano, klasično (ploča) i prikazom primjera izvedbom na PCu i projiciranjem uz istodobno pisanje primjera programa od strane studenata na svojim računalima. Vježbe: rješavanje postavljenih zadataka i pisanje programa na računalu.
Metode ocjenjivanja
Praćenje rada i aktivnosti studenata tijekom semestra:  provjere znanja (dva parcijalna ispita) – 80 bodova,  pohađanje predavanja – 10 bodova,  posebna isticanja na vježbama – do 10 bodova. Završni ispit:  Pismeni ispit (samo za one koji nisu ostvarili dovoljan broj bodova tijekom semestra za prolaznu ocjenu ili oni koji žele veću ocjenu) – 80 bodova  Usmeni ispit - ±20 bodova Skala ocjena: dovoljno (2) 50% - 59% dobro (3) 60% - 69% vrlo dobro (4) 70% - 79% izvrsno (5) 80% - 100%

Obavezna literatura
  1. 1) ON-LINE Python v2.7.x documentation
Dopunska literatura
  1. Lutz, M. Programming Python, Fourth Edition by Mark Lutz, O’Reilly Media, 2011.
  2. Dovedan Han, Z.: Pascal s tehnikama programiranja (1), VVG, Velika Gorica, 2011.

Obavezan predmet na studijima
  1. Informacijske znanosti, sveučilišni preddiplomski jednopredmetni studij, 2. semestar
Izborni predmet na studijima
  1. Informacijske znanosti, sveučilišni preddiplomski dvopredmetni studij, 2. semestar