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.
Obecný Python
- 3. První krůčky
- 4. Nástroje
- 5. Základní syntaxe
- 6. Základní typy
- 7. Kontejnery
- 8. Objektově-orientované programování
- 9. Iterátory a generátory
- 10. Funkcionální programování v Pythonu
- 11. Moduly
- 12. Výjimky
- 13. Jak Python lovi štěnice
- 14. Jednotkové testy
- 15. Práce s řetězci a se soubory
- 16. Vytvaríme Python projekt
Literatura#
Volně přístupná#
Python – oficiální dokumentace.
Lectures on scientific computing with Python by R. Johansson
Jake Vanderplas Introduction to Scientific Computing in Python (lecture notes)
Slides, textbook and other resources from Python Programming Primer by Hans Fangohr
Scientific Computing with Python (Programming Bootcamp for biology graduate students)
Mnoho další zajímavé literatury najdete např. na pythonbooks.revolunet.com, python.cz nebo py.cz.