.. link: .. description: .. tags: .. date: 2013/08/29 14:26:34 .. title: Vědecké programování v Pythonu .. slug: index 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 a také v `sylabu `_. Informace k `letnímu semestru 2023/2024 `_ (rozvrh, podmínky zápočtu, témata zápočtových prací apod.). Kontakt: Jakub Urban. Komunikace na Discord serveru: https://discord.gg/Zczh2w9JxY. Připojte se do kanálu `ls-23-24 `_. První lekce 15. 2. ================== **První lekce proběhne samostatně.** #. Samostatně si projděte lekci `První krůčky `_. Je třeba, abyste si vyzkoušeli a ověřili funkčnost prostředí pro výuku. #. Projděte si také dvě úvodní lekce `Proč Python? `_ a `Úvod `_. Otázky a komentáře ideálně sdílejte na Discordu, aby se diskuze rovnou dostala i k ostatním. 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 `_. #. `Proč Python? `_ #. `Úvod `_ #. `První krůčky `_ #. `Nástroje `_ #. `Základní syntaxe `_ #. `Datové typy: čísla a řetězce `_ #. `Datové typy: Kontejnery `_ #. `Objektově orientované programování `_ #. `Iterátory a generátory `_ #. `Funkcionální programování v Pythonu `_ #. `Moduly `_ #. `Výjimky `_ #. `Jak python loví štěnice `_ #. `Jednotkové testy `_ #. `Práce s řetězci a se soubory `_ #. `Vytváříme Python projekt `_ #. `Základy Numpy `_ #. `Grafy s Matplotlib `_ #. `Plotly pro interaktivní vizualizaci `_ #. `Vědecká knihovna SciPy `_ #. `Symbolický a sympatický SymPy `_ #. `Optimalizace až na Cost `_ #. `Paralelní výpočty `_ #. `Slepování jazyků pomocí Pythonu `_ #. `Pandas `_ Literatura ========== Volně přístupná --------------- - `Python`_ – oficiální dokumentace. - `Nauč se Python`_ - `Lectures on scientific computing with Python by R. Johansson`_ - `A Whirlwind Tour of Python by Jake Vanderplas`_ - `Python Data Science Handbook by Jake Vanderplas`_ - `Jake Vanderplas Introduction to Scientific Computing in Python (lecture notes)`_ - `A Crash Course in Python for Scientists`_ - `Python Scientific Lecture Notes`_ - `Slides `_, `textbook `_ and other resources from `Python Programming Primer by Hans Fangohr`_ - `Software Carpentry - Programming with Python`_ - `Scientific Computing with Python (Programming Bootcamp for biology graduate students)`_ - `Data Carpentry Python for Ecologists`_ - `Google's Python Class`_ - `Codecademy Python`_ - `Online Python Tutor`_ - `M. Pilgrim: Dive Into Python 3`_ (`český překlad`_) - `Z.A. Shaw: Learn Python The Hard Way`_ - `Seriál létající cirkus na root.cz`_ - `B. Eckel: Python 3 Patterns & Idioms`_ - Mnoho další zajímavé literatury najdete např. na `pythonbooks.revolunet.com`_, `python.cz`_ nebo `py.cz`_. Knihy ----- - `Ian Ozsvald and Micha Gorelick: High Performance Python `_ - `Anthony Scopatz, Kathryn D. Huff: Effective Computation in Physics: Field Guide to Research with Python `_ - `Rubin H. Landau, Manuel J Páez, Cristian C. Bordeianu: Computational Physics: Problem Solving with Python `_ - `John Guttag: Introduction to Computation and Programming Using Python `_ - `Wes McKinney: Python for Data Analysis `_ - `Aurélien Géron: Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow `_ - `Hans Petter Langtangen: A Primer on Scientific Programming with Python `_ - `Hans Petter Langtangen: Python Scripting for Computational Science `_ Srovnání Python a Matlab ------------------------ - `MATLAB vs Python: Why and How to Make the Switch `_ .. _Python: http://www.python.org .. _Google's Python Class: https://developers.google.com/edu/python/ .. _A Crash Course in Python for Scientists: http://nbviewer.ipython.org/5920182 .. _Online Python Tutor: http://www.pythontutor.com/ .. _Python Scientific Lecture Notes: http://scipy-lectures.github.com .. _`M. Pilgrim: Dive Into Python 3`: http://getpython3.com/diveintopython3 .. _český překlad: http://diveintopython3.py.cz .. _`Z.A. Shaw: Learn Python The Hard Way`: http://learnpythonthehardway.org .. _pythonbooks.revolunet.com: http://pythonbooks.revolunet.com/ .. _`Seriál létající cirkus na root.cz`: http://www.root.cz/serialy/letajici-cirkus/ .. _python.cz: http://python.cz/ .. _py.cz: http://www.py.cz/TutorialyLiteratura .. _`B. Eckel: Python 3 Patterns & Idioms`: https://bitbucket.org/BruceEckel/python-3-patterns-idioms/ .. _`Scientific Computing with Python (Programming Bootcamp for biology graduate students)`: http://nbviewer.ipython.org/url/atwallab.cshl.edu/teaching/QBbootcamp3.ipynb .. _`Lectures on scientific computing with Python by R. Johansson`: https://github.com/jrjohansson/scientific-python-lectures .. _`Jake Vanderplas Introduction to Scientific Computing in Python (lecture notes)`: https://github.com/jakevdp/2014_fall_ASTR599 .. _`Codecademy Python`: http://www.codecademy.com/tracks/python .. _`Software Carpentry - Programming with Python`: http://swcarpentry.github.io/python-novice-inflammation .. _`Data Carpentry Python for Ecologists`: http://www.datacarpentry.org/python-ecology/ .. _`A Whirlwind Tour of Python by Jake Vanderplas`: https://github.com/jakevdp/WhirlwindTourOfPython .. _`Python Data Science Handbook by Jake Vanderplas`: https://github.com/jakevdp/PythonDataScienceHandbook .. _`Python Programming Primer by Hans Fangohr`: http://www.southampton.ac.uk/~fangohr/training/python/ .. _`Nauč se Python`: https://naucse.python.cz/courses/