Vědecké programování v Pythonu#

Tato stránka slouží k výuce předmětu Vědecké programování v Pythonu (12PYTH) na ČVUT FJFI. Náplň kurzu najdete v materiálech níže.

Komunikace na Discord serveru: https://discord.gg/Zczh2w9JxY. Připojte se do kanálu ls-24-25.

Letní semestr 2024/2025#

Rozvrh#

TBD

Zápočet#

Zápočet se uděluje na základě

  • aktivní účasti,

  • vypracování zápočtového projektu, který bude zadán během semestru.

Po konzultaci lze účast na cvičeních nahradit účastí na workshopech, případně samostatnými projekty.

Jak vypadá zápočtový projekt?#

  • Nejlepší téma zápočtového projektu je úloha, kterou využijete i jinde. Např.:

    • Součást bakalářské nebo diplomové práce.

    • Úloha na jiný předmět, jako třeba zpracování dat z experimentu nebo vývoj ML algoritmu.

    • Zajímavý hobby projekt.

    • Můžete zkusit přispět do open-source projektu. Viz např. https://goodfirstissue.dev/language/python nebo pandas-dev/pandas.

  • Rozsah projektu nemusí být zásadně velký, ale měl by být dostatečně náročný a originální, aby bylo co prezentovat.

  • Projekt by vás měl bavit a motivovat.

Formální požadavky na zápočtový projekt#

  • Čitelný, okomentovaný, strukturovaný zdrojový kód.

  • Dodržovat PEP 8. Pro kontrolu a úpravu kódu podle PEP 8 můžete použít nástroj ruff.

  • Alespoň základní jednotkové testy. Stačí implementovat pro základní funkce projektu (projekt by měl být strukturovaný, bude tedy obsahovat nejednu funkci/metodu).

  • Výhodou je použití verzovacího systému (např. Git).

  • Před prezentací poslat program emailem (případně sdílet pomocí Gitlab, Github apod.).

  • Krátká prezentace (10 - 15 min) pro ostatní studenty. Účast je povinná na celou dobu prezentací, nikoli jen na vaši vlastní prezentaci.

Co se tady naučíte#

  • Jak jednoduše nainstalovat a spustit Python a spoustu užitečných doplňků.

  • Obecné základy programování v Pythonu, které jsou nezbytné pro efektivní použití pro vědecké použití.

  • Používat metody moderní softwarového inženýrství, např. jednotkové testy.

  • Práci se základními vědeckými knihovnami: numpy, scipy, matplotlib, pandas apod.

  • Kdy a jak optimalizovat a paralelizovat (nejen) Python kód.

  • Samostatnou práci na vlastním Python projektu.

Materiály#

Materiály k výuce jsou postupně doplňovány a aktualizovány. Zdrojové IPython (Jupyter) notebooky najdete také na Gitlab.

Notebooky je možné díky projektu JupyterLite spustit i bez instalace Pythonu, stačí otevřít v prohlížeči https://fjfi.pythonic.eu/jupyterlite. Pozor, ne všechny notebooky ale budou plně fungovat kvůli omezením JupyterLite.

Literatura#

Volně přístupná#

Knihy#

Srovnání Python a Matlab#