Cilj predmeta je nadgraditi osnovno poznavanje in razumevanje pojmov matematične analize in linearne algebre z zahtevnejšimi pojmi, prikazati njihovo uporabo pri matematičnem modeliranju pojavov v računalništvu in drugih znanostih in osnovne metode za računanje dobljenih modelov.

Cilj predmeta Računalniške tehnologije je študentom računalništva in informatike predstaviti fizikalne in tehnološke temelje delovanja in izdelave računalnikov, kvantitativno obravnavo nekaterih relevantnih  primerov s področja fizike trdne snovi in predstavitev uporabe fizikalnih zakonitosti v tehniki izdelave mikroelektronskih, monolitnih vezij, temeljnih gradnikov računalnikov. Eden od ciljev predmeta je tudi predstavitev osnov kvantne mehanike, ki že sama po sebi postaja v računalništvu vse pomembnejša fizikalne teorija.

Izvedba predmeta: predavanja in dodatno branje doma, dva kolokvija (ali pisni izpit) in seminarska naloga, ustni izpit. Na voljo je skripta, zbirka vaj in zbirka izpitni vprašanj.

Potrebna predznanja: osnove klasične fizike, osnove linearne algebre in infinitezimalnega računa.


Course practicalities: Lectures and individual reading. Two colloquia (or a written exam), seminar work, oral exam. Lecture notes, exercise book and a list of examination questions are available.

Prerequisites: elementary classical physics, basic linear algebra and calculus.


Navajeni smo, da ko programiramo, opisujemo algoritme. Toda, ali je nujno, da je program vedno opis algoritma?

Pri tem predmetu bomo spoznali , da lahko programiramo tudi na druge načine, ne samo algoritmično. Na primer tako, da računalniku opišemo le, kaj je problem. Računalnik pa sam poišče postopek, ki privede do rešitve. To omogočajo deklarativni programski jeziki, ki temeljijo na uporabi logike ali omejitev. Programirati je možno celo kar s primeri. Računalniku na primer pokažemo nekaj primerov sortiranih seznamov, računalnik pa sam sestavi program za sortiranje. Obstajajo še druge paradigme programiranja, ki vodijo do korenito drugačnih načinov razmišljanja o programih, kot smo vajeni.

Spoznali bomo tudi, kako definiramo sintakso in semantiko, to je pomen programskega jezika. Pokazali bomo, kako lahko z DCG gramatiko napišemo prevajalnik za enostaven programski jezik v manj kot 50 vrsticah. Pa tudi, kako matematično dokažemo pravilnost programa.

     In this course we learn that programming
can be done in other ways -- other than algorithmically. For example, we may
just describe what the problem is. The computer then on its own automatically finds
a procedure that leads to a solution. This style of programming is done
with declarative programming languages based on logic or constraints. It is
even possible to program just by examples. For instance, we give the computer
examples of sorted lists, and the computer automatically puts together a
general program for sorting lists. There are yet other programming paradigms
that lead to radically different thinking about programs than we are used to.

     In this course we also learn how the
syntax and semantics, that is the meaning, of a programming language can be
defined. We show how an interpreter or a compiler for a simple programming language can be written with DCG grammars in less than 50 lines. And further, how we can mathematically prove the correctness of a
program.