C++ is widely used in many contexts. This training focusses on using C++ for scientific programming and on the way Bjarne Stroustrup advocates modern C++ in his book “A tour of C++”. Some C++17 features and third party libraries will also be discussed.
Learning outcomes
When you complete this training you will be able to
- read and understand well-written C++ code;
- write intermediate-level C++ programs;
- have a good starting point to familiarize yourself with the more sophisticated aspects of C++ by practicing.
- know about best practices and pitfalls for C++ programmers;
- have a working knowledge of the C++ Standard Template Library (STL);
- know how to use third-party libraries such as Armadillo or Eigen for linear algebra.
Schedule
Total duration: 16 hours, split over four sessions.
Session one
Total duration: 4 hours
Subject | Duration |
---|---|
introduction and motivation | 5 min. |
basics: control flow statements, data types | 85 min. |
hands-on session | 20 min. |
coffee break | 10 min. |
functions | 15 min. |
simple I/O | 10 min. |
user defined types and classes | 85 min. |
hands-on session | 20 min. |
Session two
Total duration: 4 hours
Subject | Duration |
---|---|
modular code and the build process | 80 min. |
hands-on session | 20 min. |
error handling | 10 min. |
coffee break | 10 min. |
inheritance | 60 min. |
templates | 20 min. |
functional programming | 20 min. |
hands-on session | 20 min. |
Session three
Total duration: 4 hours
Subject | Duration |
---|---|
string and regular expressions | 70 min. |
I/O streams | 20 min. |
hands-on session | 20 min. |
coffee break | 10 min. |
STL containers | 70 min. |
STL algorithms | 30 min. |
hands-on session | 20 min. |
Session four
Total duration: 4 hours
Subject | Duration |
---|---|
numerical computing | 70 min. |
hands-on session | 40 min. |
coffee break | 10 min. |
linear algebra | 30 min. |
Boost for numeris | 10 min. |
Gnu Scientific Library (GSL) | 30 min. |
hands-on session | 40 min. |
wrap up | 10 min. |
Training materials
Slides are available in the GitHub repository, as well as example code and hands-on material.
Target audience
This training is for you if you need to use C++ as a programming language.
Prerequisites
You will need experience programming in another programming language, This is not a training that starts from scratch.
If you plan to do C++ programming in a Linux or HPC environment you should be familiar with these as well.
Trainer(s)
- Geert Jan Bex (geertjan.bex@uhasselt.be)