Module information

Module details

Title
Programming
Type
Specialist
Module code
SBI129
Credits
10
Requirement
Compulsory

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 content

Competencies

# Learning outcome Competency Action
# 1 Learning outcome 1 Competency

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

Action View
# 2 Learning outcome 1 Competency

Establish a development environment and undertake program development.

Action View
# 3 Learning outcome 1,2 Competency

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

Action View
# 4 Learning outcome 2 Competency

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

Action View
# 5 Learning outcome 3 Competency

Evaluate the program against non-functional requirements.

Action View
# 6 Learning outcome 3 Competency

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

Action View

Assessments

You must complete:

  • 2 case-based discussion(s)
  • 2 of the following DOPS/ OCEs:
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. DOPS
Participate in an MDT meeting where clinical software requirements are discussed and agreed OCE

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.

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

  1. Express a clear understanding of the basic principles of an object-oriented programming language, e.g. Java.
  2. Discuss the need for a development process.
  3. Discuss the role of testing programs and good documentation.

Indicative content

  • Sequential execution and programming
  • Types, variable and expressions
  • Execution flow control
  • Separate methods
  • Separate classes
  • Object-oriented design
  • Introduction to graphical user interfaces
  • Arrays
  • Files and exceptions
  • Programming testing
  • An introduction to modern development and documentation tools

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

  • To experience and evaluate all stages of a full software development life cycle, including:
    • participate in meetings where clinical software requirements are discussed and agreed;
    • development of user specifications;
    • development of prototypes and evaluation of software;
    • system acceptance;
    • documentation, maintenance and further development;
    • laboratory quality management and quality assurance processes.
  • Observe the work of a genetics service and evaluate the positive contribution of a bioinformatician, identifying the strengths and areas where the contribution could be strengthened to enhance service delivery and patient care.