Masterpraktikum Scientific Computing - Advanced C++ Programming

From Sccswiki
Revision as of 12:50, 17 July 2010 by Gatzhamm (talk | contribs)
Jump to navigation Jump to search
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.