• Šifra predmeta:63284A
  • Vsebina

Scala je moderen programski jezik, ki je v zadnjih letih doživela veliko popularnost in postaja zelo pomembna tehnologija predvsem v kritičnih aplikacijah in aplikacijah z zelo veliko obremenitvijo. Zrelost tega jezika nakazuje dejstvo, da je glavna razvojna platforma v podjetjih kot so Twitter, LinkedIn in Foursquare. Tudi v Sloveniji številna podjetja že posegajo po tej tehnologiji, npr. podjetja XLAb in Celtra. Scala združuje objektno usmerjeno programiranje s funkcijskim programiranjem, ki je v zadnjih nekaj letih postalo nepogrešljiv del vseh modernih programskih jezikov. Celo starejši programski jeziki kot sta Java in C++ z novimi verzijami dobivata funkcijske konstrukte, kar nakazuje, da je znanje funkcijskega programiranja nujno potrebno za vsakega inženirja. Poleg funkcijskih konstruktov Scala nudi še številne konstrukte, ki so izšli iz znanstvenih raziskav programskih jezikov zadnjega desetletja (predvsem iz bolj akademskega jezika Haskell). 

Predmet bo razdeljen na štiri sklope. Prvi sklop bo uvodni, kjer se bomo spoznali z osnovnimi sintaksnimi konstrukti Scale. Poudarek bo dan predvsem na enostavnem prehodu Java programerjev na drugačen način razmišljanja. Drugi sklop bo namenjen funkcijskemu programiranju v Scali. Definirali bomo temeljne ideje funkcijskega programiranja in  skozi številne primere spoznali različne vzorce programiranja v tej paradigmi. Tretji sklop predmeta bo namenjen objektno usmerjenemu programiranju  in močnemu sistemu tipov. Poleg osnovnih načinov defnicije razredov in objektov, ki jih študentje že poznajo iz Jave, si bomo ogledali bolj napredne konstrukte in predvsem zelo močan sistem tipov, ki pa jih v starejših jezikih ne najdemo. Zadnji sklop bo namenjen bolj naprednim temam iz programskega jezika Scala in se bo oblikoval delno tudi na preference študentov. Scala je pogosto tudi poligon za vpeljavo povsem novih idej iz teorije programskih jezikov v industrijski jezik. Nekaj takih tem bo najprej predstavljenih študentom in glede na želje in potrebe se bomo eni od teh tem posvetili bolj podrobno. Nekatere izmed teh tem so: leni seznami, implicitne vrednosti, programiranje na nivoju tipov in makroji v Scali.
  • Študijski programi