Module - Programming (SBI129)


Aim of this module

Bioinformatics and physical science in medicine are fast-moving areas. It is often the case that specific tools and resources that would be useful in a clinical or laboratory setting are not available commercially. Therefore the ability to be able to develop a safe and effective code for use within the trainee’s organisation is an important part of the skill set of an effective information scientist. This module will provide trainees with a sound introduction to programming and safe and effective software development practice. This module will provide the trainee with the opportunity to use safe and effective software development/coding to provide solutions to issues arising within a clinical environment.

Work-based learning outcomes

  1. Design and code a small programme in Java or an alternative object-oriented programming language for bioinformatic application and proceed to test and debug the program in accordance with good programming practice. (For example for transforming large data sets, which meets simple requirements expressed in plain language).
  2. Develop documentation and testing protocols for the program according to local practice.
  3. Evaluate the program against non-functional requirements such as maintainability, efficiency and readability, finalise the software, and update and complete the documentation.

Work-based Competencies

Learning outcome Title Knowledge
1 1

Perform requirements capture within a genetic analysis team to capture functional and non-functional requirements.

  • Unified Modelling Language (UML).
  • Program development paradigms.
  • Capturing requirements in plain English.
  • Object-oriented modelling.
  • Identifying actors and use cases.
  • Functional and non-functional requirements.
  • Documentation requirements.
2 1

Establish a development environment and undertake program development.

  • Development toolkits.
  • Establishing a virtual machine (VM) in different operating system (OS) environments.
  • Development environments, e.g. Eclipse, etc.
  • Libraries
  • Object-oriented programming.
  • Use and extension of libraries.
  • Sources and use of specialist libraries.
3 1,2

Test, debug and evaluate the program, and perform user acceptance procedures.

  • Unit testing.
  • User evaluation.
  • Iterative development.
  • User documentation.
  • Software deployment.
4 2

Maintain and upgrade software solutions, ensuring compliance with quality assurance procedures, including version control.

  • Version control.
  • Software version management (SVM).
5 3

Evaluate the program against non-functional requirements.

  • Maintainability.
  • Efficiency.
  • Readability.
6 3

Finalise the programme documentation and file in accordance with local quality assurance processes.

  • Documentation requirements.

Work-based assessment

Complete 2 Case-Based Discussion(s)
Complete 2 of the following DOPS and/or OCEs
Type Title
DOPS Write a program to create a reverse complement from a DNA sequence, and explain the development environment, the data source, the libraries used and the algorithm employed.
DOPS Create a script to parse a large text file and output a small specified subset of data.
DOPS Write a set of unit tests to evaluate whether the output of a script or set if functions is correct, including edge cases
DOPS Construct a script using OO methods to parse data.
OCE Participate in an MDT meeting where clinical software requirements are discussed and agreed