Content
|
Students with basic programming experience will get an introduction to computational programming of numerical algorithms in C++. The first half of this course will focus on basics of the programming language C++, and highlight aspects in which the language differs from scripting languages such as Python or Matlab. Subsequently, the focus of the course will be on efficient memory management: We discuss modern best practices such as the usage of reference types and idioms like RAII (“Resource Acquisition is Initialization”) rather than classical pointers (“Raw-Pointers”). During the exercises, we illustrate the effect of memory handling for numerical linear algebra applications, and introduce STL (Standard Template Library) data structures in this context. In the second half of the lecture, the students implement more complex algorithms from different application areas using the “Eigen” library (for linear algebra) and openMP (for parallel computing). Here, the focus lies on understanding both libraries, improving the students' programming level from the first lecture half, and solving programming tasks from different areas such as stochastics, numerical solution of differential equations, and approximations.
|