Skip to content

SWD3: Software development practices for Research in Python

Book this course now!

Book directly here, or search "swd3" in the catalogue here.

Do you use Python code as part of your research? Do you feel overwhelmed by a messy collection of scripts and a hard-to-keep-track-of project spread between multiple folders on multiple computers? Do you wake up in the middle of the night in fear of discovering that your code has hidden mistakes that render all your results null and void?

Battle off the existential dread of poor organisation with our Software development practices for Research in Python workshop, where we discuss software engineering methods and tools that can help tame your code.

This is a day-long intensive workshop with both presentations and hands-on sessions aimed at highlighting some key methods and approaches to keep in mind when developing scientific code.

Authors

Including content from SWD3: Software development practices for Research (2023) by

Course content

This course includes: - how to leverage git and GitHub to effectively track, version control and share your code - Using devcontainers and virtual machines to ensure a reproducible development environment - Using virtual envs to make your work more reproducible and to help share it with colleagues and a wider audience - Testing your code and setting up automated workflows - Building documentation and publishing to the web on GitHub actions

Pre-requisites

  • A GitHub account; please sign up for a free account before attending - GitHub
  • Linux command line experience; please complete this quick online tutorial before attending if you aren't comfortable navigating Linux via the shell Linux Journey: the shell. If you don't have access to a Linux machine, you can use a free Replit instance; just select "bash" as the type and open the shell to follow the commands in the tutorial.
  • Basic Python experience; this is not a Python coding tutorial. If you don't have Python experience please complete this two hour crash course before attending (available with your University of Leeds email address) - Python for Non-Programmers (2h 11m)
  • Basic git experience; if you haven't used git please read through this before attending: git and GitHub for beginners

Draft timetable, subject to change on the day

Start time End time Duration Content
10:00 10:50 50 min Intro presentation
10:50 11:00 10 min Short break
11:00 12:00 60 min Version control and project organisation
12:00 13:00 60 min Lunch break, note that lunch is not provided
13:00 13:50 50 min Testing and linting code
13:50 14:00 10 min Short break
14:00 14:45 45 min Documentation and automated workflows
14:45 15:00 15 min Short break
15:00 15:45 45 min Packaging and releases
15:45 16:00 15 min Questions, wrap-up