Programiranje 1

Programiranje 1#

Predmet Programiranje 1 je sestavljen iz treh delov, ki se bodo prepletali med sabo.

V prvem delu se bomo osredotočili na funkcijsko programiranje, ki je bolj matematičen pristop k pisanju programov, osnovan na sestavljanju funkcij in njihovi uporabi na vrednostih. Nasproten pristop bi bilo na primer imperativno programiranje, v katerem programe pišemo kot zaporedja ukazov, ki spreminjajo stanje računalnika. Programi, napisani v funkcijskem stilu, so dostikrat krajši in preglednejši, poleg tega pa preprosteje omogočajo porazdeljeno računanje. Zaradi vseh teh lastnosti veliko modernih programskih jezikov vpeljuje ideje iz funkcijskega programiranja. Tudi zato ste že pri predmetu Uvod v programiranje poleg imperativnega programiranja prek zank in spremenljivk (in seveda objektnega programiranja) spoznali tudi nekaj funkcijskih idej. Na primer rekurziji ste dali večji poudarek, kot bi ga v običajnih začetniških tečajih programiranja.

V drugem delu bomo spoznali dokazovalnike oziroma dokazovalne pomočnike, torej računalniške programe, ki nam pomagajo pri pisanju in preverjanju matematičnih dokazov. Dokazovalniki so tesno povezani s funkcijskim programiranjem. Po eni strani dokazovalniki gradijo na tipih, ki so eden od temeljev funkcijskega programiranja, po drugi strani pa z njimi najenostavneje dokazujemo ravno lastnosti funkcijskih programov.

V zadnjem delu pa bomo spoznali osnove podatkovnih struktur in algoritmov, tako v kontekstu funkcijskega programiranja kot izven. Nekaj splošnih podatkovnih struktur že poznamo, na primer sezname. Včasih pa so naše želje bolj specifične, zato lahko uporabimo bolj specializirane strukture, ki so učinkovitejše. Podobno poznamo že nekaj algoritmov, na primer Evklidovega ali pa iskanje z bisekcijo v urejenem seznamu. Vseeno pa obstaja nabor klasičnih algoritmov ter pristopov k reševanju problemov, ki jih mora poznati vsak programer.