Tato stránka shrnuje informace o předmětu Programování na škole SPŠ a VOŠ Kladno.
Najdete zde informace o náplni předmětu v jednotlivých ročnících a odkazy na studijní materiály a externí stránky využívané ve výuce.
Rozcestník na stránky učitelů:
V průběhu 1.(2.)-3. ročníku pracují studenti na Skupinovém projektu (3 nebo 4 členové).
V prvním ročníku si studenti vymyslí téma a začnou s tvorbou webové prezentace svého (zatím neexistujícícho) programu. Třeťáci EP pokračují v práci na svých projektech z druháku dle aktuálních probíraných témat (webové stránky mají až ve 4. ročníku v předmětu VYT)
V každém ročníku tak doplňují ke své aplikaci další funkce -> samotná aplikace v Pythonu, propojení s databází, případně ve 4. ročníku testy.
Ve 4. ročníku každý student vytvoří svůj vlastní Samostatný projekt. Samostatný projekt se jmenuje samostatný, protože na něm každý student pracuje samostatně. Také se, přirozeně, vypracováním liší od všech skupinových projektů. Téma může být stejné (např. při práci na Skupinovém projektu zjistíte, že by bylo lepší program navrhnout jinak... To se v programování běžně stává. Nebo chcete rozšířit již existujícíc projekt - každý student ale rozšiřuje projekt o svou vlastní funkcionalitu (včetně Pythonu, databáze a webovek) a má svou vlastní kopii projektu).
Samostatný projekt je nutná práce pro připuštění k maturitě (získání hodnocení < 5 ve čtvrtém ročníku) -> bez odevzdání Samostatného projektu se všemi požadovánými částmi je student hodnocen nedostatečně - projekt pak musí dodělat v průběhu prázdnin k reparátu, nebo při opakování ročníku.
Při praktické maturitní zkoušce z Programování bude Váš úkol pracovat s Vaším Samostatným projektem - bez jeho odevzdání tedy ani nemá smysl k maturitní zkoušce chodit...
Aktuální čtvrťáci pracují až do konce studia na Skupinovém projektu, který je hodnocen učitelem dle jeho uvážení.
Při práci na Skupinovém projektu studenti trénují práci ve skupině a všechny dovednosti, které se naučili/učí v rámci výuky Programování.
Povinný Samostatný projekt vzhledem k maturitě čtvrťáci obecně nemají (samozřejmě záleží na podmínkách konkrétního učitele)
Skupinový projekt je práce 3-4 členné skupinky (tedy ne 2 a méně a ne 5 a více lidí). Samostaný projekt je práce jednoho člověka.
Skupina si zvolí vedoucího (ten se v průběhu studia mění tak, aby každý ze skupiny byl alespoň jedno pololetí vedoucí). A každý člen skupiny má přiřazeny konkrétní body, na kterých pracuje (samozřejmě může např. na webu pracovat více lidí, potom je ale konkrétně rozdělena práce v rámci webu atd.). Množství práce je rozloženo rovnoměrně. Za správu úkolů a jejich evidenci odpovídá vedoucí skupiny.
Každý ve skupině se také seznámí s částmi programu, na kterých nepracoval - do takové úrovně, aby byl schopný principiálně vysvětlit jak fungují a byl v nich schopen provést úpravy/opravy.
Samostatný projekt má stejné minimální požadavky jako Skupinový.
Minimální požadavky (samozřejmě můžete přidat cokoliv navíc):
Veškeré technologie používané v předmětu programování jsou volně přístupné a můžete si je tedy zdarma bez jakýchkoliv omezení stáhnout domů.
Programovací jazyk Python a jazyk C
Pro Python je ve škole připravené IDE Pycharm - zcela nám stačí Community verze.
Statické stránky v HTML a CSS jsou pouze textové soubory - využijte tedy libovolný textový editor (ve škole např. SublimeText) a libovolný webový prohlížeč
Dynamické stránky budeme ve škole tvořit přes PHP. Samotný kód je, stejně jako u statických, pouze textový soubor. Spustit kód (zobrazit stránku) je potřeba přes php server (viz níže).
Databázový server běží na technologii MariaDB.
V jazyku C budeme zkoušet pouze zcela základní věci a postačí nám libovolný kompilátor - např. https://sourceforge.net/projects/mingw/
Pro jazyk C je ve škole připravené IDE Dev C++ s již přednastaveným kompilátorem
Pro připojení ke Git serveru (např. GitHub nebo GitLab) můžete využít návod na Git
Ve škole má každý student i učitel vytvořený svůj prostor na disku H://. Tento prostor je přístupný i přes internet z domova.
Pro vzdálené (z domova) připojení k vašemu disku H:// můžete na Windows využít např. WinSCP - host: xeon.spskladno.cz - port: 922 - login a heslo: váš školní login a heslo
Pro vzdálené připojení z Linuxu můžete použít např. sftp://[vas_login]@xeon.spskladno.cz:922/mnt/data2/home/[vas_login] - lze použít i přímo v prohlížeči souborů (záložka "+ Další umístění" a políčko vpravo dole).
Pycharm i Python ve škole naleznete na disku G://win32app/ == Aplikace SPŠ a VOŠ
Ve škole je verze 2017, která (s Pythonem 3.7) bohatě postačuje pro základní věci -> Pokud chcete, můžete si stáhnout i aktuální verzi 2022 Community (školní počítač Vám sice zahlásí potřebu přihlášení jako správce, ale po odkliknutí "Ne" se program bez problému nainstaluje do Vašeho osobního prostoru).
Ve škole je Python 3.7 a v nejbližší době by měl být nainstalován i Python 3.10.
Poznámka: Ve škole volte při vytváření nového projektu v Pythonu "Virtual environment" - zabere sice poměrně dost místa na hard/flash disku, ale umožní vám doinstalovávat libovolné knihovny (což je jedna z podstaty práce v Pythonu). Kombinace PyCharm 2017 a Python 3.10 při vytváření venv nefunguje -> použijte buÄ starší Python, nebo novější PyCharm.
Návod k PyCharmu a PythonuPoznámka 2: Neváhejte si přinést vlastní flash disk, na který si můžete vytvořit školní Virtual environment. I tak ale doporučujeme na konci hodiny zkopírovat projekt (pouze zdrojové kódy, ne venv) na váš školní disk H:
Ve škole lze využít IDE Dev C++ x64 pro Win10 -> nezapomeňte případné další vytvářené soubory "Přidávat do projektu".
Doma lze využít např. IDE Netbeans a kompilátor MinGW
Návod k NetBeans a CŠkolní PHP server je pro vás přístupný i z domova ( přes váš prostor na disku H://public_html/, ke kterému se můžete z domova připojit ). Spuštění souborů uložených zde potom provedete přes prohlížeč na adrese https://xeon.spskladno.cz/~[vas_login]/ .
Vaše stránky/soubory musí být uloženy na vašem disku H:// ve složce public_html, ty, ve kterých chcete spouštět PHP kód musí mít příponu .php (pozor, Windows často neukazuje přípony a je nutné jejich zobrazování zapnout v prohlížeči souborů) a je potřeba nastavit přístupová práva (například přes WinSCP) - vaše složka (login): 0711 - složka public_html: 0755 - všechny soubory a složky uvnitř: 0755
Při připojení přes WinSCP vyplňujte hostname: xeon.spskladno.cz , port: 922, login a heslo vaše školní. - Práva je třeba nastavit vaší [login] složce (je třeba vyskočit o úroveň výše) a dále složce public_html a všem souborùm uvnitř ní.
Databázový server má adresu http://dbs.spskladno.cz. Přístup k serveru přes prohlížeč je na adrese MyAdmin. Přístupové údaje vám sdělí učitel.
"Skripta" ke čtení (hledejte .pdf soubory) na GitHubu
Jupyter notebooky ke čtení a vyplňování (kliknutím na modré tlačítko a přihlášením Google účtem lze spouštět i v prohlížeči) na GitHubu, případně offline lze spouštět programem Jupyter
Demo a ukázkové programy na GitHubu
Tutoriály a dokumentace k procházení:
UmímeTo na domácí úkoly, hraní, trénování a procvičování - pro účet se obraťte na svého učitele Programování, případně Jaroslava Holečka
Codingame na hraní, procvičování a odkoukávání
Draw.IO - nástroj pro nákres nejrůznějších diagramů
DrawSQL - příjemné prostředí pro tvorbu ER diagramů a generování SQL kódu pro vytvoření tabulek z nich
Do začátku:
Při ústní maturitě máte za úkol 15 minut hovořit na téma dle vylosované otázky.
Pokud budete mít jako zkoušejícího Jaroslava Holečka (záleží na třídě a na konkrétní vylosované otázce), bude mít za úkol odpovědět (minimálně) na sadu konkrétních dotazů - dotazy budou vybrány na základě vylosované otázky a jejich celkový přehled (je to přehled pouze pro otázky u kterých je zkoušející Jaroslav Holeček, nikoliv pro celou ústní maturitní zkoušku) je zde
Vaším úkolem při praktické maturitní zkoušce bude vytvořit prezentaci/představení/dokumentaci vašeho Samostatného projektu pro vylosovanou cílovou skupinu (uživatel, investor, nový kolega do týmu, ...). Každou z těchto skupin samozřejmě zajímá něco jiného - uživatele zajímá, jak se program používá a co umí; kolegu zajímá, jaká je struktura kódu, jaké technologie a knihovny používáte, jak je spolu vše propojeno atd.
Také budete mít za úkol do programu přidat novou funkci/něco v programu změnit.
V zadání maturitní otázky bude přesně specifikované, co má vaše prezentace obsahovat - nebudou to žádné chytáky a vysvětlit požadované věci bude pro někoho, kdo program vytvářel, velmi jednoduché.
K dispozici budete mít pouze Váš samostatný projekt.
Internet u maturitní zkoušky není k dispozici.
U maturitní zkoušky je váš úkol vytvořit funkční program/aplikaci/hru/webové stránky dle zadání.
S sebou si k praktické maturitní zkoušce z Programování můžete přinést libovolné materiály na flash-disku (obzvláště doporučujeme vaši oblíbenou dokumentaci, ve které jste zvyklí hledat, a vaše vypracované soubory z předchozích minimálně 3 let programování).
Internet u maturitní zkoušky není k dispozici.
Náplň předmětu se řídí Školním vzdělávacím programem pro každý obor.
V předmětu Programování se student minimálně naučí vytvářet statické webové stránky pomocí HTML a CSS, dynamické webové stránky pomocí PHP, vytvářet programy ve vyšším programovacím jazyku (aktuálně Python a základy C pro vyzkoušení odlišnosti práce s kompilovaným jazykem) a vytvářet a manipulovat s databází pomocí SQL (přímo, přes webové stránky i přes Python).
V Pythonu se student naučí vytvářet konzolové aplikace, okenní aplikace formulářového typu (vstupní políčka, tlačítka) i "herního typu" (ovládání grafických objektů myší, klávesnicí, počítání bodů, ...) a zobrazování dat v grafech.
V jazyku C se student naučí základní programové konstrukce a datové typy včetně pointerů (dynamická správa paměti je již doplněk navíc pro šikovnější studenty/skupiny).
Zde zapsané body jsou pouze minimální společné požadavky pro všechny třídy/obory - dle zkušeností, zájmu a dohody učitele a studentů se v hodinách budete věnovat i dalším tématům, připadně začnete témata z vyšších ročníků.
Náplň | Výstup (minimální) | Návaznost | Moodle testy (u Holečka a Podrazkého) (zbytek do 8 bloků zabírá Vlastní projekt, doplňkové činnosti a pod.) |
|
---|---|---|---|---|
Prvák (IT 2 t.h.) (EP 2 t.h.) |
|
|
Algoritmizace I. 2,5 bloku (10 testů) HTML+CSS 2 bloky (8 testů) Vlastní projekt+Grafické prog. 3,5 bloku |
|
Pozn.: Při Algoritmizaci "na papír" samozřejmě učitel může ukazovat řešení v kódu, šikovnější studenti ho mohou zkusit psát. Cílem je v dalších letech využívat své připravené materiály -> je tedy nutné, aby každý měl algoritmy zapsané "na papíře" | ||||
Druhák (IT 4 t.h.) (EP 2 t.h.) |
|
|
Algoritmizace II. 2,5 bloky (10 testů) PHP 2 bloky (8 testů) Python strukt. 2 bloky (8 testů) C 1 blok (4 testy) Vlastní projekt 0,5 bloku |
|
Pozn.: Např. UmímeTo lze využívat i ve vyšších ročnících -> jsou zde úlohy např. na regulární výrazy, programování v Pythonu, některé úlohy z "her" typu Robotanik jsou opravu obtížné | ||||
Třeťák (IT 3 t.h.) (EP 2 t.h.) |
|
|
Databáze 3 bloky (12 testů) Python OOP 1 blok (4 testy) Python GUI 3 bloky (12 testů) - PyQt, PyGame, MatPlotLib po 1 bloku Vlastní projekt 1 blok |
|
Pozn.: | ||||
ÄŒtvrťák (IT 3 t.h.) (EP 2 t.h.) |
|
|
Algoritmizace III. 1 blok (4 testy) Python testy 0,5 bloku (2 testy) Vlastní projekt 6,5 bloku |
|
Pozn.: |
Druhák (4 t.h.) |
|
|
Algoritmizace I. 2,5 bloku (10 testů) HTML+CSS+PHP 4 bloky (16 testů) Python strukt. 2 bloky (8 testů) Vlastní projekt+Grafické prog. -0,5 bloku - musí se využít 2 rezervní týdny i pro předchozí činnosti (pracují na VP a v grafickém prog. v průběhu roku - mají 4 hodiny týdně...) |
|
Pozn.: Při Algoritmizaci "na papír" samozřejmě učitel může ukazovat řešení v kódu, šikovnější studenti ho mohou zkusit psát. Cílem je v dalších letech využívat své připravené materiály -> je tedy nutné, aby každý měl algoritmy zapsané "na papíře" | ||||
Třeťák (2 t.h.) |
|
|
C 1 blok (4 testy) Algoritmizace II. 2,5 bloku (10 testů) Python OOP 1 blok (4 testy) Python GUI 3 bloky (12 testů) - PyQt, PyGame, MatPlotLib po 1 bloku Vlastní projekt 0,5 bloku |
|
Pozn.: Např. UmímeTo lze využívat i ve vyšších ročnících -> jsou zde úlohy např. na regulární výrazy, programování v Pythonu, některé úlohy z "her" typu Robotanik jsou opravu obtížné | ||||
ÄŒtvrťák (2 t.h.) |
|
|
Algoritmizace III. 1 blok (4 testy) Databáze 3 bloky (12 testů) Python testování 0,5 bloku (2 testy) Vlastní projekt 3,5 |
|
Pozn.: |
Druhák (2 t.h.) |
|
|
Algoritmizace I. 2,5 bloku (10 testů) Python strukt. 2 bloky (8 testů) Vlastní projekt 3,5 bloku |
|
Pozn.: Při Algoritmizaci "na papír" samozřejmě učitel může ukazovat řešení v kódu, šikovnější studenti ho mohou zkusit psát. Cílem je v dalších letech využívat své připravené materiály -> je tedy nutné, aby každý měl algoritmy zapsané "na papíře" | ||||
Třeťák (2 t.h.) |
|
|
C 1 blok (4 testy) Algoritmizace II. 2,5 bloku (10 testů) Python OOP 1 blok (4 testy) Python GUI 3 bloky (12 testů) - PyQt, PyGame, MatPlotLib po 1 bloku Vlastní projekt 0,5 bloku |
|
Pozn.: Např. UmímeTo lze využívat i ve vyšších ročnících -> jsou zde úlohy např. na regulární výrazy, programování v Pythonu, některé úlohy z "her" typu Robotanik jsou opravu obtížné | ||||
ÄŒtvrťák (2 t.h.) |
|
|
Algoritmizace III. 1 blok (4 testy) Databáze 3 bloky (12 testů) Python testování 0,5 bloku (2 testy) Vlastní projekt 3,5 |
|
Pozn.: |