Available courses

Računalničarji moramo poleg osnov programiranja pridobiti tudi
vpogled v drugačne programerske tehnike, kot sta proceduralno in
objektno-usmerjeno programiranje. V zadnjih letih se izrazito uveljavlja
funkcijski način programiranja, ki omogoča učinkovito razgradnjo
programa na skupek neodvisnih funkcij, s katerimi je možno program
izvajati tudi paralelno in s tem hitreje.

Pri predmetu se bomo
učili funkcijskega pristopa k programiranju v jezikih Standardni ML in
Racket. Spoznali bomo pojme, kot so tipizacija, leksikalni in dinamični
doseg, funkcijska ovojnica, razvili pa bomo tudi interpreter za lasten
programski jezik. Naš cilj bo pridobiti globje razumevanje v delovanje
programskih jezikov in s tem doseči mojstrstvo pri programiranju.

Predpogoj
za razumevanje snovi predmeta je poznavanje osnov programiranja v
proceduralnih jezikih (Java, C++, Python) in razumevanje koncepta
rekurzije.

Predmet se izvaja s predavanji, sprotnimi laboratorijskimi vajami in izdelavo domačih nalog.

Every programmer should gather insight into programming techniques
that are different from the well-known procedural and object-oriented
approaches. Lately, the functional programming paradigm is gaining
popularity and allows decomposition of programs into independent
functions, that can be executed in parallel.

In the
Programming course we will study functional programming in programming
languages ML and Racket. We will talk about: language typing, lexical
and dynamic scopes, function closures, and also develop an interpreter
for a custom programming language. Our goal will be to gain deeper
understanding of  programming languages' and mastery of programming.

Prerequisites
for taking this course are basic programming skills in procedural
programming languages (such as Java, C++, Python) and understanding of
recursion.

The course consists of lectures, laboratory exercises and homeworks.

Vas zanima, kako bi procesirali kar kriptirane podatke in bi bil rezultat pravilen, procesor pa se "ne bi zavedal" konkretne vsebine podatkov? Vas zanima, kako deluje BitCoin in bi sami želeli izdelati digitalno gotovino? Bi želeli postati varnostni inženir, revizor IS, ali se npr. naknadno specializirati za varnostne kibernetske operacije? Potem ste dobrodošli pri predmetu Informacijska varnost in zasebnost.

Varovanje informacijskih sistemov je postala ena osrednjih dejavnosti v sodobnih informacijskih okoljih tako v poslovnem, javnem in zasebnem življenju ter vse bolj na državnem nivoju. Slušatelji bodo zato pri tem predmetu osvojili znanja (teoretična in praktična) s področja varovanja omrežij in zasebnosti v sodobnih informacijskih okoljih (od klasičnih informacijskih sistemov do interneta stvari ter računalništva v oblaku) in sicer za namen skrbništva (administrator sistemov), upravljanja (vodja informatike, angl. »chief ecurity officer«), kot tudi razvoja novih rešitev (razvojni inženir) in svetovanja ter revizije.

Uvodnemu pregledu področja ter ključnih organizacij in standardov (ISO, ITU-T, ANSI, IETF, W3C, OASIS, OMG,...) bo sledila tematika obvladovanja tveganj pri varovanju informacijskih sistemov, organizacijskih pristopov ter obvladovanja človeškega dejavnika (varnostne politike). Temu bo sledilo podajanje potrebnih temeljnih znanj, to je varnostnih mehanizmov in varnostnih storitev (principi in praktične izvedbe overjanja, zaupnosti, celovitosti, nezatajljivosti, nadzora dostopa, beleženja in alarmiranja). Zatem pride obravnava infrastrukture javnih ključev (časovna normala, upravljanje imenskega prostora, operativni protokoli) ter infrastrukture za overjanje, avtorizacijo in nadzor (skupaj s principi in primeri standardiziranih rešitev kot je npr. RADIUS). Temu bo sledila analiza varnosti po slojih sklada IP, najprej varovanja na fizičnem in linijskem sloju (protokoli WEP, WPA in WPA2), nato varovanja na mrežnem, transportnem in končno aplikacijskem sloju (protokoli IPSec, TLS, S/MIME, SET, XMLSec, SAML, XACML, WS-*). Za potrebe razvoja je potrebno poznavanje formalnih metod, kjer bomo spoznali metodo R. Rueppla, ki je primerna za uvod v to področje. Ta problematika se bo na koncu navezala na varnostno inženirstvo, konkretno na obvladovanje zasebnosti, vključno z najnovejšimi trendi, ki vključujejo internet stvari, računalništvo v oblaku in digitalni denar (BitCoin).

Rdeča nit predavanj bo sistematično pokrita s samostojnim delom študentov pri vajah. Prehajamo pa tudi na nov pristop k predavanjem,
kjer bodo ozko specializirani segmenti praktično izvedeni tudi pri predavanjih, npr. varnostne simulacije, varovanje elektronskih
dokumentov v okviru operativne PKI, itd. Še to - predmet predvideva seznanjenost s predmeti Računalniške komunikacije oz. Komunikacijski protokoli ter Brezžična in mobilna omrežja, ker ter močno nadgrajuje tematike, ki so v osnovnem obsegu podane pri teh redmetih. Predmet se izvaja v angleščini, v primeru, ko so prisotni samo slovenskih slušatelji pa lahko v slovenščini.
Do you want to know how encrypted data can be processed correctly so that a processor is “not aware” of their content? Would you like to know how BitCoin works and be able to make a similar solution on your own? Are you interested in becoming a (chief) security officer, information systems security auditor, or a specialist in cyber-security operations? If yes, welcome to Information Systems Security and Privacy course.

Information systems security and privacy is one among key focuses in contemporary information systems, ranging from business environments, public environments to private environments, and even to the level of states security. Students will get a knowledge (theoretical and practically applicable) about security and privacy provisioning ranging from ordinary information systems to internet of things and cloud computing. The goal of the course is to provide students with appropriate knowledge to a such extent that they will be able to pursue careers as developers, system administrators, managers (like chief security officers) and consultants.

The course will start with an overview of historical development of this field and key standardization organizations and bodies (ISO, ITU-T, ANSI, IETF, W3C, OASIS, OMG,...). Next, risk management will be discussed, followed by security mechanisms and services (principles and practical applications). Next, public key infrastructure, privilege infrastructure and Authentication, Authorization and Accounting infrastructures will be covered (time base synchronization, Radius, etc.). Afterward, security will be covered along the IP stack, layer by layer, from physical to application layer (protocols will include WEP, WPA, WPA2, IPSec, TLS, S/MIME, SET, XMLSec, XAML, XACML, and WS-*). Development and verification of security and privacy systems strongly depends on formal methods, therefore hese methods will be presented with some key representatives (e.g., Rueppel's formal method). Last but not least, we will focus on specifics of cloud security, privacy in the Internet of things and digital currencies (BitCoin).

The main thread of this course will be complemented by hands-on laboratory works. But also lectures are going to be "refreshed" by including practical work on selected, special topics like security simulations, documents security within operational PKI, etc. This course assumes familiarity with the basics of Computer communications and / or Computer protocols courses, and Wireless mobile ommunications course, because it extends significantly the basics given in these courses. The course will be in English, while in case of only Slovene speaking students it may be conducted in Slovene.

Robert R. se je prijazno ponudil, da nam pove svoje izkušnje in informacije o zdravi prehrani.

Pričeli bomo tudi s telesnimi meritvami (delež maščob, mišic…), katere bomo nato izvedli 1x mesečno.

Cilj izziva je spodbujanje telesne aktivnosti in izboljšanje prehranskih navad.

Če želite sodelovati, se javite Robiju Rozmanu, da vas doda med udeležence.

Predmet namenjen Laboratoriju za matematične metode v računalništvu in infomratiki.

Računalničarji moramo poleg osnov programiranja pridobiti tudi
vpogled v drugačne programerske tehnike, kot sta proceduralno in
objektno-usmerjeno programiranje. V zadnjih letih se izrazito uveljavlja
funkcijski način programiranja, ki omogoča učinkovito razgradnjo
programa na skupek neodvisnih funkcij, s katerimi je možno program
izvajati tudi paralelno in s tem hitreje.

Pri predmetu se bomo
učili funkcijskega pristopa k programiranju v jezikih Standardni ML in
Racket. Spoznali bomo pojme, kot so tipizacija, leksikalni in dinamični
doseg, funkcijska ovojnica, razvili pa bomo tudi interpreter za lasten
programski jezik. Naš cilj bo pridobiti globje razumevanje v delovanje
programskih jezikov in s tem doseči mojstrstvo pri programiranju.

Predpogoj
za razumevanje snovi predmeta je poznavanje osnov programiranja v
proceduralnih jezikih (Java, C++, Python) in razumevanje koncepta
rekurzije.

Predmet se izvaja s predavanji, sprotnimi laboratorijskimi vajami in izdelavo domačih nalog.

Every programmer should gather insight into programming techniques
that are different from the well-known procedural and object-oriented
approaches. Lately, the functional programming paradigm is gaining
popularity and allows decomposition of programs into independent
functions, that can be executed in parallel.

In the
Programming course we will study functional programming in programming
languages ML and Racket. We will talk about: language typing, lexical
and dynamic scopes, function closures, and also develop an interpreter
for a custom programming language. Our goal will be to gain deeper
understanding of  programming languages' and mastery of programming.

Prerequisites
for taking this course are basic programming skills in procedural
programming languages (such as Java, C++, Python) and understanding of
recursion.

The course consists of lectures, laboratory exercises and homeworks.