| 
        Vyučující
     | 
    
        
            
                - 
                    Futera Zdeněk, doc. RNDr. Ph.D.
                
 
            
         
     | 
    | 
        Obsah předmětu
     | 
    
        Obsah přednášek:  Přednáška je členěna následovně:  1. Rozdíly mezi C a C++, základní IO operace, reference a dynamická správa paměti 2. Pokročilá práce s textem, formátování, třída string 3. Přetěžování funkcí, referenční proměnné a implicitní argumenty 4. Uzavřenost, deklarace třídy, konstruktory a destruktor 5. Polymorfismus, přetěžování operátorů, spřátelené funkce 6. Dědičnost, kontrola přístupu k položkám třídy, virtuální metody 7. Jmenné prostory, modulárnost a knihovny 8. Řešení nečekaných událostí, výjimky 9. Datové streamy a práce se soubory 10. Šablony funkcí a tříd 11. Datové kontejnery a iterátory 12. Asociativní pole, množiny, mapy a algoritmy 13. Rozšíření C++, vyšší programovací jazyky, grafika  Obsah cvičení/semináře:  Cvičení probíhají v počítačových učebnách, jsou zaměřená na praktickou implementaci probíraných konceptů a tematicky úzce navazují na přednášky. Na rozdíl o teoretičtěji zaměřených přednášek, v rámci cvičení je kladen důraz na osvojení si syntaxe jazyka C++ a schopnost efektivně a smysluplně implementovat prvky OOP do funkčních programů. Předpokládá se aktivní práce studentů jak během prezenční výuky, tak při řešení domácích úloh, a především semestrální práce.
         
         
     | 
    | 
        Studijní aktivity a metody výuky
     | 
    
        
        Monologická (výklad, přednáška, instruktáž), Demonstrace
        
            
                    
                
                    
                    - Účast na výuce
                        - 52 hodin za semestr
                    
 
                
                    
                    - Příprava na zkoušku
                        - 16 hodin za semestr
                    
 
                
                    
                    - Semestrální práce
                        - 32 hodin za semestr
                    
 
                
                    
                    - Domácí příprava na výuku
                        - 20 hodin za semestr
                    
 
                
             
        
        
     | 
    
    
        
        
            | 
                Výstupy z učení
             | 
        
        
            
                
                Předmět je určen pro rozšíření základů programování o objektové přístupy v programovacím jazyce C++.  V rámci kurzu jsou nejprve probírána nejvýznamnější rozšíření jazyka C jako je práce s textem či přetěžování funkcí. Poté jsou vyloženy základy objektově orientovaného programování (OOP) jako je uzavřenost, dědičnost a polymorfismus, které jsou postupně demonstrovány na jejich konkrétní syntaxi jazyka C++. V závěru kurzu se student seznámí se standardní knihovnou dostupných šablon (STL) a rozšířením jazyka C++ na další vyšší jazyky, využití externích knihoven, a to včetně těch určených pro práci s grafikou (GUI).
                 
                Student bude obeznámen se základy objektově orientovaného programování (OOP), bude chápat pojmy jako uzavřenost, dědičnost a polymorfismus. Tyto přístupy budou v rámci kurzu demonstrovány a procvičovány v programovacím jazyce C++, který by měl student po absolvování kurzu alespoň v základní podobě ovládat.
                 
                
             | 
        
        
            | 
                Předpoklady
             | 
        
        
            
                
                
                Znalost kurzu Programování I (UFY PRG1).
                
                
                    
                        
                    
                    
                
                
  
             | 
        
        
            | 
                Hodnoticí metody a kritéria
             | 
        
        
            
                
                    
                        Kombinovaná zkouška, Seminární práce
                        
                        
                         
                        
                    
                    
                
                 Průběžné odevzdávání domácích úloh, vytvoření semestrální práce a získání alespoň 35 bodů z 50 možných za ohodnocení těchto prací. U zkoušky musí student vytvořit funkční program splňující zadanou úlohu a správně zodpovědět alespoň 70% otázek týkajících se teorie.
                 
             | 
        
    
    | 
        Doporučená literatura
     | 
    
        
            
                
                - 
                    Studentům jsou k dispozici prezentace z přednášek a ukázkové zdrojové kódy ze cvičeních. Dále je ke studiu doporučena následující literatura:. 
                
 
            
                
                - 
                    [1] B. Stroustrup: The C++ Programming Language, 4th Edition, 2009. 
                
 
            
                
                - 
                    [2] S. Prata: Mistrovství v C++, 4. vydání, 2016. 
                
 
            
                
                - 
                    [3] M. Virius: Od C k C++ Kopp, 2000. 
                
 
            
                
                - 
                    [4] Jiří Prokop, Algoritmy v jazyku C a C++, 2016. 
                
 
            
                
                - 
                    [5] B. Eckel: Thinking in C++ (2nd Edition), 2000. 
                
 
            
                
                - 
                    [6] B. Stroustrup: Programming : Principles and Practice Using C++ (1st edition) 2009. 
                
 
            
         
         
         
     |