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 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.

Príklady tém projektov:

Niektoré minuloročné a predminuloročné projekty:

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.

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 11.12.2012 dohodnúť tému projektu (aj osobne dohodnutá téma projektu musí byť spísaná a odoslaná cvičiacemu e-mailom), v e-maile uveďte:
    • názov projektu
    • stručný opis projektu
  • projekt je treba odovzdať najneskôr do 6.2.2013
    • projekt odovzdajte cez Moodle (jeden skomprimovaný súbor so zdrojovými kódmi projektu). V prípade, že súbor bude väčší ako 4MB, 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 8.2.2013 (piatok) o 13:00 v P/01. Treba prísť pár minút skôr, aby bol čas vyskúšať si funkčnosť projektu na počítači v P/01 (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.

Prihlásené projekty

  • Diana Almašiová (E): Sudoku
  • Matúš Balický (D): Ruleta/Roulette
  • Tomáš Bajtoš (C): Logická hra v štýle androidovej hry UnblockME
    • Táto hra je tiež známa ako parkovanie autíčok, kde musí hráč posúvať autíčka(iba dopredu a dozadu) aby sa s jedným potom dostal von z hracej plochy.
  • Michal Barančik (C): Logická hra REVERSI
  • Martin Blišťan (A): Strelec
  • Peter Dian (E): Obesenec
  • Barbora Dvořáková (C):
    • Poker Texas Holdem - známa a obľúbená kartová hra
    • Pacman - známa "arkádovka" s cieľom získať všetky body v bludisku a nenechať sa "zožrať" duchmi.
  • Jozef Džama (A): Rátanie príkladov na rýchlosť
  • Jakub Gregorek (A): Activity (spoločenská hra)
  • Stanislav Hrivňak (A): Maľované krížovky
  • Štefan Jelč (B): Space Invaders/Space Invasion
    • Nové prevedenie klasickej hry na spôsob Space Invaders, v ktorej úlohou hráča bude ochrániť Zem pred inváziou útočníkov z vesmíru.
  • Miroslava Klučárová (C): Solitaire- kartová hra
  • Pavol Kozák (A): FLOOD-IT
  • Patrik Palko (E): Blackjack
  • Ján Piatak (Ibe): Edukačná hra pre jazykárov
  • Dávid Szabari (B): Šach
  • Dana Šlauková (B): TurtleCurling
    • Hra na spôsob curlingu, kde dvaja hráči hrajú proti sebe a snažia sa dostať svoju korytnačku, čo najbližšie do stredu terčovitého obrazca.
  • Katarína Lukačková (D): Akvarium

Zverejnené projekty