Programiranje in numerične metode 2020/21

študijski in izpitni red

Predavanja / vaje

Predavanja:

  • T 10:30 V/2
    • Prof. dr. Janko Slavič (DS-P3, 01 4771 226, janko.slavic@fs.uni-lj.si)

Vaje:

Ura as. Klemen Zaletelj as. Domen Gorjup Predavalnica
13:30 Č1 Č2 I/4
7:30 P1 P2 I/4
9:30 P3 P4 I/4
11:30 P5 II/1
12:30 P6 I/4
14:00 P7 I/4

Spletne povezave do predavanj in vaj so zbrane v e-učilnici.

Govorilne ure

Asistenti:

  • as. Domen Gorjup, (DS-P5, 01 4771 228, domen.gorjup@fs.uni-lj.si)
  • as. Klemen Zaletelj, (DS-P5, 01 4771 228, klemen.zaletelj@fs.uni-lj.si)

Spremljanje sprotnega študija, obvestila itd

Sproten študij bomo izvajali s pomočjo: moj.ladisk.si. Za prijavo uporabite email, ki ga imate v VIS-u. Video prikaz prijave: če imate gmail, poljubni drugi email.

Vprašanja in odgovori:

Vprašanja na temo predmeta ali tudi širše lahko postavite/odgovorite na portalu: pinm.ladisk.si.

Spletna učilnica (e-ucilnica.fs.uni-lj.si)

Spletne povezave do predavanj in vaj in s tem povezane vsebine najdete v e-učilnici.

Sprotni študij

Sestava ocene

  • 7.5% sodelovanje pri predavanjih
  • 30% sodelovanje pri vajah* (vsaj 50%)
  • 7.5% tedenske domače naloge (osnove ekosistema Pythona) (vsaj 50%)
  • 15% tedenske domače naloge (numerične metode) (vsaj 50%)
  • 40% individualni projekt (vsaj 50%)

* Na predavanja in vaje morate priti pripravljeni; uporabili bomo nekatere principe obratnega učenja! Če ne morete priti na vaje, pridete na prve govorilne ure na katere lahko.

Sodelovanje na vajah

Lestvica ocenjevanja je:

  • 100% - uspešno odgovorite vprašanje: tekoče napišete ustrezen program in ga tudi ustrezno argumentirate,
  • 75% - na vprašanje odgovorite delno, vendar z zadovoljivim razumevanjem.
  • 50% - na vprašanje odgovorite delno.
  • 0% - na vprašanje odgovorite z nezadovoljivim razumevanjem (tudi, če je koda pravilno napisana).
  • 0% - niste prisotni na vajah.

Če ste na vajah prisotni in niste vprašani oziroma se ne javite sami, se to ne šteje k povprečju ocene vaj. Če ste bili ocenjeni z 0%, potem lahko oceno popravite na prvih naslednjih govorilnih urah, vendar lahko dosežete max 75%.

Individualni projekt

Se navezuje na poljubno vsebino katerega-koli predmeta na FS in ga študent definira sam. Projekt mora vsebovati sledeče vsebine:

  • obdelava podatkov,
  • simbolno reševanje,
  • sistemi linearnih enačb,
  • interpolacija ali aproksimacija,
  • iskanje ničel,
  • integriranje ali odvajanje,

Ocena individualnega projekta je sestavljena iz:

  • numerična pravilnost (30%),
  • struktura, urejenost, uporaba lastnih modulov, stil kode (docstringi) (30%),
  • lasten odnos / kreativni dodatek (30%),*
  • pripravljeni testi kode in/ali uporabniški vmesnik (10%).

Oddaja: do roka (glejte pomembne datume spodaj) v obliki zip datoteke z imenom: Ime in priimek, vpisna številka.zip pošljete na email naslov svojega asistenta.

V primeru oddaje vsaj 1 teden pred rokom, se uspeh množi z 1,1 v primeru zamude pa se upeh množi z $0,9^n$, kjer je 𝑛 število začetih dni zamude.

Predloga za oddajo je tukaj.

* Kot kreativni dodatek se tretira programska vsebina, ki na predavanjih in vajah ni bila posebej obravnavana. Kot na primer:

  • animacija rezultatov z uporabo matplotlib-a,
  • druge oblike naprednih prikazov (Plotly, Bokeh, vispy, pyqtgraph, VTK...),
  • avtomatsko branje podatkov iz spleta, pošiljanje rezultatov po elektronski pošti,
  • strojno generiranje poročila,
  • uporaba knjižnjice Pandas, zapis rezultatov v bazo podatkov, MS Excel,
  • uporaba platform Raspberry Pi, Arduino, zajem podatkov,
  • izdelava spletne aplikacije (Flask, Django),
  • uporaba modulov in knjižnic, kot so scikit-learn, TensorFlow, PyOpenCV.

Domače naloge (moj.ladisk.si)

Splošna navodila za reševanje

Tedenske domače naloge vam dodelimo v sistemu moj.ladisk.si. Domače naloge rešujete v okolju Jupyter Notebook.

  • Datoteke, ki jih prenesete s spleta, shranite v obliki .zip arhiva (če vaš brskalnik datoteki ne doda končnice .zip, to storite sami).

  • Arhiv z datotekami, ki ga prenesete s spleta, razpakirate v celoti.

  • V mapi z razpakiranimi datotekami odprete ukazno okno in poženete ukaz jupyter notebook.
  • Celice v .ipynb datoteki z domačo nalogo poganjate po vrsti (tudi celice povsem na vrhu datoteke!).
  • Rezultati so pri reševanju posredovani v spletni sistem moj.ladisk.si in se samodejno sprotno preverjajo. Pri reševanju je nujna povezava s spletom.

Pripravili smo tudi video navodila za reševanje.

Časovna omejitev reševanja domačih nalog

Domače naloge imajo definiran čas okna za reševanje:

  • Do odprtja okna za reševanje je možno predčasno reševanje naloge brez časovne omejitve.

  • V oknu za reševanje je dovoljen čas reševanja naloge omejen. Časovna omejitev teče od trenutka, ko znotraj okna za reševanje nalogo prvič odprete.

  • Po zaprtju okna se naloga zapre, reševanje ni več možno.

Svetujemo vam, da čim večji del naloge rešite v času predčasnega reševanja, pred odprtjem okna za reševanje.

Uporaba Jokerja za premik obveznosti

Vsakemu študentu sta pri predmetu na voljo dva Jokerja, ki jih lahko uporabite za premik obveznosti v prihodnost.

  • Z uporabo Jokerja lahko okno za reševanje domače naloge premaknete za $\leq$ 14 dni naprej.
  • Uporaba jokerja ni možna, če ste nalogo že odprli.
  • Pred pričetkom okna za reševanje je za premik naloge potreben en Joker, v času okna za reševanje pa dva.

Predlog ocene na podlagi sprotnega študija

Predlog ocene:

  • 50,0 do 57,5%: 6/6
  • 62,5 do 67,5%: 7/7
  • 72,5 do 77,5%: 8/8
  • 82,5 do 87,5%: 9/9
  • 92,5 do 100%: 10/10

(Nedefinirana področja so vmesne ocene.)

Individualni projekt in predlog ocene se zagovarja na ustnem zagovoru.

Pri zagovoru upoštevamo tudi kvalitativno oceno sodelovanja na vajah, predavanjih ali pinm.ladisk.si (1000 točk je ekvivalent 1xP). Glejte tudi.

Pomembni datumi

  1. Oddaja individualnega projekta: torek, 1. junij 2021, do 12h.
  2. Zagovori: prvi teden poletnega izpitnega obdobja.

Izpit

Če izpolnjujete pogoje za pristop k izpitu, potem lahko obveznosti opravite tudi z izpitom. Izpit se opravlja v dveh delih: 50 min preverjanje uporabe numeričnih metod za računalnikom (tipično dve nalogi, s sabo imate lahko poljubne pisne vire, dostopa do interneta ni, glejte primere nalog), nato 60 min za tri teoretična vprašanja (glejte primere vprašanj). Za pozitivno oceno morata biti oba dela pozitivna.

Literatura

  1. Slavič J.: Programiranje in numerične metode s Pythonom, izvršljiva knjiga ali spletna knjiga ali pdf, 2015-
  2. Petrišič J.: Uvod v Matlab za inženirje, 2011
  3. Demšar J. Python za programerje, 2012 (dosegljiva na spletu: http://goo.gl/PK1rUZ, glejte tudi to spletno učilnico: http://goo.gl/n4pVUe)
  4. Nicolas P. Rougier: From Python to Numpy, 2017 spletna knjiga
  5. Kiusalaas J: Numerical Methods in Engineering with Python 3, 2013
  6. Fangohr H. Python for Computational Science and Engineering, 2014 (dosegljiva na spletu: http://goo.gl/nCOfY0)
  7. Bucky R. Python 3.4 Programming Tutorials (videi dosegljivi na: http://goo.gl/ie6nfD)
  8. Projekt TOMO (več vsebin, glejte predvsem predmete na FMF in FRI)
  9. Scipy Lecture Notes
  10. Uporaba paketov Numpy, Scipy itd za inženirje Mr. P Solver (YouTube)

Nekatere spletne učilnice na temo Pythona najdete na pinm.ladisk.si

Pogoji za poslušanje v naprej?

Predmeta ni mogoče opravljati v naprej.