Programiranje in numerične metode 2021/22
š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. Domen Gorjup | as. Klemen Zaletelj |
---|---|---|
13:30 | Č1 (II/1) | |
15:30 | Č2 (II/1) | |
7:30 | P1 (II/1) | P2 (I/4) |
9:30 | P3 (II/1) | 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
- ponedeljek, 11:30 (Zoom povezava v e-učilnici)
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.
- 12.apr: Uvod v numerične metode in sistemi linearnih algebrajskih enačb 1 (Sistemi linearnih enačb 2*)
- 19.apr: Interpolacija
- 26.apr: Aproksimacija
- 3.maj: Reševanje enačb
- 10.maj: Numerično odvajanje
- 17.maj: Numerično integriranje
24.maj: Testiranje pravilnosti kode, uporabniški vmesnik
31.maj: Izbrane fakultativne vsebine
- Numerično reševanje diferencialnih enačb - začetni problem*
- Numerično reševanje diferencialnih enačb - robni problem*
- Uvod v Mathematico*
* Fakultativno predavanje. Študentje Fakultete za strojništvo UNI-LJ imate možnost pridobiti licenčno verzijo programa Mathematica na tej povezavi.
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%).
Navodila za oddajo projekta:
- Rok za oddajo projekta je naveden spodaj (Pomembni datumi).
- Za izdelavo projekta uporabite predlogo, ki jo najdete tukaj.
- Projekt oddajte v obliki
zip
datoteke z imenom: Ime in priimek, vpisna številka.zip. Primer:Janez Novak, 23201111.zip
. - Velikost
zip
datoteke naj ne presega 25 MB. - Datoteko pošljete na email svojega asistenta. V zadevo vpišite:
Oddaja projekta - Programiranje in numerične Methode
.
Pred oddajo:
- v projektu zakomentirajte (dodajte #) morebitno namestitev dodatnih paketov in funkcije
%%timeit
:# !pip install ime_paketa # %%timeit
- naredite
Kernel
$\to$Restart
in natoCell
$\to$Run All
. Prepričajte, da se vse celice izvedejo pravilno.
* 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¶
- Oddaja individualnega projekta: torek, 31. maj 2022, do 12h *.
- Zagovori: prvi teden poletnega izpitnega obdobja.
* 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 $n$ število začetih dni zamude.
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¶
- Slavič J.: Programiranje in numerične metode s Pythonom, izvršljiva knjiga ali spletna knjiga ali pdf, 2015-
- Petrišič J.: Uvod v Matlab za inženirje, 2011
- Demšar J. Python za programerje, 2012 (dosegljiva na spletu: http://goo.gl/PK1rUZ, glejte tudi to spletno učilnico: http://goo.gl/n4pVUe)
- Nicolas P. Rougier: From Python to Numpy, 2017 spletna knjiga
- Kiusalaas J: Numerical Methods in Engineering with Python 3, 2013
- Fangohr H. Python for Computational Science and Engineering, 2014 (dosegljiva na spletu: http://goo.gl/nCOfY0)
- Bucky R. Python 3.4 Programming Tutorials (videi dosegljivi na: http://goo.gl/ie6nfD)
- Projekt TOMO (več vsebin, glejte predvsem predmete na FMF in FRI)
- Scipy Lecture Notes
- 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.