Module information

Module details

Title
Software
Type
Specialist
Module code
S-BG-S2
Credits
10
Phase
2
Requirement
Compulsory

Aim of this module

This module aims to give trainees experience in software development to be able to provide safe solutions to improve patients’ lives.

Work-based content

Training activities

# Learning outcome Training activity Type Action
# 1 Learning outcome 1 Training activities

Use Linux command line and command line tools to:

  • Change a file owner and permissions
  • Change the content of a file
  • Count the number of lines in a file
  • Identify the process taking up the most memory
  • Check file system disk space usage
Type DTA Action View
# 2 Learning outcome 2, 3 Training activities

Using Python3, create a script to demonstrate:

  • Variables
  • Data structures
  • Pattern matching
  • Loops
  • Conditionals
Type DTA Action View
# 3 Learning outcome 2, 3, 5 Training activities

Gather user requirements for a pipeline and select appropriate tools and scripting language for the pipeline and justify selection

Type DTA Action View
# 4 Learning outcome 3, 4 Training activities

Install new tools or update already installed tools and demonstrate a working version

Type DTA Action View
# 5 Learning outcome 2,3,4,5,6 Training activities

Create a pipeline/software with error handling

Type DTA Action View
# 6 Learning outcome 3,4,5,6 Training activities

Test the pipeline/software with relevant data

Type DTA Action View
# 7 Learning outcome 3,4,6 Training activities

Adjust computing parameters and software updates and assess the impact

Type DTA Action View
# 8 Learning outcome 4, 6 Training activities

Engage in the software management cycle

Type DTA Action View
# 9 Learning outcome 3,4,6 Training activities

Validate a pipeline

Type DTA Action View
# 10 Learning outcome 5, 6 Training activities

Produce appropriate documentation for a pipeline, provide training and gather user feedback

Type DTA Action View

Assessments

Complete 2 Case-Based Discussions

Complete 2 DOPS or OCEs

Direct Observation of Practical Skills Titles

  • Perform MD5sum on a file.
  • Write a script to convert a nucleotide sequence to amino acids.
  • Install software or a package using command line.
  • Set up a conda environment or a Docker/Singularity container using command line.

Observed Clinical Event Titles

  • Capture user requirements.
  • Discuss the pros and cons of commercial vs open-source software with a stakeholder.
  • Present new software/pipeline to a non-specialist audience.

Learning outcomes

# Learning outcome
1

Process data in a Linux environment.

2

Use a programming language to create software.

3

Apply best practice in software development and code testing.

4

Modify, install, update and test software.

5

Identify and ensure the needs of stakeholders and patients are met in the development of software, maintaining patient safety and confidentiality.

6

Appraise the application of the software development and management cycle in a healthcare environment.

Clinical experiences

Clinical experiences help you to develop insight into your practice and a greater understanding of your specialty's impact on patient care. Clinical experiences should be included in your training plan and you may be asked to help organise your experiences. Reflections and observations from your experiences may help you to advance your practice and can be used to develop evidence to demonstrate your awareness and appreciation of your specialty.

Activities

  1. Observe current practice in the area to be developed where required.
  2. Follow an issue or request in GitHub to appreciate other work being carried out in the community and where you can learn from this and apply it to your own work.

Academic content (MSc in Clinical Science)

Important information

The academic parts of this module will be detailed and communicated to you by your university. Please contact them if you have questions regarding this module and its assessments. The module titles in your MSc may not be exactly identical to the work-based modules shown in the e-portfolio. Your modules will be aligned, however, to ensure that your academic and work-based learning are complimentary.

Learning outcomes

On successful completion of this module the trainee will be able to:

  1. Apply common commands and processes in the Linux operating environment.
  2. Express a clear understanding of a current high-level programming language.
  3. Demonstrate a critical awareness of software development process and modern software development models.
  4. Critically appraise the functional and non-functional requirements for a system.
  5. Discuss the role of testing programmes and good documentation.
  6. Demonstrate the ability to establish and use an effective software development environment and implement version control.
  7. Apply integrative knowledge of client/server architectures.
  8. Describe the basics of a relational database system and the SQL language.
  9. Demonstrate extended understanding of data formats including XML and JSON for data representation and transfer.
  10. Discuss the role of application programming interfaces (APIs) in communication of data.

Indicative content

  • Linux:
    • Grep, awk, sed, cat, find, xargs, ls and mkdir
    • Permissions and sudo
    • Process and storage management
    • Redirecting and piping
    • File types
    • MD5sum
  • Programming:
    • Python 3
    • Types, functions and loops
    • Data structures
    • Input/output and redirecting (stdin/stdout)
    • Pattern matching
    • Errors and exceptions (stderr)
    • Environment – conda and docker
  • Best practice in software development:
    • Local best practice
    • Style guides
    • Annotation, commenting and documentation
    • Log files
    • Git/gitHub version control, documentation, issues and requests
    • Open source/commercial
  • Software modification, install, update and test
    • Package sources
    • Source code and compilers
    • Software maintainability
    • Unit testing
    • Impact on resources (CPU and storage)
    • Use of test data
    • User experience
    • Data storage and compression, and backup
    • Containerisation
    • Client/server architecture
  • Validation:
    • Validation data
    • Sensitivity and specificity
    • Data integrity
    • Documention
  • Stakeholder analysis and requirement gathering:
    • Stakeholder engagement
    • User requirements for a pipeline
    • Impact on patients and confidentiality
  • Patient safety and confidentiality
  • Software development and management cycle:
    • Software deployment (development, testing, production)
    • Change log
    • SOPs

Module assigned to

Specialties

Specialty code Specialty title Action
Specialty code SBI1-1-22 Specialty title Clinical Bioinformatics Genomics [2022] Action View
Specialty code SBI1-1-23 Specialty title Clinical Bioinformatics Genomics [2023] Action View
Specialty code SBI1-1-24 Specialty title Clinical Bioinformatics Genomics [2024] Action View