Maturitní ročník: Programování
              
              
              
              Programování pro pokročilé
              
              Hodinová dotace:	  jednoletý seminář – 2 hodiny týdně 
                 
              
              
              
                  Cíle předmětu:
                     V Rámcovém vzdělávacím programu pro gymnaziální vzdělávání je tento předmět kvalifikován jako doplňující vzdělávací obor.
 
                  Programování rozvíjí a prohlubuje algoritmické myšlení potřebné pro řešení různých problémových situací, zlepšuje schopnost analyzovat problém a pomocí zavedených postupů ho řešit.
                  Žáci při řešení problémů volí vhodné metody, vytvářejí jejich algoritmy, zdůvodňují postupy a diskutují řešitelnost, případně počet řešení daného problému.
 
                  Výuka programování má úzké mezipředmětové vztahy hlavně k matematice. Součástí výuky je také tvorba většího projektu, kde žáci lépe pochopí význam programování pro dnešní dobu. Programování je využitelné a potřebné v reálném životě i při studiu na vysokých školách zejména technického zaměření.
                  
Výběr tohoto předmětu je nutnou podmínkou pro možnost výběru zkoušky z programování v profilové části státní maturitní zkoušky.
                  
                  
                  Studijní požadavky:
                   Předmět je koncipován jako jednoletý kurz s dvouhodinovou týdenní dotací. Jde o rozšíření základního kurzu Programování. 
 
Úkolem tohoto kurzu je rozšířit znalosti ze základního kurzu o práci s dynamickými proměnnými a strukturami. Dále jsou součástí pokročilejší programátorské principy jako rekurze a základy umělé inteligence. 
Nutnou podmínkou pro zapsání tohoto kurzu jsou znalosti na úrovni 1. ročníku základního kurzu Programování a v průběhu kurzu také znalosti odpovídající aktuálně probranému učivu v 2. ročníku základního kurzu Programování. 
Součástí hodnocení jsou písemné práce, příprava a prezentace referátů a tvorba programů. Předmět je určen pro studenty, kteří nemají potíže s analýzou zadaného úkolu, t.j. s jeho rozložením na jednodušší části. Zvláštní matematické schopnosti nejsou potřeba, naopak logické myšlení je nezbytné. 
Zapsání tohoto předmětu je nutnou podmínkou pro volbu maturity z programování. 
  
                  
                  
Obsah učiva:
              
                
                
                
                
                
                  - Dynamické a abstraktní datové struktury, základní i složitější algoritmy na nich
                      
                        - algoritmy v poli, složitost algoritmů
  
                        - třídy a objekty
 
                        - rekurze
                           
                             - divide et impera
 
                            - prohledávání stavového prostoru
 
                            - herní UI
 
                           
                         
                        
                        
                        - dynamické datové struktury
 
                        - lineární spojový seznam
 
                        - binární vyhledávací strom