Izvajanje predmeta

Predmet se izvaja v tedenskih sklopih s predavanji, ki jim sledijo vaje. Na predavanjih so bomo ogledali teorijo in kakšen praktičen primer rešili tudi skupaj. Na vajah boste vsak teden samostojno (ob pomoči asistentov) reševali programersko nalogo v programskem jeziku C++, ki bo vključevala nek algoritmičen problem povezan z vsebino predavanj. Nalogo boste lahko dokončali doma. Ob koncu sklopa se bodo vaše rešitve avtomatsko testirale. Za opravljeno nalogo mora vaša rešitev uspešno prestati vse primere. Prejeli boste povratno informacijo o številu uspešno prestalih testov, ne pa o njihovi vsebini. Kdor bo želel svojo rešitev popraviti, bo imel za to čas do konca naslednjega sklopa.

Delovno okolje

Vaše programe bomo ocenjevali na Ubuntu 22.04 s prevajalnikom GCC 11 in s standardom C++20. Če je vaš oddani program resitev.cpp, ga bomo prevedli in pognali z

g++ -std=c++20 -o program resitev.cpp 
./program < test.in > test.res

Če si boste pripravljali virtualko z Ubuntu 22.04, morate dodatno namestiti build-essential paket, s katerim dobite C++ prevajalnik.

sudo apt install build-essential

Ocenjevanje

Za pristop k izpitu morate imeti uspešno opravljeno sprotno delo, kar pomeni povsem pravilno rešenih vsaj 50% tedenskih nalog. Skoraj pravilna rešitev je še vedno nepravilna in je zato ne upoštevamo. Oceno predmeta prejmete na izpitu, ki ga rešujete na papir.

Če odkrijemo dve ali več prepisanih rešitev, vsem udeleženim ne priznamo sprotnega dela in tako v tekočem študijskem letu ne morete opravljati izpita. Zato ne objavljajte svojih rešitev. Posebej drzne kršitve bomo prijavili disciplinski komisiji.

Literatura

Algoritmi in podatkovne strukture:

  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to algorithms. MIT press.
  • Sedgewick R. & Wayne K. (2011). Algorithms fourth edition. Addison-Wesley.
  • Aho A. V. Hopcroft J. E. & Ullman J. D. (1983). Data structures and algorithms. Addison-Wesley.
  • Kononenko, I., Robnik Šikonja, M., & Bosnić, Z. (2008). Programiranje in algoritmi. Fakulteta za računalništvo in informatiko.

Programiranje v C++:

Dodatne vaje

Na spletu je kup strani, ki omogočajo reševanje programerskih in algoritmičnih nalog (po tematikah) s preverjanjem pravilnost: Codeforces, SPOJ, LeetCode, HackerEarth, HackerRank, ...

Zadnja sprememba: sreda, 4. oktober 2023, 14.27