Object-Oriented Programming for Scientific Computing
Term: | Summer Term 2017 |
Lecturer: | Ole Klein |
Time and location: | Lecture: Tue 16-18, INF 227 (KIP) / HS 2; Exercises: Thu 16-18, INF 205 / Computer Pool |
Exam: | last week of the semester, during lecture time |
The lecture “Object-Oriented Programming for Scientific Computing” (OOPSC / IOPWR) is a basic course in the Scientific Computing master program and one of the foundation courses of the specialization Simulation and Optimization.
The course teaches modern C++ programming skills from a Scientific Computing perspective. Special emphasis is given to modernizations and innovations from recent standards (C++11, C++14, C++17), topics that are often skipped in introductory courses due to high complexity and time constraints.
Topics that are discussed in detail include:
- Best practices in Scientific Computing
- Class concepts
- Dynamic memory allocation
- Exception handling
- Safe handling of resources
- Template programming
- Static vs. dynamic polymorphism
- Traits and policies
- Standard Template Library
- Template metaprogramming
Contact Info
Please refer to my personal homepage if you have any questions or need to get in contact with me.
Exam and Exam Criteria
The successful completion of this module consists in active participation in the exercises (50% of possible points + presentation of your code) and a written exam at the end of the semester.
The module can be used as part of the following study programs:
- Master Scientific Computing
- Master Applied Computer Science
- Master Physics (Specialisation Computational Physics)
and in other study programs (e.g., Bachelor Applied Computer Science) as per the usual rules regarding inclusion of Master program courses / field of application.
Resources
Access to the official standard (or drafts thereof, at least)
“Get started” page with literature recommendations
Online quick reference for C++ language and STL
GitLab.com, registration and resources for the exercises
Lecture Slides
Here the lecture slides will be posted during the semester.
Slides 1 (18.4.) (matrix.h, matrix.cc, testmatrix.cc)
Exercises
Please register in Müsli for participation in the exercises. Contact me if you are asked for a Matrikelnummer and don’t have one (e.g., some PhD students).
Part of the course concept is the active participation in collaborative programming efforts. This includes working in groups, commiting to a shared code repository, and handing in your exercise solution by applying specific tags to your commits. We will be using GitLab (gitlab.com) for this. Instructions for this can be found in the following document:
Guidelines for GitLab setup and coding style
Exercise Sheets
Here the exercise sheets will be posted during the semester.
Sheet 2 (25.4., due 9.5.) (matrix_broken.h, matrix_broken.cc, testmatrix.cc)