Za računalničarjevo preživetje v krasnem novem digitalnem svetu je nujno, da čimprej najde orodjarno ter da si tudi sam izdela vsaj kakšno bitno lopato. Govorimo o algoritmih in podatkovnih strukturah. To so za računalnikarja orodja, s katerimi uresniči svoje še tako divje ideje.

Dobro je poznati  pogosto rabljene algoritme ter preizkušene in uspešne načine razvoja  novih. Z višine se vidi več in dalj, zato bomo pri tem predmetu ukvarjali s prostorskimi podatki, iskali z in plezali na k-d, R in van Emde Boats drevesa. Poglobljeno bomo spoznali funkcije razprševanja, urejanje s predpostavkami, lokalno preiiskovanje, hevristične metode reševanja problemov, biološko navdahnjene metode, računsko geometrijo in uporabo linearnega programiranja. Da bi znali algoritme med seboj primerjati in da vedeli, katerih problemov se je sploh smiselno lotevati, bomo spoznali verjetnostno in amortizirano analizo algoritmov. In ker imajo dandanašnji procesorji vse več jeder, jih bomo izkoristili z večnitnimi algoritmi, nekaj pozornosti pa bomo namenili tudi distribuiranim algoritmom.

Tistim, ki na prvostopenjskem študiju še niso osvojili dovolj algoritmičnega znanja, bodo manjkajoče osnove ponujene kot samostojno dodatno delo na začetku semestra.

Vaje pri predmetu potekajo v obliki reševanja nekaterih nalog in posvetovanj z asistentom o seminarskem delu (3 seminarske naloge, 5 spletnih kvizov). Oceno vaj predstavlja skupna ocena seminarskih nalog, pri vseh pa je potrebno doseči več kot polovico točk. Pogoj za pozitivno oceno vaj je tudi doseženih polovica vseh točk na kvizih.

Ocena pri predmetu je sestavljena kot povprečje ocene vaj in ocene pisnega izpita, pri katerem je potrebno doseči več kot polovico točk. Oceno je mogoče izboljšati z ustnim izpitom.

Študenti opravljajo tri seminarje, ki so enakomerno razporejeni po semestru, tri kolokvije (neobvezno) in končni izpit.