Projekty

Záverečné projekty možno chápať aj ako individuálne zadanie domácej úlohy (je možné mať len jeden projekt), t.j. body sa projekty budú zarátané do bloku "domáca práca". Cieľom projektov je navrhnúť a implementovať vlastnú netriviálnu miniaplikáciu, ktorá by nejakým spôsobom preukázala vaše programátorské zručnosti. Projekty nie sú povinné (no odporúčané).

Témy projektov

Téma projektu môže byť naozaj ľubovoľná. Všetko závisí len na dohode s "hlavným" cvičiacim skupiny. Cvičiaci je osoba, ktorá rozhoduje o akceptácii navrhnutej témy projektu. Záujemcom odporúčame sa o téme projektu čo najskôr porozprávať s cvičiacim, ktorý vás vie v prípade potreby vo výbere témy projektu usmerniť. Je preferované, aby žiadne dve osoby nemali projekt s rovnakou témou. Ak ale táto situácia nastane, rovnaká téma znamená nezávislú prácu na projektoch.

V veľmi odôvodnených prípadoch je možná aj tímová práca na projekte - v takomto prípade ale musí byť rozsah projektu taký, že tímové riešenie projektu bude mať svoje opodstatnenie (jednoduché hry do tejto kategórie určite nespadajú). Pri obhajobe projektu musí byť tiež jasné, kto a ako sa podieľal na jednotlivých moduloch projektu. Vysvetlenie: Nemusíte sa báť, nechceme potláčať tímovú prácu, ktorá je v praxi absolútnym základom. Na tímovú prácu vás postupne pripravia ďalšie študijné predmety. Keďže "silu reťaze určuje najslabšie ohnivko", PAZ1a chce, aby ste sa stali "silnými ohnivkami reťazí", ktoré v budúcnosti budete držať pokope.

Príklady tém projektov:

Niektoré minuloročné a predminuloročné projekty: Pozrite si niektoré príklady záverečných projektov:

Poznámka: Pri projektoch môžete (ale nemusíte) využívať JPAZ2.

Hodnotenie projektov

Hodnotenie projektu závisí od náročnosti projektu, kvality implementácie a používateľského rozhrania. Za projekt spĺňajúci všetky naň kladené požiadavky s primeranou náročnosťou sa dá získať maximálne 40 bodov. O tom, aký približný počet bodov sa bude dať získať za projekt v závislosti na téme projektu, vás bude vedieť informovať váš cvičiaci teoretických cvičení po zaslaní témy projektu. Reálne získaný počet bodov ale závisí len od kvality realizácie projektu. Ak si to projekt zaslúži, hodnotitelia udeľujú bonusové body navyše.

Požiadavky na implementáciu projektu

  • GUI: V prípade grafických aplikácií je možné vytvoriť aplikáciu využivajúcu JPAZ2. Samozrejme aj GUI vytvorené v AWT, či Swingu je akceptované. Používateľské prostredie navrhnite a implementujte tak, aby bolo intuitívne, užívateľsky príťažlivé a zároveň "blbo-vzdorné" (program je odolný voči "nevhodnej" aktivite používateľa - napr. zlý vstup, pokus o nepovolený ťah). Ak sa rozhodnete vytvoriť "negrafickú aplikáciu" (napr. spracovanie nejakých súbor, ...), GUI nie je potrebný - treba však dbať na to, aby používatelia vašej aplikácie ju vedeli pohodlne ovládať (napr. jasne definované argumenty pri spúšťaní aplikácie z príkazového riadku v prípade konzolovej aplikácie).
  • Triedy: Funkcionalitu aplikácie rozumne rozložte do vlastných tried (zobrazovanie/funkcionalita/dáta). Toto je jedno z najdôležitejších kritérií na posúdenie kvality implementácie projektu. Projekt by mal teda pozostávať z viacerých tried (napr. v hre nad JPAZ-om môžeme mať triedy HraciaDoska, Figurka, ...)
    • Príklad: ak sa rozhodnete pre naprogramovanie hry s využitím JPAZu, tak v triede rozširujúcej triedu WinPane implementujte len zobrazovaciu funkcionalitu. Logika a stav hry nech sú uložené v samostatnej triede (napr. takáto trieda pozná obsah políčok hracej dosky; vie povedať, či je ťah povolený; vie zrealizovať ťah, atď. ). Na uloženie komplexnejších dát rovnako využite samostatné triedy (napr. ak je stav figúrky popísaný viacerými hodnotami).
  • Práca so súbormi: Pokiaľ to charakter témy projektu pripúšťa, je nutné implementovať v projekte aj prácu so súbormi (napr. uloženie stavu hry, zoznam najlepších výsledkov a podobne)
  • Okomentovaný a prehľadný zdrojový kód!

Poznámka: v prípade hier pre viac hráčov netreba programovať inteligentných protihráčov!

Časový plán projektov

  • najneskôr do ???.12.2017 dohodnúť tému projektu a jej názov a popis zadať v Moodle (aj osobne dohodnutá téma projektu musí byť spísaná a zapísaná v Moodle); v popise napísanom s diakritikou (keďže bude zverejnený na stránke) uveďte:
    • názov projektu
    • stručný opis projektu
  • projekt je treba odovzdať najneskôr do ???.2.2018 (vrátane).
    • projekt odovzdajte cez Moodle (jeden skomprimovaný súbor so zdrojovými kódmi projektu). V prípade, že súbor bude väčší ako 20MB, na zaslanie súboru využitie niektorú zo služieb na zdieľanie súborov (napr. uloz.to) a do Moodlu uložte len odkaz na súbor (napr. ako komentár)
    • dátum, čas a miesto verejných prezentácií a obhajoby projektov budú upresnené neskôr, na jednu obhajobu bude vyhradených asi 10 minút
    • vo vybraných prípadoch môže byť doplňujúca neverejná diskusia k projektu s cieľom overiť autenticitu autorstva (jedna sa to osôb, kde odprezentovaný projekt nebude korelovať s výsledkami počas semestra), resp. u kvalitných projektov diskusia k detailom projektu s cieľom upozorniť na drobné chyby, či dať rady do ďalšej programátorskej činnosti

Odovzdané projekty budú zverejnené na webových stránkach predmetu PAZ1a. Dajte si preto záležať, aby ste sa za svoj projekt po zverejnení nemuseli hanbiť.

Obhajoba projektov

  • Obhajoba projektov sa koná v ???.2.2018 (???) o ??? v SA1C03 (P/03). Treba prísť pár minút skôr, aby bol čas vyskúšať si funkčnosť projektu na počítači v SA1C03 (predbežne sú už všetky projekty vo workspace v Eclipse).
  • Na obhajobu projektu je vyhradených asi 10 minút
  • Obhajoba je nasledovaná diskusiou (okolo 5 minút)
  • Slajdy nie sú nutné, ale sú vítané (určite ich prítomnosť oceníte aj počas obhajoby)
  • Počas obhajoby by mal študent:
    • predstaviť projekt a uviesť motiváciu k projektu: o čom je projekt, prečo som si vybral danú tému, čo je cieľom projektu
    • demonštrovať projekt: praktická ukážka fungovania projektu a jednotlivých aspektov jeho funkcionality (táto časť môže byť spojená s predchádzajúcou)
    • predstaviť návrh/štruktúru tried: z akých tried sa projekt skladá a akú funkcionalitu poskytujú (netreba hovoriť o každej triede, aké má metódy, treba predstaviť "zmysel života" objektov triedy a jej zaradenie do kontextu ostatných tried)
    • porozprávať o implementácii projektu: aké najťažšie problémy sa ukázali pri implementácii projektu, čo bolo treba riešiť a ako sa to nakoniec podarilo/nepodarilo vyriešiť
    • zosumarizovať prácu na projekte: ako ďalej možno vylepšiť projekt, čo som sa pri projekte naučil, ...

Súťaž o najlepší projekt

Najlepšie projekty získajú odmenu vo forme 15, 10 a 5 prémiových bodov.