Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Updated: 03 nov 2025

This page provides an overview of commonly used software, with limited instructions for using them.

Integrated Development Environment (IDE)

An IDE is required to complete many of the exercises in this workshop. Many of them could be completed in a simple text editor, however, an IDE that includes features such as version control with Git, environment management and a CLI would be useful. As such, the instructions herein often refer to Jupyter Lab. However, you can choose your own IDE, noting that the main requirements are dictated by the use of Jupyeter Notebook (*.ipynb) files:

Jupyter Lab

To run Jupyter Notebooks we can use IDE’s as Jupyter Notebook or Jupyter Lab. Jupyter Notebook is a web-based interface that allows users to create and share documents with live code, visualizations, and narrative text in a linear format. Jupyter Lab, on the other hand, is a more advanced interface offering a flexible and modular environment with multiple panels, including notebooks, terminals, and text editors, providing a more versatile experience for interactive computing. I prefer to use Jupyter lab.

GitHub web-based editor

The github.dev web editor makes it possible to edit files directly in the browser. This is an excellent option if you are unable to install software on your computer. To activate it, simply navigate to a GitHub repository and press .. It’s really that easy!

You can find out more about this useful tool here.

VSC

A popular code editor is Visual Studio Code (VSC). It allows you to program in different languages, where it recognizes the commands in that language and adjusts the FONT so that it becomes better readable. Moreover, it allows you to install various packages (such as Jupyter Notebook). It also integrates GIT and allows to code using Co-Pilot, an AI pair programmer. We advise to use VSC as it allows for multiple programming languages.

Terminal

The terminal in VSC is a tool that lets you interact with your computer’s command line directly within the editor. It’s used to run commands, scripts, or programs without leaving the coding environment. For example, you can compile code, run a development server, install dependencies, or manage files. It’s very helpful for developers because it allows you to code and execute commands in one place, streamlining your workflow.

The VSC terminal to interact with the computer using the command line

Figure 1:The VSC terminal to interact with the computer using the command line

Extensions

Extensions in Visual Studio Code (VSC) are powerful add-ons that enhance the functionality of the editor by providing additional features, tools, and support for various programming languages, frameworks, and technologies. Extensions allow you to customize and tailor VSC to suit your specific development needs.

How to Install Extensions:

Virtual Environment and Dependencies

It is assumed that you are able to create and activate a virtual environment in order to complete this workshop using a personal computer. As the primary tools are Python packages available using pip, the choice of environment manager is somewhat trivial. To keep things simple we suggest using Python venv or Conda.

Python’s venv is used in the GitHub Actions workflows.

Python Dependencies

Python dependencies are managed in file requirements.txt, the contents of which are included here:

requirements.txt
jupyter-book>=2.0.0
jupyter
matplotlib>=3.10.7

Program 1:Python dependencies in file requirements.txt

Note that only jupyter-book is needed for building the book as described in most of the lessons in this workshop. The remaining packages are for the executable content lesson, which requires editing and executing Jupyter Notebooks (*.ipynb files). In addition, jupyter is a metapackage that includes a number of other commonly used packages (e.g., Jupyter Lab, IPython, etc.): it is included here to cover the range of preferences and IDE’s used by workshop participants; many of these are described briefly in the table below. For each individual participant, a smaller subset of packages could be used in practice.

To install these dependencies ensure requirements.txt is in your working directory and run pip install -r requirements.txt.

PackageDescription
jupyter-book>=2.0.0Tool to build publication-quality books and documentation from Jupyter notebooks and Markdown.
jupyterlabWeb-based interactive development environment for notebooks, code, and data.
ipykernelIPython kernel for Jupyter, enables running Python code in notebooks. Necessary for VSC to edit and execute notebook files.
ipywidgetsInteractive HTML widgets for Jupyter notebooks and JupyterLab.
jupyterA metapackage that requires jupyterlab, ipywidgets and ipykernel, amongst other packages.
mystmdMyST Markdown support for Jupyter Book / Sphinx.
jupyterlab_mystJupyterLab extension to render MyST Markdown and improve notebook/Markdown integration.
numpyCore library for numerical computing with arrays and linear algebra.
matplotlib2D plotting library for generating figures and visualizations.
scipyScientific computing library.

PDF Generation with Typst

For this template we use Typst to produce a high quality PDF (explained in detail as part of the PDF Output lesson). If you want to create PDF’s locally, you’ll have to install Typst. The Typst installation instructions provides several options to install Typst: we strongly recommend using the latest releases.

If you get a confusing error, a good first step is to upgrade your version of Typst.