Difference between revisions of "Masterpraktikum Scientific Computing - Advanced C++ Programming"
Jump to navigation
Jump to search
Line 4: | Line 4: | ||
| timeplace = Wed., 14:00-16:00, Room: MI 02.07.023 | | timeplace = Wed., 14:00-16:00, Room: MI 02.07.023 | ||
| credits = 6 SWS (6P) / 10 credits | | credits = 6 SWS (6P) / 10 credits | ||
− | | audience = Students of Computer Science (Master/Diplom), voluntary course, Module [https://www.in.tum.de/myintum/kurs_verwaltung/cm.html?id=IN2106 IN2106] | + | | audience = Students of Computer Science (Master/Diplom), voluntary course, Module [https://www.in.tum.de/myintum/kurs_verwaltung/cm.html?id=IN2106 IN2106] |
| exam = no final exam | | exam = no final exam | ||
| tutorials = - | | tutorials = - | ||
Line 13: | Line 13: | ||
{| class="wikitable" valign="top" | {| class="wikitable" valign="top" | ||
|- | |- | ||
− | !valign="top" | | + | !valign="top" |05.08.2010 || Extended registration possible via TUMonline. |
|- | |- | ||
!valign="top" |01.07.2010 || A preliminary discussion will take place in room 02.07.023 on 14.07.2010, 16:00-17:00. The attendance is compulsory. | !valign="top" |01.07.2010 || A preliminary discussion will take place in room 02.07.023 on 14.07.2010, 16:00-17:00. The attendance is compulsory. | ||
Line 34: | Line 34: | ||
= Requirements = | = Requirements = | ||
− | Basic knowledge in object oriented programming and C/C++. | + | Basic knowledge in object oriented programming and C/C++. Interest in generic template programming techniques. |
− | |||
= Timeline = | = Timeline = | ||
− | + | The timeline is not fixed yet. | |
− | The timeline is not fixed yet | ||
<!-- | <!-- | ||
, i.e. it might change throughout the upcoming weeks. | , i.e. it might change throughout the upcoming weeks. | ||
Line 88: | Line 86: | ||
The lab course gives an application oriented introduction to some of the following topics in advanced C++ programming (lecturers may select certain deepening aspects): | The lab course gives an application oriented introduction to some of the following topics in advanced C++ programming (lecturers may select certain deepening aspects): | ||
<ul> | <ul> | ||
− | <li> | + | <li> Smart pointers for automated memory management in C++: |
− | <li> | + | <ul> |
− | <li> | + | <li> Basic principles and application scenarios of smart pointers </li> |
− | <li> | + | <li> Smart pointer types </li> |
− | < | + | <li> Reference counting techniques </li> |
+ | <li> Performance comparison with plain pointers </li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li> Using type traits to build a static size linear algebra library: | ||
+ | <ul> | ||
+ | <li> Basic principles and application scenarios of type traits </li> | ||
+ | <li> Externalizing matrix/vector operations via type traits </li> | ||
+ | <li> Selective function overloads with the SFINAE (substitution-failure-is-not-an-error) technique </li> | ||
+ | <li> View proxies to vector/matrix classes with zero-runtime overhead </li> | ||
+ | <li> Runtime comparison </li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | <li> Using expression templates to speedup vector/matrix computations | ||
+ | <ul> | ||
+ | <li> Basic principles and application scenarios of expression templates </li> | ||
+ | <li> Eliminating temporary creation by delayed expression evaluation </li> | ||
+ | <li> Runtime comparison </li> | ||
+ | </ul> | ||
+ | </li> | ||
+ | |||
<li> Curiosly recurring template pattern (CRTP) </li> | <li> Curiosly recurring template pattern (CRTP) </li> | ||
</ul> | </ul> |
Revision as of 12:50, 17 July 2010
- Term
- Winter 10/11
- Lecturer
- Univ.-Prof. Dr. Hans-Joachim Bungartz, Bernhard Gatzhammer, Michael Lieb
- Time and Place
- Wed., 14:00-16:00, Room: MI 02.07.023
- Audience
- Students of Computer Science (Master/Diplom), voluntary course, Module IN2106
- Tutorials
- -
- Exam
- no final exam
- Semesterwochenstunden / ECTS Credits
- 6 SWS (6P) / 10 credits
- TUMonline
- {{{tumonline}}}
News
05.08.2010 | Extended registration possible via TUMonline. |
---|---|
01.07.2010 | A preliminary discussion will take place in room 02.07.023 on 14.07.2010, 16:00-17:00. The attendance is compulsory. |
Requirements
Basic knowledge in object oriented programming and C/C++. Interest in generic template programming techniques.
Timeline
The timeline is not fixed yet.
Contents
The lab course gives an application oriented introduction to some of the following topics in advanced C++ programming (lecturers may select certain deepening aspects):
- Smart pointers for automated memory management in C++:
- Basic principles and application scenarios of smart pointers
- Smart pointer types
- Reference counting techniques
- Performance comparison with plain pointers
- Using type traits to build a static size linear algebra library:
- Basic principles and application scenarios of type traits
- Externalizing matrix/vector operations via type traits
- Selective function overloads with the SFINAE (substitution-failure-is-not-an-error) technique
- View proxies to vector/matrix classes with zero-runtime overhead
- Runtime comparison
- Using expression templates to speedup vector/matrix computations
- Basic principles and application scenarios of expression templates
- Eliminating temporary creation by delayed expression evaluation
- Runtime comparison
- Curiosly recurring template pattern (CRTP)
Literature
- Effective C++, Scott Meyers, Addison Wesley
- C++ Templates: The Complete Guide, Nicolai M. Josuttis and David Vandevoorde, Addison Wesley Longman
Material
t.b.a.