Jazyk Python
Cílem předmětu je seznámit studenty s programováním v jazyce Python, který patří mezi nejpopulárnější programovací jazyky současnosti. Předpokládá se pokročilejší znalost procedurálního programování (znalost jazyka Python není vyžadována) a algoritmizace. Při výuce je kladen důraz na efektivní a praktické použití jazyka Python.
Seznam seminářů
Obsah následujících stránek je pouze doprovodný materiál, nenahrazuje účast na semináři.
- Úvod a základy jazyka Python
- Funkce a moduly
- Výjimky a dekorátory
- Objektově orientované programování (OOP)
- Dunder metody a dekorátory tříd
- Iterátory a generátory
- Práce se souborovým systémem
- Rozpoznávání vzorů a regulární výrazy
a bonus Další moduly standardní knihovny - Testování (pytest) a type hinting
- NumPy, Pandas a Matplotlib
- Framework Flask
- Paralelní výpočty
Spoluautorem některých materiálů a úkolů je Mgr. Tomáš Mikula Ph.D.. Celý kurz je inspirován/přejatý z https://tomasmikula.cz/.
Seznam úkolů
- H00: Hello world (nebodovaný), Náhled, Příjmout úkol
- H01: RPN, Příjmout úkol
- H02: Algebra, Příjmout úkol
- H03: Decorators, Příjmout úkol
- H04: Data 1, Příjmout úkol
- H05: Data 2, Příjmout úkol
- H06: Data 3, Příjmout úkol
- H07: Data 4, Příjmout úkol
- H08: Command Parser, Přijmout úkol
- H09: TicTacToe, Přijmout úkol
- H10: Pokémon Analyzer, Přijmout úkol
- H11: Flask Project, Přijmout úkol
Nevíte si rady? Přečtěte si "Jak pracovat s Github Classroom?".
Co je potřeba na první seminář?
Doporučuji všem dojít na první seminář, protože si ukážeme jak pracovat s github classroom, ve kterém budete odevzdávat domácí úkoly. Aby cvičení proběhlo bezproblémově, tak je potřeba si nachystat:
- Vlastní počítač (volitelně, na učebně budou připravené počítače, není jich však dostatek pro všechny studenty).
- Nainstalovaný jazyk Python 3.12+ ke stažení zde.
- Účet na Github.com.
- Stažený a nainstalovaný git klient (například) GitHub Desktop.
- Stažené a nainstalované vývojářské studio Visual Studio Code (volitelně).
- Osobní číslo studenta ze systému STAG (např. R180055).
- Demonstrace systému github proběhne na prvním semináři, ale můžete si jej sami vyzkoušet (podle návodu "Jak pracovat s Github Classroom?") na prvním úkolu H00 - Hello world (volitelně).
Splnění předmětu
Na seminářích budou postupně zadávány úkoly (dohromady bude 10 bodovaných úkolů + 1 nebodovaný na konci):
- Bodované úkoly musíte odevzdat všechny tak, aby prošly automatickými testy.
- Za každý bodovaný úkol můžete získat až 5 bodů, přičemž hodnocení bude snižováno za nedodržení správného stylu (PEP8 nebo black), "špagetový" kód a další programátorské prohřešky.
- Z bodovaných úkolů je potřeba dohromady získat alespoň 35 bodů. Počet získaných bodů napíšu do Vašeho git repozitáře společně se zpětnou vazbou po opravení úkolu.
- Každý bodovaný úkol můžete odevzdávat do konce dalšího týdne od jeho zadání (tedy do další neděle 23:59). Při odevzdání po deadline se strhne jeden bod za každou další započatou hodinu po deadline. Pokud úkol neodevzdáte ani během dalšího dne (pondělí), ztrácíte nárok na zápočet.
- Automatické testy se spouští po každém pushnutí do repozitáře. Váš úkol bude hodnocen jen v případě, že v repozitáři bude po deadline zelená fajfka (tj. Váš kód prošel všechny testy bez chyby). Zároveň nevadí pokud některé předchozí commity skončí chybou, hodnocen bude jen poslední commit.
- Poslední (nebodovaný) úkol bude upřesněn ke konci semestru a bude se odevzdávat na semináři.
Lokální testování
U většiny úkolů je možné provést lokální testování bez nutnosti odesílat kód do Github Classroom. Pro jeho funkčnost je nutné nainstalovat knihovny pytest
a pytest-console-scripts
. Pokud je k dispozici v daném úkolu pouze jeden soubor tests.py
, spouští se testy příkazem pytest tests.py
. Pokud je souborů s testy více, jsou uloženy ve složce tests
. V takovém případě je možné testy spustit jen příkazem pytest
z hlavní složky repozitáře s úkolem, nebo ze složky tests
.
Instalace balíčku pytest
na UNIX systému (Linux, Mac OS a další):
$ python3 -m pip install pytest pytest-console-scripts
Instalace balíčku pytest
na Windows systému:
$ py -m pip install pytest pytest-console-scripts
Plagiátorství
Veškeré odevzdané zdrojové kódy jsou automaticky testované na plagiátorství systémem Moss. Při prokázaném plagiátorství ztrácí oba studenti/studentky nárok na získání zápočtu a situaci dále řeší vedoucí katedry, viz. stránky katedry.
Soubor .gitignore
pro Python 3
Při práci na úkolech bude vytvářeno velké množství souborů, které není žádoucí odesílat do repozitáře na Githubu. Základní sadu souborů můžete jednoduše ignorovat umístěním speciálního souboru .gitignore
do hlavní složky s úkolem. Obsah ukázkového .gitignore
souboru naleznete zde.
V případě, že Vaše vývojové prostředí vytváří podpůrné složky (například složka .idea/
) je možné tuto složku přidat do souboru .gitignore
.