SWD3: Software development practices for Research in Python
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 |