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:
|
Type DTA | Action View |
# 2 | Learning outcome 2, 3 |
Training activities
Using Python3, create a script to demonstrate:
|
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 Communication 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
- Observe current practice in the area to be developed where required.
- 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:
- Apply common commands and processes in the Linux operating environment.
- Express a clear understanding of a current high-level programming language.
- Demonstrate a critical awareness of software development process and modern software development models.
- Critically appraise the functional and non-functional requirements for a system.
- Discuss the role of testing programmes and good documentation.
- Demonstrate the ability to establish and use an effective software development environment and implement version control.
- Apply integrative knowledge of client/server architectures.
- Describe the basics of a relational database system and the SQL language.
- Demonstrate extended understanding of data formats including XML and JSON for data representation and transfer.
- 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 |