Seminarska naloga 2021/22 - navodila

Opis seminarske naloge

Za seminarsko nalogo boste morali v Pythonu rešiti sklop nalog z:

Naloge boste reševali v 4. sklopih. V vsakem sklopu boste morali doseči ustrezno število točk. 

Pozor: Izvajalci predmeta se dobro zavedamo, da lahko rešitve nalog poiščete po spletu ali  pa vam pri reševanju kdo pomaga. Vendar je pomemben sestavni del SN tudi njen zagovor. In pri zagovoru "dokažete", da je resnična izjava, ki jo podate. To med drugim pomeni, da ste v poročilu točno označili vse tiste dele kode, ki ste jih povzeli iz virov in vire navedli. Prav tako izjava o avtorstvu pomeni, da znate razložiti vsako podrobnost kode (če npr. uporabite lambda funkcijo, boste morali razložiti kaj to je, kako bi zadevo lahko rešili brez lambde ...), ki jo oddajate. Zato vam priporočamo, da vsako nalogo, pri kateri ste uporabili pomoč ("živo" ali digitalno), rešite še enkrat povsem sami (s "praznim" urejevalnikom), brez pomoči. 

Naloge izberete sami. Pri tem lahko izberete le tiste naloge, ki še niso rezervirane. Vsaka rešena naloga (rešena je tista naloga, ki uspešno prestane prav vse teste - torej ob oddaji dobite same zelene kljukice) ima določene točke težavnosti (težavnost je napisana pri vsaki nalogi - so od 1.2 do 9.5).

V vsakem sklopu si lahko izberete največ 2 nalogi s težavnostjo <= 2.2T. Naloge, katere rešitev zahteva manj kot 5 vrstic kode, ne štejejo (razen s posebnim dovoljenjem predavatelja)

To vsoto točk potem zniža/zviša kvaliteta poročila in kode ter se zaokroži (zaokroženo navzgor - 22.2T je torej 23T)!  Ob končni oddaji boste dobili predlog ocene za SN okvirno glede na spodaj objavljeno lestvico. To oceno potem lahko zviša/zniža (ustni) zagovor SN. 

Ker se točkovanje zahtevnost nalog v KATTISu spreminja, pravočasno z zaslonsko sliko dokumentirajte, koliko točk ima vaša naloga, ko jo rezervirate, da boste potem ob oddaji lahko priložili to sliko. 

V vsakem obdobju bomo predvideli vsaj dva termina (v sklopu vaj, vsaj 10 dni pred rokom za oddajo), na katera se boste lahko "prijavili" s svojimi nalogami. Če vam bo kakšna naloga torej delala težave, jo boste predstavili na teh vajah in bomo vsi skupaj poiskali kak namig k končni rešitvi. 

Seveda se lahko za pomoč vedno obrnete tudi na predavatelja in asistentko, vendar najkasneje 10 dni pred rokom za oddajo. Torej zadnjih 10 dni vam predavatelj in asistentka ne bosta odgovarjala na vprašanja v povezavi z reševanjem vaših nalog za SN.

Roki

zadnji rok za rezervacijo zadnji rok oddaje poročila min. skupno točk max. skupno točk
1.del 27. 12. 11. 2. 8 15
2.del 18. 3. 19. 4. 16 30
3.del 20. 5. 20. 6. 23 50
končno 23. 8. 1. 9. (prva oddaja)
30.9. (zadnja oddaja popravkov)
33

  • Zadnji rok za rezervacijo pomeni, da do takrat še lahko rezervirate nove naloge. Vračate pa jih lahko tudi kasneje, a najkasneje do enega dneva pred oddajo [torej vsaj 24 ur preden oddate SN (ustrezni del SN)]
  • Do 11. 2. morate torej oddati poročilo za prvi sklop nalog. V tem delu morate zbrati vsaj 8T, ne morete pa zbrati več kot 15T. Če torej zberete več kot 15T in nimate odbitkov zaradi kvalitete poročila/kode, se vam upošteva 15T.
  • Naloge za 2. sklop lahko rezervirate (po e-pošti)  potem, ko ste oddali 1. del kadarkoli (lahko večkrat), a najkasneje do 18. 3.
  • Do 19. 4. morate oddati poročilo za prvi in drugi sklop nalog (torej dopolnite prejšnje poročilo). S to oddajo morate zbrati vsaj 17T (skupaj s točkami prvega dela), ne pa več kot 30T (če ste v prvem delu dobili 10T, torej v tem delu lahko zberete največ 20T, če pa ste jih dobili maksimalnih 15T, lahko v tem delu dobite še 15T). Če zberete več kot 30T in nimate odbitkov zaradi kvalitete poročila/kode, se vam upošteva 30T. Po opravljenem drugem delu boste torej imeli med 17T in 30T.
  • ... 
  • Do 1. 9. morate oddati končno poročilo (dopolnite poročilo 3.dela). Sedaj morate zbrati vsaj 33T, navzgor pa število točk ni omejeno. 
  • Po prejemu ocene morate v 5 delovnih dnevih narediti eno od navedenega:
    • se po e-pošti dogovoriti za datum zagovora
    • oddati popravek SN. Ta je točno tak, kot opisano zgoraj (seveda s posodobljenimi ustreznimi datotekami), le da vsebuje še datoteko Popravek_datum.txt, kjer je na kratko opisano, katere naloge ste spremenili in kaj ste spremenili! Zadnji popravek lahko oddate 30. 9. (a pozor - načeloma lahko to pomeni, da se vam izpit letos ne šteje za vpis v višji letnik)
       
    Potem, ko prejmete končno oceno, se morate v roku 5 dni po e-pošti domeniti za datum zagovora! Upoštevajte pa, da zato, da vam izpit "šteje", velja splošna omejitev, do kdaj morajo izpiti biti opravljeni!

Rezervacije

Najprej si boste ogledali naloge in poslali pošto z naslovom P1 - Rezervacija seminarske naloge (če nima tega naslova, gre v koš!) Tam navedite, katere naloge želite reševati (aktivne povezave do njih). Ob rezervaciji morate navesti seznam nalog s točkami. Glejte predpisano obliko! Naenkrat lahko naredite največ tri spremembe nalog. Sprememba pomeni vračanje ene naloge ali rezervacija nove naloge (torej lahko rezervirate 2 novi in vrnete 1 od prej rezerviranih). Rezervirati seveda smete le nezasedene naloge! Naslednjo rezervacijo (v istem sklopu) lahko opravite najprej 3 (tri) dni potem, ko je bila prejšnja rezervacija sprejeta (ste dobili obvestilo o tem, katere naloge so odobrene).  Ob novi rezervaciji navedite tudi vse naloge, ki so bile odobrene že prej. 

V SU  si oglejte, kako mora biti rezervacija sestavljena! Uporabite predpisano obliko!

Rezervacijo lahko naknadno spremenite, torej lahko "vrnete" določeno nalogo in/ali rezervirate nove.  Če pa nalogo rezervirate in je ne rešite (in je niste vrnili vsaj en dan pred oddajo) vam avtomatsko odštejem 5T (od točk za oceno) (seveda pa se ta nerešena naloga ne šteje v točkovanje!)

Rezervacije morate sami vpisati v Wiki, preden pošljete e-pošto! Če vseh rezerviranih nalog ne dobite odobrenih, morate ustrezno popraviti Wiki! Prav tako morate v Wikiju narediti popravek, če določeno nalogo vrnete! 

Izdelava seminarske naloge

Pomembno je, da je naloga rešena pravilno in da je koda dobro komentirana. Vsaj toliko (če ne bolj) je pomembno spremno gradivo, ki je:

  • opis problemov z idejo rešitve,
  • datoteke (za vsak posamezni problem) s komentirano kodo.  Uporabite imena, ki jih ponuja Kattis kot Problem ID (npr. pokeball.py)! 

Oddana naloga vsebuje eno tekstovno datoteko s poročilom ter za vsako posamezno nalogo datoteko z izvorno kodo v Pythonu, torej npr. za nalogo Pokeball Fever datoteko pokeball.py! .

Prav tako v poročilu in sami kodi ne pozabite ustrezno navajati in označiti vire, kadar boste v sklopu priprave rešitev uporabili del kakšne kode drugih (kolega, kode s spleta ...)! 

Vsebina datoteke s poročilom (glej objavljene vzorce (nekateri bodo odprti kasneje!)- za 1.del,
  • Na prvi strani naj bo ustrezna (ni nujno, da točno taka kot je na vzorcu, lahko ste "kreativni") naslovnica.
  • Na drugi strani je "povzetek" - tukaj je navedena tabela, ki vsebuje štiri razdelke - Naloge za 1. sklop, 2.sklop, 3. sklop in 4. sklop (ob oddaji 1. dela bodo seveda 2., 3. in 4. sklop spuščeni ...). V vsakem sklopu so ime naloge, aktivna povezava do naloge in število težavnostnih točk. Spodaj je skupno število točk, zaokroženo navzgor. 
  • Dodatno so navedene naloge iz 1. - 3. dela, ki ste jih spreminjali (seveda v poročilu za 1. del tega ni ...)
  • Stran zaključuje  izjava: "<I. P.> izjavljam, da sem seminarsko nalogo opravila samostojno in da sem njena avtorica. To pomeni, da sem v poročilu točno označila vse tiste dele kode, ki sem jih povzela iz virov in vire navedla. Prav tako vem, da izjava o avtorstvu pomeni, da znam razložiti vsako podrobnost kode, ki jo oddajam. Zavedam se, da v primeru, če izjava prvega stavka ni resnična, kršim disciplinska pravila." oziroma "<I. P.> izjavljam, da sem seminarsko nalogo opravil samostojno in da sem njen avtor. To pomeni, da sem v poročilu točno označil vse tiste dele kode, ki sem jih povzel iz virov in vire navedel. Prav tako vem, da izjava o avtorstvu pomeni, da znam razložiti vsako podrobnost kode, ki jo oddajam. Zavedam se, da v primeru, če izjava prvega stavka ni resnična, kršim disciplinska pravila."
  • Temu sledijo rešene naloge.
    • Opis vsakega problema se mora začeti na svoji strani in vsebuje:
      • besedilo problema  [besedilo problema naj bo prevedeno v slovenščino (pozor - pričakujem, da se pri prevodu potrudite in besedilo skrbno preberete. Google Translate skoraj nikoli ne da zadovoljivega rezultata! ]
      • povezavo do spletne strani s problemom.
      • Zaslonsko sliko, iz katere je razvidna težavnost.
      • Opis ideje reševanja - na kratko, ne navajati kode, le idejo. "Nepomembne dele", kot so enostavno branje (če ni tam kaj "tricky"), enostavni izpisi, "očitne funkcije" spustimo!
      • Nujna je tudi slika, kjer pokažeš, da si svojo rešitev preveril v sistemu in je bila sprejeta (Accepted!!)
        • če se zgodi, da dobite TLE (Time Limit Exceeded), se obrnite na predavatelja. Glede na vzrok je možno, da bo naloga vseeno sprejeta, z določenim odbitkom točk seveda. 
        • Enako velja tudi v primeru, ko gre vaša naloga čez vsaj 5 testov, potem pa dobite WA (Wrong Answer). Tudi tu morda lahko "iztržite" (po dogovoru) kakšno točko.

      • Ime priložene datoteke z rešitvijo 

Po vsakem delu boste nekateri (nekaj naključno izžrebanih in nekaj po izboru predavatelja) morali zagovarjati naloge, ki ste jih oddali v tistem delu, prav vsi pa boste imeli končni ustni zagovor, s katerim zaključite predmet.

Lestvica izhodiščnih ocen

  • 58 točk in več: 10
  • 51 - 57 točk: 9
  • 44 - 50: 8
  • 38 - 43: 7
  • 33 - 37: 6





Last modified: Tuesday, 30 August 2022, 10:27 AM