title | layout | slidelink |
---|---|---|
Research Software Engineering with C++ |
default |
false |
In this course, we build on your knowledge of C++ to enable you to work on complex numerical codes for research. Research software frequently needs to handle complex mathematics quickly, so the course will introduce techniques for writing performant and parallelised programs; however research software is also a complicated research output which must be understood, trusted, and maintained by your colleagues, and thus the course will also teach techniques to enable you to build software which is robust, well tested, and maintainable.
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 prior programming experience is essential, and some knowledge of C/C++ is very useful. Prior programming experience should include:
- Variables, loops and control flow statements (like
if
/else
) - Basic containers like arrays / vectors / lists / dictionaries
- Basic object oriented design (classes, member variables / functions)
You may find the C++ Essential Training course by Bill Weinman on LinkedIn Learning (accessible using your UCL single sign-on) to be a useful resource throughout the course if you want to spend more time on your introduction to C++.
- 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. Due to the introductory nature of some of the computing material, this course is not appropriate for those who have undertaken undergraduate studies in Computer Science.
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. Michael McLeod as due to the practical nature of the lectures there is a cap on the total number of students who can enrol.