Naslovnica

 

Naziv kolegija: Algoritmi i strukture podataka

Predavač: prof. dr. sc. Zdravko Dovedan Han

ECTS bodovi: 6

Jezik: hrvatski

Trajanje: 1 semestar

Status: obvezan za jednopredmetni studij informacijskih znanosti, izborni za ostale studije

Oblik nastave: 2 sata predavanja + 1 sat vježbi

Uvjeti: nema uvjeta

Ispit: Pismeni i usmeni

 

Sadržaj:

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. Uvod u Python i interaktivni mod: brojčani izrazi; naredba za dodjeljivanje; naredbe za ispis i unos vrijednosti. Pojam programa. Pisanje i izvršavanje programa. Osnovni tipovi podataka: cjelobrojni, realni i logički. Naredba selekcije. Struktura programa sa selekcijom. WHILE petlja. WHILE petlja u interpretaciji „REPEAT“ petlje. Složeni tipovi podataka (1): znak i niz znakova, lista, n-torka. FOR petlja. Datoteke. Složeni tipovi podataka (2): skupovi, mape. Potprogrami: procedure i funkcije. Rekurzivni pozivi procedura i funkcija. Lambda funkcija. Standardni moduli i definiranje vlastitih. Regularni izrazi. Nestandardne strukure podataka: red, stog, jednostruko i dvostuko povezana lista. Stabla. Raspršeno adresiranje. Osnovni algoritmi sortiranja. Pretraživanje.

 

Sadržaj vježbi:

Izvođenje odabranih primjera programa koji prate teme predavanja i samostalno rješavanje postavljenih problema. Sve se vježbe izvode na računalima. 

 

Cilj – opće i specifične kompetencije:

Studenti će steći temeljna znanja o jednostavnim i dinamičkim strukturama podataka, ovladavat će osnovnim algoritmima i bit će osposobljeni za primjenu stečenih znanja u rješavanju problema primjenom odgovarajućih algoritama i prikladnih struktura podataka, u izabranom jeziku za programiranje (Python).

 

Ishodi učenja:

Nakon uspješno savladanog predmeta, student će moći:

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.

 

Način održavanja nastave:

  • 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.

 

Obaveze studenata i uvjeti:

Obvezno pohađanje nastave (predavanja i vježbi).

 

Način provjere znanja:

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%

 

Praćenje kvalitete i uspješnosti predmeta:

Provjera kvalitete i uspješnosti izvedbe predmeta vršit će se kombiniranjem unutrašnje i vanjske evaluacije. Unutrašnju evaluaciju činit će nastavnici i studenti. Evaluacija će se provesti metodom ankete na kraju semestra. Vanjsku evaluaciju realizirat ćemo prisustvovanjem kolega na predmetu i njihovom ocjenom predmeta i nastavnika.

 

 

Obvezna literatura:

1. ON-LINE Python v2.7.x documentation

 

Dopunska literatura:

1. Dovedan Han, Z.: Pascal s tehnikama programiranja (1), VVG, Velika Gorica, 2011.

2. Lutz, M.  Programming Python, Fourth Edition by Mark Lutz, O’Reilly Media, 2011.