Difference between revisions of "Masterpraktikum Scientific Computing - Advanced C++ Programming"
(Cancelation announcement) |
|||
(7 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
| term = Winter 10/11 | | term = Winter 10/11 | ||
| lecturer = [[Univ.-Prof. Dr. Hans-Joachim Bungartz]], [[Bernhard Gatzhammer]], [[Michael Lieb]] | | lecturer = [[Univ.-Prof. Dr. Hans-Joachim Bungartz]], [[Bernhard Gatzhammer]], [[Michael Lieb]] | ||
− | | timeplace = | + | | 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) | + | | 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 14: | Line 13: | ||
{| class="wikitable" valign="top" | {| class="wikitable" valign="top" | ||
|- | |- | ||
− | !valign="top" |01.07.2010 || A preliminary discussion will take place in room 02.07.023 on 14.07.2010, 16:00-17:00. | + | !valign="top" |05.10.2010 || Unfortunately, there were not enough registrations. Thus, the lab course is canceled. |
+ | |- | ||
+ | !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" | | + | !valign="top" |05.07.2010 || Ab sofort gibt es ein [http://www5.in.tum.de/lehre/vorlesungen/konkr_math/SS_10/allg/KlausurMerkblatt.pdf Merkblatt zur Klausur]. |
|- | |- | ||
!valign="top" |25.06.2010 || Wegen der hohen Nachfrage wurden zusätzlichen Abgabetermine für die Programmieraufgaben eingerichtet. Siehe [[#Programmieraufgaben |Programmieraufgaben]]. | !valign="top" |25.06.2010 || Wegen der hohen Nachfrage wurden zusätzlichen Abgabetermine für die Programmieraufgaben eingerichtet. Siehe [[#Programmieraufgaben |Programmieraufgaben]]. | ||
Line 33: | Line 36: | ||
= 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. |
− | + | ||
+ | = Format = | ||
+ | |||
+ | The lecture consists of practical programming excercises mainly, to be exercised by the students. The students are supposed to form teams of 2/3 people. | ||
+ | |||
+ | There will be 4 Worksheets to be worked with. Before each worksheet a lecture will be given to introduce the next worksheet and to discuss the results of the previous worksheet. | ||
+ | The results of each worksheet have to be submitted before the end of the respective deadline. After each worksheet a short evaluation of the submitted work will be done with every team. | ||
= 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 85: | Line 93: | ||
= Contents = | = Contents = | ||
− | The lab course gives an application oriented introduction to 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><li> | + | <ul> |
− | </li><li> | + | <li> Smart pointers for automated memory management in C++: |
− | </li></ul> | + | <ul> |
+ | <li> Basic principles and application scenarios of smart pointers </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> | ||
+ | </ul> | ||
<!-- | <!-- | ||
</li><li>Finite-Difference methods for spatial discretisation of the partial differential equations | </li><li>Finite-Difference methods for spatial discretisation of the partial differential equations | ||
Line 108: | Line 141: | ||
= Literature = | = Literature = | ||
− | + | <ul> | |
+ | <li> Effective C++, Scott Meyers, Addison Wesley </li> | ||
+ | <li> C++ Templates: The Complete Guide, Nicolai M. Josuttis and David Vandevoorde, Addison Wesley Longman </li> | ||
+ | </ul> | ||
<!-- | <!-- | ||
<ul><li>M. Griebel, T. Dornseifer und T. Neunhoeffer: Numerical Simulation in Fluid Dynamics: A Practical Introduction. Siam Monographs on Mathematical Modeling and Computation. SIAM, Philadelphia, 1997. | <ul><li>M. Griebel, T. Dornseifer und T. Neunhoeffer: Numerical Simulation in Fluid Dynamics: A Practical Introduction. Siam Monographs on Mathematical Modeling and Computation. SIAM, Philadelphia, 1997. |
Latest revision as of 15:29, 20 October 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.10.2010 | Unfortunately, there were not enough registrations. Thus, the lab course is canceled. |
---|---|
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.
Format
The lecture consists of practical programming excercises mainly, to be exercised by the students. The students are supposed to form teams of 2/3 people.
There will be 4 Worksheets to be worked with. Before each worksheet a lecture will be given to introduce the next worksheet and to discuss the results of the previous worksheet.
The results of each worksheet have to be submitted before the end of the respective deadline. After each worksheet a short evaluation of the submitted work will be done with every team.
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.