In health research, we are increasingly reliant on research software. Many of us are developing data analysis scripts, code, or even entire software packages.

Our “flipped classroom” research software engineering workshop is designed for those who write code and want to ensure good quality of this code. Through this course, you will be provided with a comprehensive overview of good coding practices and a unique opportunity to practice the principles in between weekly check-ins with our expert tutors.

Agenda

The course follows a fixed schedule each week, where participants will:

  1. Receive an email containing further context on the topic to be covered including information on the week’s videos to watch and tasks to implement
  2. Watch the instructional video 
  3. Implement the tasks of the week
  4. Check in with your buddy to help each other with assigned tasks, and
  5. Discuss remaining questions as a group with the tutor

The overall course schedule runs over 6 weeks, preceded by a kick-off meeting prior to the course start. Participants are expected to invest approximately 20 hours of work into this course.

Meeting sessions

The 7 weekly meeting sessions will take place every Wednesday from 22nd October 2025, ending on Wednesday 3rd December 2025. The first session will be our kick-off meeting where the group will meet and the contents of the course will be covered in detail. 

Workshop Agenda

  • How the course works + finding a buddy:
    This session will be about getting to know each other and matching accountability buddies.

  • How to write reproducible code; Making code / software usable for others:
    This session will cover the most important building blocks of reproducible code, the common issues and how to deal with them. We will discuss why the user is at the core and try to implement their needs.

    Project: Introduction and Documentation

  • Introduction to version control for code; Collaborative coding projects:
    Learn why version control is important, understand the key differences between software version control with git and in documents. You will be able to define the git terms, and learn how to start a project on GitHub and contribute to an open-source project.

    Project: Distribute project (zip, use tag), Commit and push their own README

  • Publishing code and software:
    To understand how to gain confidence in your coding and knowing the role of licenses and how to decide which one to use. Explore useful guidance for uploading to GitHub.


    Project: choosealicense, add license, add installation instructions via github to README, introduce and extend DESCRIPTION

  • Coding with style; Unit testing:
    To understand the importance of code formatting and linting, as well as the basic principles and where to find information for any programming language. You will be able to identify the type of test you need to perform, how that test will work, and what to do with the results you have been given.

    Project: Execute unit-tests, modify code and see test fail. Add small “mistakes” when linting

  • Continuous integration:
    Understand what CI/CD is and know examples of how to use it in research and software engineering. Be able to implement a simple set-up.

    Project: Manually add the Github Actions CI file and run on push

  • Containers for stabilising the computing environment:
    Understand the concepts of containers: virtual computer on your computer. Understand why containers are useful for both reproducible research and for software development. Be able to run a Docker container.

    Project: Run a container, describe and discuss your Dockerfile. Build an image from Dockerfile

Emails

Emails including the videos and tasks for the upcoming week will be sent out after each meeting. Please watch the videos and implement the tasks of each week before the respective meeting session.

Buddy check-ins

You and your course buddy decide when you will check in with each other. It’s recommended you meet on Mondays for 15-30 minutes. We will assign the buddy pairs in the kick-off meeting.

Topics

  • How to write reproducible code
  • Writing good code documentation
  • Introduction to version control for code
  • Collaborative coding projects
  • Implementing tasks of the week
  • Coding with style
  • Publishing code and software
  • Making code / software usable for others
  • Unit testing
  • Continuous integration
  • Containers for stabilising the computing environment

Target audience

The intended audience for the workshop is for health researchers who write code and want to get an overview on good coding practices.

Prerequisites: 

An intermediate level of programming knowledge in one programming language. The course is not tied to any particular language, but open source software, such as R or Python, will be the focus.

Cost:

£250

Discounts are available for members of the HDR UK community. If you would like to check your eligibility for discount, please contact Learn@hdruk.ac.uk.

Register here

To register for this workshop please click below:

Register Here