Suche

zur Hauptseite

Institute for Advanced Simulation (IAS)

Navigation und Service


Trainingskurs "Advanced C++ with Focus on Software Engineering"

Anfang
06.06.2017 09:00 Uhr
Ende
09.06.2017 16:30 Uhr
Veranstaltungsort
Jülich Supercomputing Centre, Rotunde Geb. 16.4, R. 301
Zielgruppe
Wissenschaftler, die C++ effizient nutzen wollen
Inhalt:

This advanced C++ training is a course on object-oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. Additionally, the course gives insight into kernel development with C++. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, maintainable, and efficient C++ code.

After this course, participants will:

  • have a detailed understanding of the essential OO design principles
  • have gained knowledge about fundamental C++ programming concepts and idioms
  • be able to properly design classes and class interfaces
  • know about the importance of exception safe programming
  • have gained insight into kernel development with C++
  • avoid the usual pitfalls in the context of inheritance
  • comprehend the advantages of non-intrusive design
  • understand the virtue of clean code

Agenda:

1st day schedule (9:00 - 17:30)

  • Essential Object-Oriented Design Principles

    • The core of object-oriented programming
    • The SOLID principles
  • Concepts and the STL

    • Overview of the STL
    • Proper use of the STL

2nd day schedule (9:00 - 17:30)

  • Class Design

    • Proper Handling of Member Data
    • Proper Interface Design
    • Compiler Generated Functions
    • Move Semantics
    • Proper Design of Polymorphic Interfaces
    • Const Correctness
    • Visibility vs. Accessibility

3rd day schedule (9:00 - 17:30)

  • Robust Code

    • Error Propagation
    • Exception Safety
    • RAII
    • Handling Legacy Code
  • Proper Use of Dynamic Polymorphism

    • Non-public Inheritance
    • Public Inheritance
  • Dependency Breaking Techniques

    • Breaking Include Dependencies
    • Classical Design Patterns Revisited

4th day schedule (9:00 - 16:30)

  • Non-Intrusive Design
  • Kernel development with C++

    • Choice of the proper data structures
    • Loop unrolling
    • Blocking
    • SIMD vectorization
Voraussetzungen:
Course participants should have a solid base on C++ and at least one year of experience with the language is needed.
Participants are requested to bring their own notebook. The installed compiler should be at least C++ 11, or even better C++ 14 or C++ 17.
Sprache:
Der Kurs wird auf Englisch gehalten.
Dauer:
4 Tage
Zeit::
6. - 9. Juni 2017, 9:00-17:30
Ort:
Jülich Supercomputing Centre, Rotunde Geb. 16.4, R. 301
Teilnehmerzahl:
maximal 30 Teilnehmer
Referent:
Klaus Iglberger, Erlangen
Anmeldung:
Der Kurs ist ausgebucht.



Servicemenü

Homepage