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