====== 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]]