Cilji in kompetence
Cilj predmeta je, da bodo študentje razumeli osnovne podatkovne strukture in algoritme v telekomunikacijah, jih znali analizirati ter izpeljati nove variante prilagojene konkretnemu problemu.
Vsebina
• Matematične osnove: kombinatorika: variacije, permutacije in kombinacije; diskretne strukture: definicije in lastnosti grafov, dvodelni graf, Eulerjev grafi, Hamiltonov graf, ravninski grafi.
• Objektno usmerjeno programiranje: razred, metoda, dedovanje.
• Osnovne podatkovne strukture: linearni seznam, dvosmerno povezan seznam, krožni seznam, sklad, vrsta in prednostne vrste, zgoščena tabela, drevesa.
• Graf: implementacija usmerjenega in neusmerjenega grafa kot statične ali dinamične strukture.
• Algoritmi nad grafi: iskanje v neusmerjenih in usmerjenih grafih, problem najkrajše poti, določanje najmanjšega vpetega drevesa, ujemanje grafov, povezljivost, barvanje grafov.
• Algoritmi v uteženih grafih; aproksimacijski in hevristični algoritmi.
• Algoritmi strojnega učenja.
• Uporaba algoritmov pri načrtovanju omrežij, usmerjanju v omrežjih, zagotavljanju dostopnosti, varnosti in zanesljivosti.
Metode poučevanja in učenja
• Predavanja: pri predavanjih študentje spoznajo teoretične vsebine predmeta. Predavanja se izvajajo kot klasična predavanja v frontalni obliki z diskusijo ob primerih uporabe podatkovnih struktur in algoritmov.
• Seminarske vaje: pri seminarskih vajah se študentje seznanijo s potekom računalniških vaj.
• Računalniške vaje: pri računalniških vajah študentje uporabljajo usvojeno znanje na primerih iz telekomunikacij. Študentje tudi izpopolnjujejo prenosljive spretnosti uporabe integriranega razvojnega orodje.
• Kvizi: pri reševanju kvizov študentje preverjajo svoje razumevanje teoretičnih vsebin.
Predvideni študijski rezultati - znanje in razumevanje
• razložiti in opisati osnovne diskretne strukture,
• uporabiti osnovne algoritme nad grafi,
• analizirati preprost problem, izbrati primerno podatkovno strukturo in in algoritem, kodirati in testirati računalniški program,
• razumeti osnovne podatkovne strukture
Predvideni študijski rezultati - Prenosljive/ključne spretnosti in drugi atributi
• Spretnosti komuniciranja: ustni zagovor računalniškega dela.
• Uporaba informacijske tehnologije: uporaba razvojnih orodij in okolij za programiranje.
• Reševanje problemov: analiza problema, načrtovanje algoritma, implementacija programa in testiranje programa.
Temeljni literatura in viri
• Mark A. Weiss, Data Structures and Algorithm Analysis in C++, Fourth Edition, Addison-Wesley, 2014.
• Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest in Clifford Stein, Introduction to Algorithms, tretja izdaja. McGraw-Hill, 2001.
• S. Sartaj: Data Structures, Algorithms, and Applications in C++, Second Edition, Silicon Press, New York, 2005.
• M. T. Goodrich, R. Tamassia, D. M. Mount, Data Structures and Algorithms in C++, John Wiley & Sons, Inc., Second Edition, 2011.
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti
Priporočeno poznavanje osnov programiranja.Pogoji za opravljanje študijskih obveznosti: za pristop k izpitu mora študent izpolnjevati 80 % prisotnost na laboratorijskih vajah in pozitivno oceno laboratorijskih vaj.
Podrobnosti o izvedbi in ocenjevanju Pisni izpit se lahko nadomesti s sprotnim preverjanjem in ocenjevanjem znanja.