Technical notes

Python Distribution

We recommend to use an Anaconda or Miniconda Python environment. Your Python version for this class should be at least 3.5 or higher. The installation of Anaconda is also shown in the following video:

Integrated Development Environment (IDE) or Editor recommendations

  • Jupyter Notebook

    • will be automatically available after you have installed Anaconda/Miniconda.
    • if you are not yet familiar with Jupyter notebooks, you can find many tutorials in the web, e.g. Tutorial.
  • Spyder

    • is a full Python IDE with the focus on scientific development.
    • will be automatically installed if you install the full Anaconda package.
  • Visual Studio Code

    • is a more lightweight text editor for coding purposes and one of the most used ones.
    • Although it is officially not a real IDE, it has almost all features of an IDE.
  • PyCharm

    • commercial (free for students) IDE with a lot of functionalities.
    • is usually more suitable for very large and complex Python projects and can be too cumbersome for small projects like the ones used here in the lecture.
  • Vim/NeoVim

    • command-line text editor which is usually pre installed on all unix-like computers.
    • can be very unwieldy at the beginning, since Vim has a very large number of keyboard shortcuts and is not as beginner friendly as a typical IDE or Jupyter notebooks.
    • is extremely configurable and can be adapted with a little effort to a very extensive and comfortable editor.
    • still one of the most used editors.

During the lecture we will use different Python libraries. Therefore it is necessary that you install these libraries.

Dependencies

  • NumPy
    • conda install matplotlib
  • Matplotlib
    • conda install -c anaconda numpy
  • SciPy
    • conda install -c anaconda scipy
  • SymPy
    • conda install -c anaconda sympy
  • pytest
    • conda install -c anaconda pytest
  • ipytest
    • conda install -c conda-forge ipytest
  • Hypothesis
    • conda install -c conda-forge hypothesis