Vybrané partie z programování 2

Seznam seminářů

  1. Úvod a základy jazyka Python (opakování)
  2. Funkce a moduly
  3. Výjimky a dekorátory
  4. Objektově orientované programování (OOP)
  5. Dunder metody a dekorátory tříd
  6. Iterátory a generátory
  7. Práce se souborovým systémem
  8. Rozpoznávání vzorů a regulární výrazy
    a bonus Další moduly standardní knihovny
  9. Testování (pytest) a type hinting
  10. NumPy, Pandas a Matplotlib
  11. Framework Flask
  12. 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ů

Nevíte si rady? Přečtěte si "Jak pracovat s Github Classroom?".

Co potřebuji k tomuto předmětu?

  1. Nainstalovaný jazyk Python 3.13+ ke stažení zde (na windows nezapomeňte při instalaci vybrat "Add Python to PATH").
  2. Účet na Github.com.
  3. Stažený a nainstalovaný git klient (například) GitHub Desktop.
  4. Stažené a nainstalované vývojářské studio Visual Studio Code (volitelně).
  5. Osobní číslo studenta ze systému STAG (např. R180055).
  6. 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.

Splnění předmětu

Zápočet Vám bude udělen po splnění těchto dvou částí:

  1. Odevzdané domácí úkoly:
    • vypracujte všechny úkoly v rozsahu H01 až H07,
    • minimimálně dva z úkolů H08 až H11 (dle Vaší volby),
    • vyřešené úkoly musí projít automatickými testy na github classroom (výjimkou je H11, který nemá testy).
  2. Osobní konzultace:
    • ve zkouškovém období se ve stagu zapíšte na termín konzultace (nebo po domluvě můžete dříve, někdy v konzultačních hodinách),
    • budeme diskutovat o Vašem kódu a funkcionalitě, kterou jste při jejich řešení nich použili,
    • důraz bude kladen na pochopení Vašich kódů a použitých nástrojů,
    • v případě neuznání kódu (kvůli jeho nedostatečnému neporozumnění) bude nutné vypracovat další (jiný) úkol,
    • opakované neuznání úkolu povede k neudělení zápočtu.

Domácí úkoly

Úkoly budou zadávány na platformě Github Classroom. Pro plnění zápočtu je nutné vytvořit bezplatný účet na Github.com a nainstalovat klienta GitHub Desktop. Demonstrace systému proběhne na prvním 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.

Užitečné odkazy

Doporučená literatura