Preskoči na glavno vsebino

Principi programskih jezikov

2023/2024
Program:
Interdisciplinarni univerzitetni študijski program 1. stopnje Računalništvo in matematika
Letnik:
2 letnik
Semester:
drugi
Vrsta:
obvezni
ECTS:
6
Jezik:
slovenski
Nosilec predmeta:
Izvajalec (kontaktna oseba):
Ure na teden – 2. semester:
Predavanja
3
Seminar
0
Vaje
0
Laboratorij
2
Vsebina

Modeli računanja in paradigme programiranja: imperativno, postopkovno programiranje, deklarativno, nepostopkovno, programiranje, objektno programiranje, funkcijsko programiranje, logično in relacijsko programiranje, programiranje z omejitvami, paralelno programiranje, genetsko programiranje, programiranje s primeri, itd.
Pregled programskih jezikov za razne paradigme programiranja
Elementi jezikov postopkovnega programiranja
Nepostopkovno programiranje, logično programiranje in programski jezik prolog: logika kot programski jezik, postopkovni pomen programa kot avtomatsko dokazovanje izrekov, primeri simboličnega programiranja in deklarativnega snovanja programov
Programiranje z omejitvami: ideje, principi in primeri, logično programiranje z omejitvami (CLP)
Obravnavanje sintakse in semantike programskih jezikov: gramatike, operativna, prevajalska, denotacijska in aksiomatska semantika
Denotacijska semantika, povezava s gramatiko jezika, primeri denotacijskih definicij
Aksiomatska semantika in dokazovanje pravilnosti programov: parcialna in totalna pravilnost, invariantni pogoji, tehnike dokazovanja pravilnosti programov, uporaba najšibkejših predpogojev, avtomatsko dokazovanje pravilnosti

Temeljni literatura in viri

Robert W. Sebesta, Concepts of Programming Languages, 8th edition, Addison-Wesley 2007.
Peter van Roy, Seif Haridi, Concepts, Techniques, and Models of Computer Programming, MIT Press 2004.
Ivan Bratko, Prolog Programming for Artificial Intelligence, 4th edition, Pearson Education, Addison-Wesley, 2001.
Ivan Bratko, Prolog in umetna inteligenca, Založba FE in FRI, ponatis 2011.

Cilji in kompetence

Cilj je predstaviti principe in pregled vrst programskih jezikov, vključno z raznimi modeli računanja, formalnim obravnavanjem sintakse in semantike jezikov ter pravilnosti programov,
Razumevanje različnih vzorcev oz. paradigem programiranja ter njihove uporabe v ustreznih programskih jezikih,
Praktična uporaba simboličnega programiranja, nepostopkovnega programiranja in programiranja z omejitvami

Predvideni študijski rezultati

Znanje in razumevanje:
Razumevanje različnih pristopov k programiranju in primernost raznih pristopov za reševanje raznih problemov;
Pregled principov in mehanizmov raznih vrst programskih jezikov;
Razumevanje načinov za opisovanje sintakse in pomena programskih jezikov ter formalno dokazovanje pravilnosti programov.
Uporaba:
Razvoj spretnosti simboličnega programiranja, programiranja v logiki in programiranja z omejitvami.
Refleksija:
Sposobnost razmišljanja o alternativnih formulacijah problemov ter pristopov k njihovemu reševanju;
Kako različni modeli računanja, paradigme programiranja in vrste jezikov spodbujajo alternativne pristope k računalniškemu reševanju problemov.
Prenosljive spretnosti - niso vezane le na en predmet:
Razširjene spretnosti snovanja programov.

Metode poučevanja in učenja

Predavanja, praktično delo, avditorne vaje, domače naloge

Načini ocenjevanja

Sprotno preverjanje (domače naloge)
Končno preverjanje (pisni in ustni izpit)
(ocene: 5 (negativno), 6-10 (pozitivno), ob upoštevanju Statuta UL)

Reference nosilca

BRATKO, Ivan. Prolog programming for artificial intelligence. 4th ed. Harlow (England) [etc.]: Addison-Wesley: Pearson, cop. 2012. XXI, 673 str., ilustr. ISBN 978-0-321-41746-6. ISBN 0-321-41746-1. [COBISS-SI-ID 8577364]
MOŽINA, Martin, ŽABKAR, Jure, BRATKO, Ivan. Argument based machine learning. Artificial intelligence, ISSN 0004-3702. [Print ed.], 2007, vol. 171, no. 10/15, str. 922-937. [COBISS-SI-ID 6240084]
LUŠTREK, Mitja, GAMS, Matjaž, BRATKO, Ivan. Is real-valued minimax pathological?. Artificial intelligence, ISSN 0004-3702. [Print ed.], 2006, vol. 170, str. 620-642. [COBISS-SI-ID 19805735]
ŠUC, Dorian, VLADUŠIČ, Daniel, BRATKO, Ivan. Qualitatively faithful quantitative prediction. Artificial intelligence, ISSN 0004-3702. [Print ed.], 2004, vol. 158, no. 2, str. [189]-214, ilustr. [COBISS-SI-ID 4422740]
BRATKO, Ivan, MOZETIČ, Igor, LAVRAČ, Nada. Kardio : a study in deep and qualitative knowledge for expert systems. Cambridge (Mass.), London: The MIT Press, 1989. XIV, 260 str., graf. prikazi. ISBN 0-262-02273-7. [COBISS-SI-ID 19925760]