πŸ’» Work environment setup#

⏱ | words

In additional to theory πŸ“– the course will have a strong βš™οΈ practical component, with hands-on exercises and projects.

To follow the course effectively, you will need to set up your local development environment to interact with the course materials and to write&run code examples.

Hint

The information on this page refers to the local install which enables you to run course code on the local machine. An alternative to this is to rely on cloud based resources such as Google Colab which have the development environment already configured β€” but provides less control.

Prerequisites#

  • You have a fairly modern computer: desktop or laptop, Windows or Mac or Linux

  • You have administrative access to this computer (can install programs)

Python and Anaconda#

The Anaconda package is an easy way to install:

  • Python

  • Jupyter Notebook

  • Scientific programming libraries

Anaconda Individual Edition

Git and Git GUI#

  • Git is the command line version control software

  • GUI makes Git a lot more practical

Git

Git GUI application

Recommended options:

GitHub#

  • Social coding network website

    • Hosting code

    • Version control + integrations

    • Community of coders

    • Open source community projects

    • Benefits for students

    • Free hosting for static web pages

  • Register on GitHub (if not yet)

  • Course materials will be distributed through GitHub repository

Text editor#

  • Good text editor is invaluable for editing source files

  • Could be done in Jupyter or other default editors, but less convenient

  • Essential for bigger coding projects

  • Good options are:

Practical Task

  1. Clone the course repository
    git clone <repo address copied form the webpage>

  2. Create a new file in the working directory

  3. Write/edit the new file using the text editor

  4. Stage and commit

  5. Observe diffs

  6. Attempt to upload to server/GitHub by pushing

Jupyter notebooks#

  • Excellent way to present and discuss code

    • this entire course is tough using notebooks

  • Good instrument to develop new ideas

    • especially together with coauthors

  • Saved to disk as JSON files with multiple sections

    • text

    • math and formulas in latex

    • code (different languages are possible)

    • output from the code

Jupyter notebooks have limitations

  • NOT GOOD way to store developed code, use libraries (modules)

  • NOT GOOD for version control

    • changes in metadata are tracked

    • changes in output are tracked

    • merging changed files may break JSON format

  • Require additional tools to work well with Git

  • We don’t worry about it for the most of the course

References and Additional Resources