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é 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 7.12.2011 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 25.1.2012
    • projekt odovzdajte e-mailom (jeden skomprimovaný súbor so zdrojovými kódmi projektu) na adresu frantisek.galcik@upjs.sk. 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 e-mailom zašlite len odkaz na súbor
    • 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 piatok 27.1.2012 o 8:30 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

  • Lukáš Brincko a Martin Lenkavský (A): Mahjong
  • Ján Dudáš (B): Dáma
  • Lucia Fridmanová (C): Čarovné karty
    • kartovo-logická hra
  • Dominik Imrich (A): Letisko
  • Michal Ivan (D): Color lines
    • strategicko-logická hra založená na zoskupovaní "guličiek" rovnakej farby
  • Martin Jadloš (B): Džungľa
  • Dominik Jeník (B): StarShooter
    • vesmírna strieľačka pre dvoch hráčov
  • Michal Lacko (B): Farm manage
    • aplikácia pomáhajúca pri správe farmy s troma podaplikáciami: skladové hospodárstvo nafty, skladové hospodárstvo chémie a elektronická kniha honov
  • Ján Murín (A): Bulánci
  • Zsolt Rácz (A): Tower Defense
  • Matúš Rebič (B): MonteCarlo simulácia dvojrozmernej kubickej mriežky
    • dynamický spinový systém meniaci sa v čase, možnosť výberu medzi single-spin-flip, alebo checkboard algoritmom
  • Jakub Sedlák (B): Klobásky
    • logická hra pre dvoch hráčov
  • Peter Sedmák (B): Bomberman alebo Útek zlodejov pred policajtmi
    • klasický Bomberman
    • arkádovka, kde hráč ovláda zlodeja a uteká pred policajtmi, pričom zbiera mince
  • Ján Štefaňák (B): Backgammon
  • Viliam Štubňa (B): Celulárny automat
    • 1-rozmerný celulárny automat (prípadne 2-rozm.) s vykreslením časového priebehu stavov všetkých 255 pravidiel podľa zadaného stavu riadku cells v čase t = 0.