COMP0210: Research Computing with C++



In this course, we build on your knowledge of C++ to enable you to work on complex numerical codes for research. Research software needs to handle complex mathematics quickly, so the course focuses on writing software to perform multi-threaded computation. But research software is also very complicated, so the course also focuses on techniques which will enable you to build software which is easy for colleagues to understand and adapt.


We have found in previous years that C++ is no longer commonly taught at undergraduate level. As such, we do not expect deep prior understanding of C++ but we do expect prior programming experience and some basic C++ knowledge. This should include:

  • Variables, loops and control flow statements (like if)
  • Arrays and structures
  • Basic object oriented design (classes, inheritance, polymorphism)

This could be obtained through online resources such as the the C++ Essential Training course by Bill Weinman on LinkedIn Learning (accessible using your UCL single sign-on) or via a variety of C++ courses in college, such as MPHYGB24.

  • Eligibility: This course designed for UCL post-graduate students but with agreement of their course tutor a limited number of undegraduate students can also take it.


Members of doctoral training schools, or Masters courses who offer this module as part of their programme should register through their course organisers.

This course may not be audited without the prior permission of the course organiser Dr. Jamie Quinn as due to the practical nature of the lectures there is a cap on the total number of students who can enrol.