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.
Level
- Introductory: 20 %
- Intermediate: 40 %
- Advanced: 40 %
Trainer(s)
- Geert Jan Bex (geertjan.bex@uhasselt.be)