Cílem práce je popsat několik základních datových struktur využívaných v programovacím jazyce Java a JavaFX. Studovanými strukturami budou především ArrayList, LinkedList, Vector, Set, Map.
Praktická část se zaměří na implementaci pěti datových struktur, které budou prezentovány v teoretické části. Na implementovaných strukturách bude provedeno výkonové srovnání. Testovanými operacemi budou: zápis, přístup dle indexu, přístup dle klíče, odebírání, plnění.
Anotace v angličtině
The objective of the thesis is to describe several basic data structures used in the programming language Java and JavaFX. Studied structures will be primarily ArrayList, LinkedList, Vector, Set, Map.
The practical part will focus on the implementation of five data structures, which will be presented in the theoretical part. Performance benchmarking will be used on the implemented structures. Following operation will be tested: write, index access, key access, removal, filling.
Data structures, algorithm, list, linear structure, array, tree, Java, JavaFX, algorithm complexity, algorithm efficiency, complexity.
Rozsah průvodní práce
45
Jazyk
CZ
Anotace
Cílem práce je popsat několik základních datových struktur využívaných v programovacím jazyce Java a JavaFX. Studovanými strukturami budou především ArrayList, LinkedList, Vector, Set, Map.
Praktická část se zaměří na implementaci pěti datových struktur, které budou prezentovány v teoretické části. Na implementovaných strukturách bude provedeno výkonové srovnání. Testovanými operacemi budou: zápis, přístup dle indexu, přístup dle klíče, odebírání, plnění.
Anotace v angličtině
The objective of the thesis is to describe several basic data structures used in the programming language Java and JavaFX. Studied structures will be primarily ArrayList, LinkedList, Vector, Set, Map.
The practical part will focus on the implementation of five data structures, which will be presented in the theoretical part. Performance benchmarking will be used on the implemented structures. Following operation will be tested: write, index access, key access, removal, filling.
Data structures, algorithm, list, linear structure, array, tree, Java, JavaFX, algorithm complexity, algorithm efficiency, complexity.
Zásady pro vypracování
V rámci teoretické části práce se student zaměří na popis základních datových struktur používaných v programovacím jazyce Java a JavaFX. Provede jejich přehled a zaměří se na jejich vnitřní implementaci tak, aby odlišil případy užití těchto datových struktur. Studovanými strukturami budou především ArrayList, LinkedList, Vector, Set, Map (vč. jeho základních implementací) a dále Observable varianty struktur v JaveFX.
V praktické části práce student provede implementaci nejméně pěti datových struktur prezentovaných v teoretické části. Na implementovaných strukturách provede výkonové srovnání při parametrizaci generovanými hodnoty typu Integer a String (tj. dvě varianty testů) a šíří testovaných operací 10 až 100.000, při logaritmickém měřítku a deseti až dvaceti měřených hodnotách. Základními testovanými operacemi budou: zápis, přístup dle indexu, přístup dle klíče, odebrání, plnění.
Zásady pro vypracování
V rámci teoretické části práce se student zaměří na popis základních datových struktur používaných v programovacím jazyce Java a JavaFX. Provede jejich přehled a zaměří se na jejich vnitřní implementaci tak, aby odlišil případy užití těchto datových struktur. Studovanými strukturami budou především ArrayList, LinkedList, Vector, Set, Map (vč. jeho základních implementací) a dále Observable varianty struktur v JaveFX.
V praktické části práce student provede implementaci nejméně pěti datových struktur prezentovaných v teoretické části. Na implementovaných strukturách provede výkonové srovnání při parametrizaci generovanými hodnoty typu Integer a String (tj. dvě varianty testů) a šíří testovaných operací 10 až 100.000, při logaritmickém měřítku a deseti až dvaceti měřených hodnotách. Základními testovanými operacemi budou: zápis, přístup dle indexu, přístup dle klíče, odebrání, plnění.
Seznam doporučené literatury
1. LEWIS, H. R., DENENBERG, L. Data structures and their algorithms. Berkley, Adison-Wesley, 1997.
2. KNUTH, D. E.: Umění programování - Základní algoritmy, Brno, Computer Press 2008, ISBN: 978-80-251-2025-5
3. WRÓBLEWSKI, Piotr. Algoritmy : datové struktury a programovací techniky / Piotr Wróblewski. Marek Michalek, Bogdan Kiszka. Vyd 1. Brno : Computer Press, 2004. 351 s. ISBN 80-251-0343-9.
4. KEOGH, Jim; DAVIDSON, Ken. Datové struktury bez předchozích znalostí : průvodce pro samouky. Vyd 1. Brno : Computer Press, 2006. 223 s. ISBN 80-251-0689-6.
5. PROKOP, Jiří. Algoritmy v jazyku C a C++ : praktický průvodce. Vyd 1. Praha : Grada, 2009. 153 s. ISBN 978-80-247-2751-6.
Seznam doporučené literatury
1. LEWIS, H. R., DENENBERG, L. Data structures and their algorithms. Berkley, Adison-Wesley, 1997.
2. KNUTH, D. E.: Umění programování - Základní algoritmy, Brno, Computer Press 2008, ISBN: 978-80-251-2025-5
3. WRÓBLEWSKI, Piotr. Algoritmy : datové struktury a programovací techniky / Piotr Wróblewski. Marek Michalek, Bogdan Kiszka. Vyd 1. Brno : Computer Press, 2004. 351 s. ISBN 80-251-0343-9.
4. KEOGH, Jim; DAVIDSON, Ken. Datové struktury bez předchozích znalostí : průvodce pro samouky. Vyd 1. Brno : Computer Press, 2006. 223 s. ISBN 80-251-0689-6.
5. PROKOP, Jiří. Algoritmy v jazyku C a C++ : praktický průvodce. Vyd 1. Praha : Grada, 2009. 153 s. ISBN 978-80-247-2751-6.
Přílohy volně vložené
1 CD-ROM
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Student předložil velmi zajímavou bakalářskou práci, ve které se soustředí na srovnání implementací nejčastěji používaných datových struktur. Konkrétně srovnává struktury, které mu v základních knihovnách poskytují programovací jazyky se strukturami, které sám implementoval. Při svém srovnání zjevně využil předmětu Datové struktury a algoritmy, kde se obdobné činnosti věnoval v rámci semestrálních prací. Vlastní jádro, které student implementoval, je, z pohledu kódu čisté, jednoduché a využívá řady principů pro tvorbu optimálního kódu. Vlastní jádro, které student implementoval, je, z pohledu kódu čisté, jednoduché a využívá řady principů pro tvorbu optimálního kódu. Výběr struktur, pojetí práce, metoda srovnání a funkce, které student srovnává, jsou v pořádku a vhodně voleny.
Práce také, bez pochybností prošla kontrolou na vyhledávání plagiátů, práci tak lze prohlásit za původní.