Module information
Details
- Title
- Software
- Type
- Specialist
- Module code
- S-BG-S2-1
- Credits
- 10
- 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
Competencies
| # | Learning outcome | Competency | Action |
|---|---|---|---|
| # 1 | Learning outcome 1 |
Competency
Use Linux command line and command line tools to:
|
Action View |
| # 2 | Learning outcome 2, 3 |
Competency
Using Python3, create a script to demonstrate:
|
Action View |
| # 3 | Learning outcome 2, 3, 5 |
Competency
Gather user requirements for a pipeline and select appropriate tools and scripting language for the pipeline and justify selection |
Action View |
| # 4 | Learning outcome 3, 4 |
Competency
Install new tools or update already installed tools and demonstrate a working version |
Action View |
| # 5 | Learning outcome 2,3,4,5,6 |
Competency
Create a pipeline/software with error handling |
Action View |
| # 6 | Learning outcome 3,4,5,6 |
Competency
Test the pipeline/software with relevant data |
Action View |
| # 7 | Learning outcome 3,4,6 |
Competency
Adjust computing parameters and software updates and assess the impact |
Action View |
| # 8 | Learning outcome 4, 6 |
Competency
Engage in the software management cycle |
Action View |
| # 9 | Learning outcome 3,4,6 |
Competency
Validate a pipeline |
Action View |
| # 10 | Learning outcome 5, 6 |
Competency
Produce appropriate documentation for a pipeline, provide training and gather user feedback |
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. |
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
Clinical experiences
Important information
Clinical experiential learning is the range of activities trainees may undertake in order to gain the experience and evidence to demonstrate their achievement of module competencies and assessments. The list is not definitive or mandatory, but training officers should ensure, as best training practice, that trainees gain as many of these clinical experiences as possible. They should be included in training plans, and once undertaken they should support the completion of module assessments and competencies within the e-portfolio.
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.
Module assigned to
Specialties
| Specialty code | Specialty title | View |
|---|---|---|
| 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 |
| Specialty code SBI1-1-25 | Specialty title Clinical Bioinformatics Genomics [2025] | Action View |