Summary and Setup

This two-session workshop is for scientists and technicians who are comfortable writing basic Python scripts (variables, loops, conditionals) and want to level up to writing code that conforms with FAIR (Findable, Accessible, Interoperable, and Reuseable) standards. Across two four-hour sessions, we will move from a single well-written function all the way to a documented repository you can hand to a colleague or return to yourself six months from now.

To join, see the Register page. Before Session 1, complete Getting Started.

Prerequisite

Prerequisites

  • Comfortable writing and running Python scripts
  • Familiarity with variables, loops, conditionals, and basic data structures (lists, dicts)
  • Basic knowledge of git and gitHub
  • No prior experience with packaging, or software testing is assumed

Session 1: From Function to Package


  • Block 1 — Writing Effective Functions
  • Block 2 — Organizing Functions into Modules

Session 2: From Package to Reusable Project


  • Block 3 — Building a Repository and Managing Environments
  • Block 4 — Documentation and Reuse

Before the workshop


Please complete the Getting Started page before Session 1. It walks you through installing the three things you need (git, uv, and a GitHub account), downloading the workshop files, and testing that everything works. We will not have time to troubleshoot installations during the sessions.

The workshop files


The starter files are distributed as a single zip file, starter-files.zip, on the lesson’s Releases page. It contains:

  • first_analysis.ipynb: a deliberately “messy” Jupyter notebook that we refactor throughout the two sessions. It reflects the kind of exploratory notebook someone would use for initial data analysis and visualization.
  • data/gi01sumo_nsif_ctd.nc and data/gi01sumo_nsif_dosta.nc: a full deployment of real OOI data from the Global Irminger Sea Array (GI01SUMO) Near-Surface Instrument Frame (NSIF): CTD (temperature, salinity, pressure, density) and DOSTA (dissolved oxygen). The files keep only the relevant parameters. Downloading a similar dataset from the OOI Data Explorer yields many more lower-processing-level parameters and engineering data.

The data files are large (roughly 120 MB for the CTD and 800 MB for the DOSTA).

Software


You need three things, all covered in Getting Started:

  1. uv, a tool that installs Python, creates environments, and installs packages. It replaces venv, pip, and (for this workshop) conda. You do not need to install Python separately.
  2. git.
  3. A free GitHub account.

The workshop is written for a Jupyter notebook workflow. You will use a terminal for a few short commands. Using another editor or IDE (VS Code, PyCharm, and so on) is fine if you already prefer one.