Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti
|
|
Ni pogojev. |
Vsebina
|
|
• Uvod v programske jezike: neformalna definicija programskih jezikov, delitve programskih jezikov, kratka zgodovina programskih jezikov.
• Vrednosti in tipi: delitev tipov, statično in dinamično preverjanje tipov, ekvivalenca tipov, vrste izrazov.
• Pomnilnik: spremenljivka, shranljive vrednosti, življenjska doba spremenljivk, vrste ukazov, izrazi s stranskimi učinki.
• Povezovanje: povezljive vrednosti, statični in dinamični doseg, vrste deklaracij, bločni ukazi in bločni izrazi, kvalifikacijski princip.
• Abstrakcije: princip abstrakcije, vrste abstrakcij, mehanizmi prenosa parametrov, korespondenčni princip, dosledni in normalni izračun.
• Ograjevanje: paketi, abstraktni tipi, objekti in razredi, generični moduli.
• Sistemi tipov: monomorfni in polimorfni sistem tipov, vrste polimorfizma. Generiki v programskem jeziku java.
• Objektno usmerjeno programiranje: objekt, razred, meta-razred. Razredni objektno usmerjeni jeziki in prototipni objektno usmerjeni jeziki. Vrste dedovanja: enkratno/večkratno, razredno/objektno, striktno/nestriktno, urejeno/neurejeno, dinamično/selektivno, običajno/mixin. Vgnezdeni razredi v programskem jeziku java.
• Funkcijsko programiranje: značilnosti funkcijskih jezikov, uvod v programski jezik lisp/haskell.
|
Temeljni literatura in viri
|
|
• K.C. Louden: Programming Languages: Principles & Practices, Third Edition, Cenage Learning, 2013.
• P. Sestoft: Programming Language Concepts, Springer, Berlin, 2012.
• D. A. Watt: Programming Language Design Concepts, John Wiley, Chichester, 2004.
|
Cilji in kompetence
|
|
Cilj tega predmeta je razumevanje osnovnih konceptov programskih jezikov in razumeti bistvene razlike med funkcijskim, proceduralnim in objektno usmerjenim programiranjem. |
Predvideni študijski rezultati - znanje in razumevanje
|
|
Po zaključku tega predmeta bo študent sposoben
• identificirati slabosti in prednosti posameznega programskega vzorca,
• izbrati primeren programski jezik za rešitev dane naloge,
• razumeti koncepte programskih jezikov, s pomočjo katerih se bo hitreje naučil novega programskega jezika,
• razumeti razlike med statičnim in dinamičnim tipiziranjem,
• razumeti različne oblike dodeljevanja pomnilnika,
• razumeti različne tehnike prenosa parametrov,
• razumeti različne oblike polimorfizma.
|
Predvideni študijski rezultati - Prenosljive/ključne spretnosti in drugi atributi
|
|
• Spretnosti komuniciranja: ustni zagovor laboratorijskih vaj, pisno izražanje pri pisnem izpitu.
• Uporaba informacijske tehnologije: uporaba različnih prevajalnikov in interpreterjev.
• Reševanje problemov: načrtovanje in implementacija programov z uporabo različnih programskih vzorcev.
|
Metode poučevanja in učenja
|
|
• predavanja,
• laboratorijske vaje.
|