In the last 10 years, scientists across many fields have converged on Python as the language of choice for scientific applications; in addition to being powerful, expressive, and friendly, Python benefits from a strong ecosystem of open-source users/developers. Furthermore, the notebook interface and file format have emerged as a powerful mode for computational experimentation and for the exchange of reproducibility of studies.
This course provides an introduction to the core Python language and to the basic “stack” of scientific packages. The tentative list of topics, which can later be modified according to interest and progress, is:
1 - Core Python and the Python standard library; using the Jupyter notebook.
2 - Numpy (arrays, broadly construed); Scipy (numerical methods).
3 - Matplotlib (plotting); Pandas (data tables).
4 - Object-oriented and functional Python.
5 - Wrapping C/C++/Fortran; high-performance Python.
6 - Sympy (symbolic calculations).
This course won’t make you into Python experts (you shouldn’t expect to learn a language in a few hours!), but it will give you a sense of what is possible, of where to look for things, and of the overall spirit of the language and its community. If you wish to read ahead, here are recommended tutorials:
- https://docs.python.org/3/tutorial = the official language tutorial, staid but authoritative
- https://github.com/jakevdp/WhirlwindTourOfPython = a quick introduction to the core Python language
- https://jakevdp.github.io/PythonDataScienceHandbook = a thorough overview of scientific Python
The course will consist of interactive, hands-on tutorials, lasting about 90 minues each. You are encouraged to bring your laptop, with a functional Python 3 installation. We recommend the Anaconda Distribution at https://www.anaconda.com/distribution (Python 3.7 version), which comes with all required packages. However, it is also possible to run Jupyter notebooks in the cloud, which you can do for free with a Google account at http://colab.research.google.com.
(Organizer: IPhT/Sylvain Ribault)