PhD course: Program Construction in C++ for Scientific Computing
Time: Mon 2024-08-26 15.00 - 17.00
Location: Q2
Participating: Björn Wehlin
This is a course about writing high-performance, high-quality software for scientific and engineering applications. In particular, we will implement methods for solving partial differential equations on domains that are not necessarily rectangles. However, what we learn in this course has wide applicability both within scientific computing and in other fields that rely on high-performance or low-latency software (e.g., finance, games, telecom, AV processing, etc.).
To make the most of the available hardware, one needs to program "close to the metal." C++ gives us the capability to get to this level, but the language by itself is not enough. We must also understand some aspects of computer hardware and operating systems. This semester will provide a survey of some of the most important topics from these subjects as they pertain to writing optimized scientific software.
C++ is an evolving language, with its modern "era" starting in 2011. Since then, the language has been updated on a three-year cycle, most recently with C++23. The aim of this course is to present a "C++-first" modern treatment of the language. We will start with C++ from scratch, so no prior knowledge in the language (or for that matter, C) is required. Of course, having some programming experience, for example from another course, is helpful.
Visit the course page or Canvas page for more information.