Programovanie (2) v Jave
1-INF-166, LS 2016/17

Úvod · Pravidlá · Prednášky · Projekt · Netbeans · Odovzdávanie · Test a skúška
· Vyučujúcich môžete kontaktovať pomocou e-mailovej adresy E-prg.png (bude odpovedať ten z nás, kto má príslušnú otázku na starosti alebo kto má práve čas).
· Predvádzanie projektov bude v pondelok 5.6. od 9:00 do 12:00 a v utorok 6.6 od 12:00 do 13:30 (po skúške), oboje v miestnosti M217. Na termín sa prihláste v AIS. Ak robíte vo dvojici, prihlási sa iba jeden člen dvojice.
· Body zo záverečného testu sú na testovači. Poradie príkladov: P1: do šírky, P2: topologické, P3: výnimky, P4: iterátor, P5: testy, P6: strom. Bolo potrebné získať aspoň 20 bodov zo 40.
· Opravný test bude 19.6.2017 od 9:00 v miestnosti M-I. Na termín sa prihláste v AISe.
· Zapisovanie známok a osobné stretnutia ku skúške budú v utorok 13.6. 13:30-14:30 v M163 a v stredu 14.6. 14:00-14:30 v M163.


Letný semester, projekt

Z Programovanie
Prejsť na: navigácia, hľadanie
  • Súčasťou bodovania je aj nepovinný projekt, za ktorý môžete dostať 10% bonus.
    • Je to príležitosť vyskúšať si písanie väčšieho programu, pričom v projekte máte väčšiu voľnosť ako pri domácich úlohách
    • Projekty, ktoré nebudú spĺňať podmienky uvedené nižšie, budú hodnotené 0 bodmi, nemá teda význam odovzdávať nedokončené programy

Požiadavky na projekt

  • Projekt musí byť na jednu z tém nižšie. Témy však nepopisujú presné požiadavky, poskytujú len námety, z ktorých si môžete vybrať a prípadne ich ďalej rozšíriť.
  • Projekt musí byť napísaný v Jave a spustiteľný v Netbeans v učebniach na fakulte a napísaný prehľadne s dostatkom komentárov.
  • Používať môžete len štandardné javovské knižnice (a prípadne JUnit). Okrem toho samozrejme môžete používať kód poskytnutý v rámci predmetu. Zvyšok programu by mal byť z väčšej časti napísaný vami. Ak použijete nejaké úryvky kódu z internetu alebo iných zdrojov, v komentároch jasne uveďte zdroj.
  • Program by mal poskytovať grafické užívateľské prostredie, mal by byť príjemne ovládateľný a mal by sa vyrovnať aj s neobvyklým správaním používateľa (nemal by padať na chyby, okrem naozaj závažných neobvyklých situácií ako nedostatok pamäte).
  • Váš program by mal byť schopný načítavať spracovávané dáta zo súboru a po ich prípadnej zmene ich opäť do súboru uložiť. Formát súboru si môžete zvoliť, program by však nemal padať, ak dostane súbor v zlom formáte alebo s nezmyselnými dátami.

Projekt spĺňajúci tieto požiadavky získa aspoň 5% bonusových bodov, pričom je možné získať až 10% v závislosti od náročnosti a kvality vypracovania projektu.

Termíny a odovzdávanie

  • V prípade, že chcete robiť projekt, treba si vybrať jednu z ponúkaných tém do pondelka 15.5.2017 22:00
    • Doporučujeme však toto rozhodnutie spraviť čím skôr, aby ste na projekt mali dosť času, koncom semestra býva veľa práce na všetkých predmetoch.
    • Do uvedeného termínu odovzdajte na testovači súbor .txt, ktorý bude obsahovať, ktorú tému ste si vybrali a meno jedného alebo dvoch študentov, ktorí budú na tejto téme robiť. Stačí, ak sa na projekt prihlási jeden z členov dvojice.
    • Testovač vyhlási, že sa súbor nedá skompilovať, čo si nevšímajte.
  • Samotný projekt je potrebné odovzdať klasicky ako domácu úlohu. Termín určíme neskôr, bude niekedy v prvom týždni skúškového.
  • Odovzdajte v jednom zazipovanom adresári:
    • podadresár obsahujúci zdrojový kód a ďalšie potrebné súbory, napr. bitmapy,
    • podadresár obsahujúci niekoľko príkladov vstupných súborov,
    • stručný popis projektu vo formáte txt, v ktorom vymenujte, aké možnosti váš program používateľovi poskytuje.
  • Projekt je tiež potrebné prísť predviesť vyučujúcim v dopredu oznámených termínoch (tiež pravdepodobne počas 1.týždňa skúškového obdobia).
    • Na tieto termíny sa bude zapisovať v AISe.
    • Zverejníme odhadovaný časový rozvrh, aby ste vedeli, kedy približne prídete na radu.
    • Vyučujúcim predvediete používanie vášho programu a hlavné časti zdrojového kódu.
    • Body oznámime prostredníctvom odovzdávača až po prezretí všetkých projektov.

Témy projektov

  • Rozšírte DÚ12 (štvorec) o grafické rozhranie, ktoré zobrazí maticu, pričom písmená v matici zvýrazní rôznymi farbami. Používateľovi umožní túto plochu editovať a prezerať si najväčšie štvorce na jednotlivých súradniciach. Pri editovaní plochy sa pokúste ponúknuť paletu viacerých nástrojov na vytváranie rôznych plôšok buď pevne daného tvaru alebo s náhodným prvkom.
  • Rozšírte DÚ13 (connect) o grafické rozhranie umožňujúce používateľovi vytvárať a modifikovať hraciu plochu. Tiež by ste mali umožniť režim pre hranie hry, počas ktorého používateľ môže pridávať a uberať čísla na pozíciách, ktoré boli v štartovacej ploche voľné. Aplikácia by mala rozpoznať, kedy je hra vyriešená. Môžete prípadne na požiadanie prehľadávaním s návratom skontrolovať, či má aktuálny stav plochy aspoň jedno riešenie a teda či hráč nespravil chybu alebo dokonca dať hráčovi nápovedu - na požiadanie mu vyplniť niektoré políčko hodnotou zo správneho riešenia.
  • Rozšírte DÚ14 (roboty) o grafické rozhranie, ktoré zobrazí hernú plochu a dovolí používateľovi vytvoriť alebo editovať postupnosť robotov aj s ich nastaveniami (čas príchodu, typ, inicializačný parameter) a potom simuluje roboty a vypisuje aktuálne štatistiky úspešných a mŕtvych robotov. Môžete prípadne naprogramovať aj editor hernej plochy. Môžete tiež do hry pridať ďalšie typy robotov alebo políčok.
  • Rozšírte DÚ16 (funkcia) o ďalšie možnosti grafického editovania. Užívateľ by mohol napríklad zadávať body aj klikaním na grafickú plochu, tabuľka funkčných hodnôt by sa mohla dať vyplniť polynómom, ktorému používateľ zadá koeficienty, pripadne ďalšími štandardnými funkciami. Užívateľ by tiež mohol uplatniť nejaké transformácie (zvýšenie a zníženie funkčnej hodnoty a pod.) na všetky body funkcie prípadne na vybranú podmnožinu. Mierka na ose x aj y by sa mohla prispôsobovať zadaným hodnotám, prípadne by mohla podporovať zoom. Os y by mohla smerovať nahor, ako je obvyklé v matematika, program by mohol podporovať aj záporné a desatinné čísla. Ďalšie možné rozšírenie je obraziť niekoľko funkcií naraz.
  • Špeciálna ponuka pre pokročilých: Na skúške budete dorábať časti do programu GraphGUI, ktorý umožnuje editovať graf a spúšťať na ňom grafové algoritmy. Momentálne má tento program pomerne jednouché prostredie. Mohli by ste toto prostredie vylepšiť a ideálne spraviť čo najlepšie prístupné aj pre zrakovo postihnutých študentov. Váš program alebo jeho časti potom môžu byť použité na skúške tento rok, prípadne aj v budúcnosti. Knižnicu pre skúšku nájdete v archíve minulého školského roku a a sú tam aj informácie o skúške. Tento typ projektu však treba odovzdať (elektronicky, aj osobne predviesť) najneskôr piatok 5.5.2017. V prípade záujmu o tento typ projektu kontaktujte B. Brejovú e-mailom, ktorá vám pošle ďalšie pokyny.