Computer Science

Research Software Engineering with Python: Building Software That Makes Research Possible

Damien Irving; Kate Hertweck; Luke Johnston; Joel Östblom; Charlotte Wickham; Greg Wilson

A complete project-based textbook turning Python analysis scripts into tested, versioned and reusable research software developed with others.

Prerequisites

Basic Python is required: files, loops, conditionals and functions should be familiar. Some experience analyzing data helps; the book teaches development tools rather than assuming prior professional software-engineering training.

Publication Year
2021
Difficulty Level
Intermediate
Academic Level
Undergraduate
research softwaretestingreproducible workflows

01 / Reading Guide

Reading Guide

Who this book is for

For students and researchers who already use Python but want their work to remain understandable and usable by others. The book is designed for a university semester or guided self-study. Its running research project makes the transition from personal scripts to shared software concrete, including the organizational choices that surround code.

Prerequisites

Basic Python is required: files, loops, conditionals and functions should be familiar. Some experience analyzing data helps; the book teaches development tools rather than assuming prior professional software-engineering training.

What it covers

The route covers the Unix shell, project organization, command-line programs, Git collaboration, workflow automation, configuration, testing, debugging and packaging. A word-frequency research problem provides continuity. The introductory discussion distinguishes openness, reproducibility and sustainability so that making a repository public is not treated as sufficient evidence of all three.

How to use it

Follow the running project in a fresh directory and keep a record of each change in version control. Reproduce a result from a clean environment before expanding the analysis. Design one test that could catch a plausible scientific mistake, not merely repeat the implementation. Ask a peer to run the documented workflow without your verbal instructions, then use the failures to improve the package. Practise small collaborative changes and explain how each tool protects the research process.

Edition and sources

The complete author-hosted edition is dated October 14, 2021. The text is CC BY 4.0 and the code has an MIT license, as the introduction states. It is a complete book with exercises and appendices; publisher preview files are not the access route used here.

Open the official resource