Pravila ocenjevanja
Pravila
Pisno oceno pridobite s pisnim izpitom.
- Na pisnem izpitu lahko zberete 100 točk. Od tega jih 90 pridobite s pravilnostjo rešitev, preostalih 10 pa s skladnostjo s smernicami PEP 8 in PEP 20.
- Pisni izpiti bodo trije, šteje najboljša pridobljena ocena.
- Na vsak izpit se morate prijaviti prek VISa.
- To velja tudi, če popravljate oceno, zato morate prej obvestiti predavatelja, da vas odjavi s prejšnjega roka.
- Če na pisnem izpitu zberete vsaj 50 točk, lahko uveljavljate tudi dodatne točke.
- Kriterij za pisno oceno je standarden:
- od 50 do 59 točk = 6,
- od 60 do 69 točk = 7,
- od 70 do 79 točk = 8,
- od 80 do 89 točk = 9,
- od 90 točk naprej = 10.
Ustno oceno pridobite s projektno nalogo.
- Za opravljanje ustnega dela izpita morate najprej opraviti pisni del izpita.
- Izpit vsebuje zagovor projektne naloge ter morebitnih oddanih nalog na strani Project Euler.
- Za projektno nalogo morate napisati program, uporaben za neprogramerja.
- Projektno nalogo morate oddati najkasneje do vključno 1. septembra 2022.
- S projektno nalogo lahko zberete 100 točk.
- Kriterij za oceno projektne naloge je standarden:
- od 50 do 59 točk = 6,
- od 60 do 69 točk = 7,
- od 70 do 79 točk = 8,
- od 80 do 89 točk = 9,
- od 90 točk naprej = 10.
- Če zagovora ne opravite, se vam na VISu šteje v opravljanje, pisna ocena pa se ohrani.
- Zagovor morate opraviti najkasneje do vključno 7. septembra 2022. Termini 7. septembra bodo prvenstveno namenjeni tistim, ki bodo ta dan opravljali pisni izpit.
- Postopek je sledeč:
- Ko pripravite projektno nalogo, jo vsaj en teden pred predvidenim datumom zagovora oddate prek spletne učilnice skupaj z morebitnimi nalogami s Project Eulerja.
- Ko dobite odziv, da ste nalogo opravili, se prek učilnice prijavite na zagovor.
- Če opravite pisni del izpita, lahko nalogo oddate tudi kasneje in zagovor opravite med 1. in 31. oktobrom. V tem primeru se vam bo ocena upoštevala šele pri vpisu v študijsko leto 2023/24 (zato za vpis v 2. letnik potrebujete vse ostale predmete 1. letnika), imeli pa boste pogoje za opravljanje predmetov Programiranje 1 (za matematiko) oz. Analiza podatkov s programom R (za finančno matematiko).
Dodatne točke
- Vsakih pet nalog na strani Project Euler vam prinese 1 točko.
- Popravki napak v gradivih vam prinesejo točke glede na vrsto popravka. Če poveste, da nekje manjka vejica, ne boste dobili točke, če pa ste pregledali vse prosojnice in morebiti celo pripravili pull request s popravki, pa bo točk ustrezno več. Prav tako boste več točk dobili, če odkrijete vsebinsko napako, na primer, če opozorite na neresnico ali manjkajoči robni primer.
Kriterij za točkovanje projektne naloge
Spletni vmesnik: 20 točk
- Vseh 20 točk dobite, če napišete spletni vmesnik, ki omogoča delo z več uporabniki hkrati. Pri tem je lahko vsak uporabnik popolnoma neodvisen od drugih (na primer vsak ima svoj dnevnik), ali pa sodeluje z ostalimi (na primer, da igrajo eden proti drugemu v isti igri).
- Polovico, torej 10 točk, dobite, če napišete spletni vmesnik, ki omogoča delo le enemu uporabniku. Torej vsak, ki pride na stran, vidi isto, ne glede na to, od kod je prišel.
- Če napišete samo tekstovni vmesnik, za sam pristop dobite 0 točk, še vseeno pa jih lahko dobite točke za dodelanost vmesnika.
- Če napišete samo funkcije, ki jih mora uporabnik poganjati iz Pythona, projektne naloge ne morete opraviti.
Zmožnosti programa: 30 točk
Tu ni natančnega kriterija, zato raje vprašajte za mnenje, je pa spodaj naštetih nekaj smernic:
- Ali igrate križce in krožce na mreži 3×3, 4×4, 3×3×3 ali 3ⁿ?
- Ali štiri v vrsto igrate proti računalniku, ki žetone meče naključno, ali proti računalniku, ki razmišlja?
- Ali se stanje ohrani, če program prekinete in kasneje ponovno poženete?
- Ali evidenca stroškov omogoča le vnos in skupno vsoto, ali tudi kategorizacijo ter natančnejšo analizo, morebiti celo z grafi?
- Ali pretvornik valut omogoča le vnaprej definirane pretvorbe, jih prebere iz uporabnikove datoteke ali celo prenese s spleta?
Uporabniška izkušnja: 20 točk
Tudi tu ni natančnega kriterija. Nekaj stvari, na katere morate biti pozorni:
- Uporabite ustaljene dogovore. Na primer, če uporabnik izbere natanko eno stvar izmed mnogih, naj se uporabi spustni seznam ali radio box, če pa jih mora več pa check box.
- Vmesnik naj bo pregleden, da se vedno ve, kaj naj uporabnik naredi in kakšne posledice bodo imela njegova dejanja.
- Vmesnik naj bo estetski. Če sami nimate največ občutka, lahko uporabite kakšno že narejeno ogrodje, na primer Bootstrap, Bulma ali Materialize.
- V besedilu ne sme biti slovničnih napak.
- Uporabnikova napaka naj sproži le opozorilo, ne pa da sesuje celoten program.
- Če pišete programe, kjer podatke vnaša uporabnik, priložite tudi smiselne vzorčne podatke.
Urejenost kode: 20 točk
- Za skladnost s PEP 8, torej da ustrezno uporabljate presledke, nimate predolgih vrstic in podobno, lahko dobite do 5 točk.
- Če je vaš program zasnovan tako, da sta podatkovni model in uporabniški vmesnik ločena, dobite do 5 točk.
- Za elegantno kodo lahko dobite do 10 točk. Tu gre za to, da ponavljajoče ukaze prenesete v funkcije ali zanke, da definicije funkcij niso predolge (sicer jih razbijte na manjše), da ustrezno poimenujete spremenljivke, da kodo pišete konsistentno, uporabljate primerne podatkovne strukture (kdaj se uporabi množico, kdaj seznam, kdaj nabor, …) in podobno.
Urejenost repozitorija: 10 točk
- Za lepo napisan
README.md, ki vsebuje kratek opis programa ter navodila za uporabo, lahko dobite do 5 točk. Če je vaš program zasnovan tako, da že vsebuje navodila za uporabo, je dovolj, daREADME.mdvsebuje samo navodila za zagon. - Če v repozitoriju ni odvečnih stvari kot mape
__pycache__, datotek*.pyc, starih datotek (projektna-prejsnja.py,poskus.py, …) in nič odvečnih datotek, dobite do 3 točke. Najboljši način, da se izognete odvečnim datotekam, je seveda uporaba.gitignore. - Če so sporočila v spremembah jasna (in ne le
deloali celolksdjf), dobite do 2 točki. Če spremembe delate prek GitHuba (in so sporočilaUploaded via GitHubin podobno), točk ne boste dobili.
Last modified: Thursday, 18 August 2022, 12:27 PM