Tutors: Research Software Engineers from the Research Computing Service
Course Level: Level 2
Prerequisites: You are expected to be comfortable with the fundamental programming concepts.  Knowledge of Python will be particularly relevant. 
Duration: 2 x 2 hour sessions
Format: Microsoft Teams with live teaching and hands-on practice


Programming as a researcher can be a very intimidating experience. It can feel as though your code isn't "good enough" (as judged by some mysterious and opaque criteria), or that you're not coding in the "right way". The aim of this course is to help to address some of these concerns through an introduction to software engineering for researchers. Beyond just programming, software engineering is the practice and principle of writing software that is correct, sustainable and ready to share with colleagues and the wider research community.

Material will be delivered as a mixture of lectures and computational practicals. 


  • Techniques and tools to improve the readability and quality of your code
  • Structuring your code in a modular fashion to promote reuse and future extension
  • Testing frameworks and how to write tests 
Learning Outcomes

On completion of this workshop you will be able to:

  • Be confident in the quality of your code for collaboration and publication
  • Apply appropriate quality assurance software tools to your code 
  • Write tests to check the correctness of your code
  • Understand how and where to access support from the Research Computing Service at Imperial College 

Pre-course Setup


Monday 17 May 2021, 14:00-16:00 (Part One)
Tuesday 18 May 2021, 10:00-12:00 (Part Two)
Microsoft Teams


Monday 14 June 2021, 14:00-16:00 (Part One)
Tuesday 15 June 2021, 10:00-12:00 (Part Two)
Microsoft Teams  


Summary of the table's contents

Students must attend both parts to be awarded the course credit