====== Stanislav Flígl ======
===== Kontakt =====
Kancelář: převážně H107
e-mail: xfligl@fel.cvut.cz
===== Konzultační hodiny =====
po dohodě e-mailem
===== SW a registrace =====
* nainstalujte si [[http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html|JDK 7u40]] (7 = verze specifikace jazyka a knihoven 1.7.0, 40 = 40. update + opravy chyb + doplněné systémové nástroje)
* nainstalujte si [[https://netbeans.org/downloads/|NetBeans 7.3.1]] - bundle **Java SE** nebo **All**
* zaregistrujte se na [[https://bitbucket.org/|Bitbucketu]] a pošlete mi Vaše uživatelské jméno emailem - příklady ze cvičení budu zveřejňovat přes verzovací systém Mercurial tamtéž
* nainstalujte se [[http://tortoisehg.bitbucket.org/download/index.html|TortoiseHg 2.9.1]] (tato grafická nadstavba obsahuje již [[http://mercurial.selenic.com/downloads/|Mercurial 2.7.1]] - není nutné instalovat zvlášť)
===== Hodnocení =====
|Zdroje bodů|max. bodů|min. bodů|
|4 domácí úlohy| 30| 20|
|semestrální práce| 20| 10|
|test na cvičeních| 15| 5|
|aktivita na cvičeních| 5| 0|
|zkouškový test| 20| 10|
|ústní zkouška| 20| -10|
* Upload system = hlídací pes (hledá podobnosti mezi odevzdanými úlohami)
* Na zápočet: min. 40 max. 70 bodů
|Klasifikace na základe bodového hodnocení)||||
|klasifikace| pocet bodu| císelne| slovne|
|A| 90 - 100| 1| výborne|
|B| 80 - 89| 1,5| velmi dobre|
|C| 70 - 79| 2| dobre|
|D| 60 – 69| 2,5| uspokojive|
|E| 50 - 59| 3| dostatecne|
|F| < 50| 4| nedostatecne|
===== Nalezitosti a odevzdani semestralni prace =====
* práce se soubory
* javadoc
* rozdělení do více tříd
* min. 300 řádků
* celkem 25 bodů
===== Rezervace tématu semestrální práce =====
Vyplňte k vybranému tématu svoje FEL uživatelské jméno a plné jméno ve formátu:
- xfligl - Stanislav Flígl
- -
- -
- -
- -
Ke každému tématu max. 5 studentů
Postup:
- pokud již máte naklonovaný archiv, pokračujte na bod č. 3
- naklonujte si archiv https://bitbucket.org/a18899/utb_2013ws_a0b36pri na svůj počítač (pomocí TortoiseHg nebo z příkazové řádky): hg clone https://bitbucket.org/a18899/utb_2013ws_a0b36pri UTB_2013WS_A0B36PRI
a pokračujte na bod č. 5
- pokud již klon máte, stáhněte si poslední commity (pomocí TortoiseHg nebo z příkazové řádky): hg pull
- spusťte update na poslední commit (pomocí TortoiseHg nebo z příkazové řádky): hg update tip
- otevřete pro editaci soubor v relativní cestě ./st1245/sp/rezervace.txt
- pod vybrané téma napište místo pomlčky své uživatelké jméno a skutečné jméno ve formátu jak je uvedeno výše
- uložte soubor
- proveďte commit (pomocí TortoiseHg nebo z příkazové řádky): hg commit -m "rezervace tematu"
- nahrajte úpravu na server (pomocí TortoiseHg - v možnostech nastavte vynutit push / forece push; nebo z příkazové řádky): hg push -f
- přihlašte se na bitbucket a zkontrolujte v záložce commit, zda vidíte v seznamu Vaše změny
Alternativne muzete editovat prislusny soubor take online.
===== Témata semestrálních prací =====
pokud chcete vlastní téma, připravte si zadání v podobném formátu jako níže a zašlete ke schválení tak, že v repozitáři upravíte:
./st0730/sp/rezervace.txt
./st0915/sp/rezervace.txt
a nahrajete ho na server obdobným způsobem jako v případě rezervace zadání
==== Automat (VendingMachine) ====
* 3 bodů/body - zásobníky na mince
* 3 bodů/body - zásobníky na zboží
* 3 bodů/body - placení kartou (jednodužší, nemusíte počítat mince)
* 3 bodů/body - údržba: doplnění / výběr mincí
* 3 bodů/body - údržba: doplnění zboží
* 2 bodů/body - javadoc
* 3 bodů/body - možnost zadat nějakou operaci kromě interaktivního módu i z příkazové řádky
* 0 bodů/body - povinné - ukládání stavu do souboru po jakékoliv operaci
==== Databáze (DatabaseSystem) ====
* 3 bodů/body - správa záznamů o alespoň 5 vlastnostech (např. Kniha: autor, název, rok vydání, jazyk, počet stran) včetně vyhledávání dle libovolné vlastnosti
* 3 bodů/body - třídění podle alespoň 2 vlastností
* 3 bodů/body - výpis seznamu
* 3 bodů/body - editování záznamů
* 3 bodů/body - přidávání a odebírání záznamů
* 2 bodů/body - javadoc
* 3 bodů/body - variantně: možnost zadat nějakou operaci kromě interaktivního módu i z příkazové řádky nebo evidence zápůjček
* 0 bodů/body - povinné - ukládání stavu do souboru po jakékoliv operaci
==== Klasická maticová kalkulačka (FullMatrix) ====
* 3 bodů/body - inverzní matice (libovolně velké matice - jinak jen 3 body)
* 3 bodů/body - násobení matic a násobení matice konstantou
* 3 bodů/body - sčítání a odčítání matic
* 3 bodů/body - výpis matice na obrazovku
* 3 bodů/body - možnost využití uložených výsledků jako vstupů pro další výpočet
* 2 bodů/body - javadoc
* 3 bodů/body - možnost zadat nějakou operaci kromě interaktivního módu i z příkazové řádky
* 0 bodů/body - povinné - ukládání výsledků na disk
==== Řídké matice - formát COO, násobení (SparseMatrixCooMul) ====
* 3 bodů/body - násobení řídkých matic
* 3 bodů/body - sčítání a odčítání řídkých matic
* 3 bodů/body - převod plné matice do [[http://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_.28COO.29|COO]] formátu
* 3 bodů/body - převod [[http://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_.28COO.29|COO]] formátu na plnou matici
* 3 bodů/body - možnost využití uložených výsledků jako vstupů pro další výpočet
* 3 bodů/body - výpis matice na obrazovku
* 2 bodů/body - javadoc
* 0 bodů/body - povinné - ukládání výsledků na disk
* více o řídkých maticích se dočtete na [[http://cs.wikipedia.org/wiki/%C5%98%C3%ADdk%C3%A1_matice|Wikipedii]] a nebo v [[http://en.wikipedia.org/wiki/Sparse_matrix|angličtině]]
==== Řídké matice - formát CTU, násobení (SparseMatrixCtuMul) ====
* 3 bodů/body - násobení řídkých matic
* 3 bodů/body - sčítání a odčítání řídkých matic
* 3 bodů/body - převod plné matice do CTU formátu
* 3 bodů/body - převod CTU formátu na plnou matici
* 3 bodů/body - možnost využití uložených výsledků jako vstupů pro další výpočet
* 3 bodů/body - výpis matice na obrazovku
* 2 bodů/body - javadoc
* 0 bodů/body - povinné - ukládání výsledků na disk
* více o řídkých maticích se dočtete na [[http://cs.wikipedia.org/wiki/%C5%98%C3%ADdk%C3%A1_matice|Wikipedii]] a nebo v [[http://en.wikipedia.org/wiki/Sparse_matrix|angličtině]]
* formát CTU je velmi podobný formátu [[http://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR_or_CRS.29|CSR]] nebo [[http://en.wikipedia.org/wiki/Sparse_matrix#Yale_format|Yale]]. Používají se ale dvě dvourozměrná pole v Javě s různě dlouhými řádky. Jedno pole obsahuje hodnoty, druhé indexy sloupců.
==== Řídké matice - formát DOK, násobení (SparseMatrixDokMul) ====
* 3 bodů/body - násobení řídkých matic
* 3 bodů/body - sčítání a odčítání řídkých matic
* 3 bodů/body - převod plné matice do [[http://en.wikipedia.org/wiki/Sparse_matrix#Dictionary_of_keys_.28DOK.29|DOK]] formátu
* 3 bodů/body - převod [[http://en.wikipedia.org/wiki/Sparse_matrix#Dictionary_of_keys_.28DOK.29|DOK]] formátu na plnou matici
* 3 bodů/body - možnost využití uložených výsledků jako vstupů pro další výpočet
* 3 bodů/body - výpis matice na obrazovku
* 2 bodů/body - javadoc
* 0 bodů/body - povinné - ukládání výsledků na disk
* více o řídkých maticích se dočtete na [[http://cs.wikipedia.org/wiki/%C5%98%C3%ADdk%C3%A1_matice|Wikipedii]] a nebo v [[http://en.wikipedia.org/wiki/Sparse_matrix|angličtině]]
* více o stromech se dočtete na http://www.concretepage.com/java/treemap-java-example a http://www.cs.princeton.edu/~rs/AlgsDS07/09BalancedTrees.pdf
* nebo si přečtěte více o [[http://cs.wikipedia.org/wiki/Ha%C5%A1ovac%C3%AD_tabulka|HashTable]]
==== Slovník a zkoušení (VocabularyTest) ====
* 3 bodů/body - správa dvoujazyčného slovníku včetně vyhledávání v obou jazycích
* 3 bodů/body - zkoušení ze sloviček
* 3 bodů/body - výpis seznamu
* 3 bodů/body - editování záznamů
* 3 bodů/body - přidávání a odebírání záznamů
* 2 bodů/body - javadoc
* 3 bodů/body - možnost zadat nějakou operaci kromě interaktivního módu i z příkazové řádky
* 0 bodů/body - povinné - ukládání stavu do souboru a možnost znovunačtení při spuštění
===== Prace se soubory =====
===== Domácí úkoly =====
Všechny domácí úlohy se odevzdávají prostřednictvím [[https://cw.felk.cvut.cz/upload]]
===== Tipy od Vašich kolegů =====
[[http://www.youtube.com/watch?v=E3418SeWZfQ|Javapocalypse]]
[[http://www.videacesky.cz/parodie-parody-youtube/java-navzdy-trailer|Java 4ever]]
[[http://medianetwork.oracle.com/video/player/1176404809001|JavaOne 2011 Technical Keynote - novinky v Javě 7]]
[[http://knihy.pecinovsky.cz/java5novinky/NovinkyJavy5.pdf|Rudolf Pecinovský: Novinky v Javě 5]]