COM605: Good Practice for Research Software

Modern academic research involves the usage and generation of multiple software assets such as computer programs, data, simulations and data-analysis workflows. This unit aims to improve the quality, sustainability and impact of these software assets.

Registration

The first run of this course will occur in November/December 2016. See the Registration page to sign up.

Course Content

This DDP module will teach a range of 'next generation' computational skills:

  • Automation: You will learn how to automate various computational research tasks using Bash, a cross-platform scripting language that originated in the Unix world.
  • Version control: You will be introduced to the git version control system along with how to use it in conjunction with GitHhub, possibly the most popular repository for open source and research software development in the world. You will learn how these technologies can lead to more reproducible computational research.
  • Testing: You will learn how to develop acceptance and unit tests for the software you write and how to incorporate these into a version controlled workflow.
  • Literate computing: You will learn how to apply concepts from literate programming to modern research in such a way as to help with reproducibility and dissemination of your research.
  • Publishing software outputs: How to publish citable software with a Digital Object Identifier (DOI) to increase the impact of your research.
  • Software citation principles. You will learn how to apply current best practice in software citation following the Force 11 software citation guidelines.

6 months after the course, you will be offered a follow-up consultation from a member of the Research Software Engineering group.

Teaching Methods

You will be taught via mixture of lectures and workshops. The module will be backed up by material that can be referred to in your own time. There will be an overview lecture covering the philosophy of writing good software with the view of achieving reproducible results, and presenting an overview of the tools that can facilitate this procedure.

Follow-up consultations will be arranged with each of you to help ensure that the skills learned are being successfully applied to research.

Assessments

The assessment method will be the completion of a set of practical exercises on each of the learning outcomes. These will assess the your basic ability to use the taught tools and methodologies. You will be given the option to complete the exercises within the workshops and receive immediate oral feedback or submit your solution later, by a predefined deadline, and receive on-line feedback. Success in the module will depend on successfully completing the exercises.