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.
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.ncanddata/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:
-
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. - git.
- 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.