SWD3: Software development practices for Research#
Booking for this course is through the IT Training Unit. Click here to book
Workshop content#
The purpose of this workshop is to introduce a number of the techniques and concepts that professional software developers use to manage their code, projects and teams. Although the development of research codes and software has different needs and challenges to the development of commercial software, there are nonetheless some tools and techniques that we can adopt or adopt to improve our Research Software Engineering. This isn’t a programming workshop, so it will be relevant to you whichever programming language (on Windows, Linux or Mac) or infrastructure (HPC, Cloud, Desktop) you use. This will be a hands-on session with lots of discussion and small group activities. We’ll be joined by a number of people who develop codes and software who will share their experiences.
At the end of the workshop, attendees will be able to:
Understand the basics stages of Software Development Life Cycle
How to layout a project
How to using tools to optimise the work
How to integrate the work with GitHub
How to build a testing unit
How to build a code documentation?
Delivering Plan#
Software Development Life Cycle
introduction using quarto slidesInstall Requirements (maybe ask this before)
Start project and present all content available in this course in a practical example.
TODO#
Setup: Install git
Setup: Configure git
Setup: Connect with GitHub
Setup: Install Anaconda
Setup: Add install VScode instructions
vsc: add extensions intro
vsc: add vsc market link
vsc: add link for the suggested extensions
Lint: Add introduction
Lint: Add PEP8 reference
Lint: Add Flake8 example
Lint: Add Black example
GitHub Actions: Setup
python application
actionCreate a repository to present a solution for the Case of Study
Documentation: add some docstring and sphinx example?
Deployment: add some Release information?
Quarto slides for Software Development Life Cycle Introduction
Major Problem#
Language - how we are going to address other languages?
Material Summary#
Reference#
The content in this material is a summary of several tools/techniques tailored to fit an one day course.
If you want to learn in more detail some of the content presented here, please give a look in the following material: