| 
        Vyučující
     | 
    | 
        
     | 
    | 
        Obsah předmětu
     | 
    
        1. Kriteria kvality návrhu tříd koheze a soudržnost a jejich význam pro vytvoření přehledné, snadno odladitelné a modifikovatelné výsledné aplikace. 2.Dobře fungující objekty. Problematika testování a ladění aplikací. Využití testovacího rámce JUnit pro vytváření baterií testů a jejich automatické vyhodnocování. 3. Dědičnost v objektově orientovaném programování, zlepšení struktury struktury řešení problémů s využitím dědičnosti. Výhody a úskalí dědičnosti. 4. Dědičnost a polymorfismus. Prohloubení poznatků o dědičnosti, polymorfní proměnné a metody. 5. Abstraktní třídy a interfejsy v programovacím jazyce Java a jejich použití při návrhu řešení. 6. Vytváření aplikací s grafickým uživatelským rozhraním s využitím balíčku javax.swing. Událostmi řízený program, využití anonymních vnitřních tříd pro vytváření handlerů událostí. 7. Genericita v jazyce Java. Syntaxe a sémantika generických tříd a generických metod. Požití knihovních generických tříd a metod. Deklarace vlastních generických tříd ametod. 8. Java Collection Framework. Úvod do problematiky využívání tříd a rozhraní z balíčku java.util pro práci s kolekcemi objektů. 9. Rekurze v programování. Vysvětlení principu návrhu rekurzivních metod a jejich provádění. Příklady, které ilustrují výhody i úskalí použití rekurze. 10. Přehled vybraných principů objektově orientovaného návrhu a jejich využití při řešení praktických problémů.  
         
         
     | 
    | 
        Studijní aktivity a metody výuky
     | 
    
        
        Monologická (výklad, přednáška, instruktáž), Demonstrace, Praktická výuka
        
            
                    
                
                    
                    - Domácí příprava na výuku
                        - 22 hodin za semestr
                    
 
                
                    
                    - Příprava na zkoušku
                        - 26 hodin za semestr
                    
 
                
                    
                    - Semestrální práce
                        - 26 hodin za semestr
                    
 
                
                    
                    - Účast na výuce
                        - 56 hodin za semestr
                    
 
                
             
        
        
     | 
    
    
        
        
            | 
                Výstupy z učení
             | 
        
        
            
                
                Úvodní kurz, jehož hlavním cílem je seznámit studenty se základními pojmy, principy a technikami objektově orientovaného programování. V kurzu se uplatňuje přístup objects-first a design-patterns first. Tento přístup usnadňuje použití programovacího jazyka Java a vývojového prostředí NetBeans.
                 
                Po absolvování kurzu bude student schopen vysvětlit význam klíčových pojmů a technik využívaných při návrhu řešení problémů s využitím objektově orientovaného paradigmatu. Z obecných pojmů, s nimiž se setkáváme při vývoji programů v objektově orientovaných jazycích, se jedná zejména o polymorfismus a dědičnost. Z hlediska technik používaných při návrhu řešení problému se bude jednat o přehled základních doporučení aplikovaných ve fázi designu řešení. Student po absolvování kurzu dokáže vysvětlit význam kriterií kvality návrhu a dokáže je aplikovat při řešení semestrálního projektu. Absolvováním kurzu si student dále prohloubí znalosti o programovacím jazyce Java a dokáže navrhovat a implementovat desktopové aplikace s grafickým uživatelským rozhraním s využitím knihovny javax.swing nebo JavaFX. 
                 
                
             | 
        
        
            | 
                Předpoklady
             | 
        
        
            
                
                
                Výklad nepředpokládá žádné předběžné znalosti nějakého programovacího jazyka, vhodné je mít základní znalosti o běžných algoritmických strukturách (větvení, cyklus, ...). 
                
                
                    
                        
                    
                    
                
                
  
             | 
        
        
            | 
                Hodnoticí metody a kritéria
             | 
        
        
            
                
                    
                        Kombinovaná zkouška, Test, Průběžné hodnocení
                        
                        
                         
                        
                    
                    
                
                 V průběhu semestru student vypracuje příklady vyplývající z probírané látky. Zkouška vychází z průběhu semestru, zpracování semestrální práce a teoretických testů.  Podmínky zakončení: Splnění průběžných úkolů  ÚStní zkouška Absolvování teoretických testů  Na řádném a opravném termínu zápočtu, stejně jako na každém termínu zkoušky jsou zakázány všechny pomůcky, kromě těch, které jsou povoleny vyučujícím. 
                 
             | 
        
    
    | 
        Doporučená literatura
     | 
    
        
            
                
                - 
                    Informační zdroje na síti Internet. Vzhledem k častým obměnám budou konkrétní místa upřesněna při zahájení výuky předmětu.. 
                
 
            
                
                - 
                    BARNES, D., J., KOLLING, M. Objects First with Java A practical Introduction using BlueJ. 2011. ISBN 978-0132835541.
                
 
            
                
                - 
                    BLOCH, J. Java efektivně - 57 zásad softwarového experta. 2002. 
                
 
            
                
                - 
                    ECKEL, B. Thinking in Java. 4th edition. 2006. ISBN 978-0131872486.
                
 
            
                
                - 
                    HEROUT, P. Java - bohatství knihoven. České Budějovice, 2008. ISBN 978-80-7232-368.
                
 
            
                
                - 
                    HEROUT, P. Java - grafické uživatelské prostředí a čeština. České Budějovice, 2007. ISBN 978-80-7232-328.
                
 
            
                
                - 
                    HEROUT, P. Učebnice jazyka Java. IV. upravené vydání. České Budějovice, 2008. ISBN 978-80-7232-355-5.
                
 
            
                
                - 
                    HORSTMANN, C., S., CORNELL, G. Core Java 2 Volume I - Fundamentals. 9th Edition. 2012. ISBN 978-0137081899.
                
 
            
                
                - 
                    Jelínek, J. Webové stránky předmětu v systému Moodle. 
                
 
            
                
                - 
                    Oracle. The Java? Tutorials - Oracle Help Center. 
                
 
            
                
                - 
                    PECINOVSKÝ R. Java 7 učebnice objektové architektury pro začátečníky. 2012. ISBN 978-80-247-3665-5.
                
 
            
                
                - 
                    PREISS, B., R. Data Structures and Algorithms with Object-Oriented Design Patterns in Java. John Wiley & Sons, 2000.. 
                
 
            
         
         
         
     |