Systémové programovanie 2015: požiadavky na hodnotenie

Novinky

  • Tretí, mimoriadny, termín obhajoby sa koná 17. 6. 2015 od 7:07 v miestnosti SA1C03.
  • Prečítajte si podrobne aktualizované požiadavky, ktoré boli obohatené o vyjasnenia, či aktualizácie.
  • Vzhľadom na malý počet úspešných obhajob v prvom termíne sa posúva začiatok 2. termínu na 14:00

Hodnotenie projektu

Systémové programovanie sa končí ohodnotením samostatne vypracovávaného projektu s nasledovnými charakteristikami:

  • zvoľte si tému projektu. Inšpirujte sa brainstormingom, aplikáciami z Google Play, či iných platforiem
  • projekt vypracujte samostatne. Tímové projekty nie sú povolené.
  • osobne ho obhájte v stanovený dátum.
  • vyberte si technologické črty vášho projektu. Na úspešnú obhajobu projektu je potrebné nazbierať minimálne 19 bodov. Stupnica hodnotenia je nasledovná: 19 bodov E, 20 bodov D, 21 bodov C, 22 bodov B, 23 a viac bodov A.
  • najneskôr v deň obhajoby pošlite na e-mail informáciu o tom, ktoré technologické črty mienite obhajovať. E-mail je potrebný na urýchlenie priebehu obhajoby.
  • sledujte priebežne požiadavky na hodnotenie: formulácia či ujasnenia môžu priebežne pribúdať podľa dopytov študentov.

Termíny hodnotenia

Hodnotenie a obhajoba projektov sa konajú v dvoch štandardných termínoch:

  • streda 3. júna 2015 od 16:00 v miestnosti P4
  • streda 10. júna 2015 od 16:00 v miestnosti P4

Tretí termín má konanie

  • streda 17. júna 2015 od 7:07 v miestnosti P3

Pozor, dodatočné termíny obhajoby nebudú vypísané!

Nutné požiadavky

  • pri vývoji predpokladajte minimálny API Level 14 (Android 4.0)
  • ak využívate cudzí kód alebo externú knižnicu, uveďte exaktný odkaz na jeho autora alebo pôvodinu.
  • najneskôr v deň obhajoby pošlite na e-mail informáciu o tom, ktoré technologické črty mienite obhajovať. E-mail je potrebný na urýchlenie priebehu obhajoby.

Technologické črty

  • aktivity a fragmenty: minimálne 4 aktivity (2 bod + bod za každú dodatočnú aktivitu spĺňajúcu požiadavky. Aktivita musí byť logická, zapadajúca do idey aplikácie, netriviálna (pozostávajúca z viacerých komplexných widgetov) a unikátna (identické aktivity s minimálnymi odlišnosťami nie sú brané do úvahy.) Aspoň 1 aktivita musí demonštrovať použitie netriviálnych fragmentov. Nesplnenie tejto podmienky má za následok neuznanie projektu.

    Ďalšie kritériá:

    • Každá aktivita musí mať korektne implementovaný životný cyklus, korektne ukladať priebežný stav a musí byť schopná vysporiadať sa so zmenou konfigurácie (otočenie zariadenia).
    • Ak aktivita poskytuje len zoznam akcií (napríklad tlačidiel), nepovažuje sa za netriviálnu. Pre navigáciu v aplikácii slúži widget navigation drawer. Ak tlačidlá reprezentujú akcie, využite lištu akcií (action bar).
  • SQL: využitie relačnej databázy, content providery, loadery (3 body)
    • je zakázané volať databázové metódy v hlavnom vlákne: namiesto nich využite loadery.
    • využitie viactabuľkového content providera (1 bod). Viactabuľkový content provider má využívať UriMatcher, prípadne demonštrovať použitie SQL JOINov.
  • vlastné loadery: 1 bod
  • podpora veľkých displejov (tabletov): 1 bod. Aplikácia musí efektívne využívať väčšiu veľkosť displeja (využite fragmenty), a zároveň musí užitočne korektne fungovať i na štandardných zariadeniach (telefóny).
  • preferencie: využitie preferencií vrátane preferenčnej aktivity: 1 bod
  • služby: služba založená na IntentService: 1 bod
    • bindery$$$: služba využívajúca Bindery: 2 body
    • komunikácia s aktivitou cez broadcasty: 1 bod
  • zoznamy, mriežky, tabuľky: využitie zoznamu, mriežky či podobného widgetu s adaptérom: 1 bod za každý widget
    • ViewBinder$$$: návrh vlastného adaptéra s ViewBinderom: 1 bod
  • netradičný komponent$$$: využitie netradičného komponentu z knižnice Androidu, či z externej knižnice: 1 bod
  • widgety moderného Androidu:
    • lišta navigácie (navigation drawer): 1 bod
    • karty (tabs): 1 bod
    • swiping view: 1 bod
  • HTTP klient: využitie HTTP klienta alebo URLConnection na komunikáciu so serverom: 1 bod.
    • Demonštrácia obojsmernej komunikácie (HTTP POST a HTTP GET) cez URLConnection: 1 bod
  • AsyncTask: korektné využitie AsyncTasku s primeraným zvážením okolností použitia: 1 bod
    • headless fragment: využitie headless fragmentu pre dlhotrvajúce úlohy s použitím AsyncTask: 1 bod
  • notifikácie: 1 bod
  • dialóg: 1 bod
  • senzory: využitie niektorého senzora (GPS, krokomer): 1 bod za každý senzor
  • fotoaparát/videokamera: 1 bod
    • vlastné vykresľovanie náhľadu$$$? 1 bod
  • zdieľanie: odosielanie či prijímanie dát do iných aplikácií: 1 bod za odosielanie, 1 za prijímanie
    • zdieľania cez Android Easy Share$$$
  • vlastná modifikácia ActionBaru$$$: obohatenie ActionBaru o vlastné komponenty: vyhľadávanie, špeciálne tlačidlá: 1 bod. (Bežné položky Action Baru reprezentované ako tlačidlá nie sú ohodnotené.)
  • externá knižnica$$$ využitie externej Java knižnice v projekte: 1 bod. Použitie knižnice AndroidCameraUtil z cvičení nie je ohodnotené.
  • vlastný štýl aplikácie$$$: 1 bod
  • synchronizácia$$$ s využitím synchronizačného API Androidu: 2 body
  • kompletná lokalizácia aplikácie $$$ s využitím resources: 1 bod
  • využitie dizajnového jazyka Material: 1 bod
  • korektný beh aplikácie i na platforme Android 2.x: 2 body
  • zverejnenie aplikácie na Google Play: 2 body
  • zverejnenie zdrojových kódov na GitHub, BitBucket, SourceForge či inom verejnom úložisku zdrojových kódov: 1 bod

Vyjasnenia

  • Črty označené $$ sú bonusové a priamo sa na stretnutiach nepreberali, alebo sa preberali v zjednodušenej forme. Pomôže Vám literatúra, dokumentácia k Androidu a StackOverflow.
  • Technologické črty a funkcionalita musia viesť ku konzistentnej a logicky organizovanej aplikácii. Funkcionalita implementovaná bez ohľadu na zmysluplnosť v kontexte aplikácie nebude ocenené bodmi.
  • Ak máte pochybnosti o hodnotení vašej črty, konzultujte to vopred mailom.
  • Funkcionalita implementovaná s využitím cudzieho kódu bez uvedenia zdroja nebude ohodnotená bodmi.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *