Sessions 2014

Die Sessiontitel und Abstrakts liegen nur Auszugsweise vor und werden bis 14. April finalisiert.

    Keynote Tag 1: Modern C++ development with Visual C++

    Sprecher: Tarek Madkour

    Keynote Tag 2: Modern, Mobile Apps for Android and iOS with C++

    C++ is a well-known and proven cross-platform application language but, interestingly, it is not the primary language for Android and iOS mobile app development. Embarcadero is changing that with C++Builder. This keynote sessions will discuss the new C++Builder toolchains for ARM and the full-featured framework for developing single source C++ apps for both Android and iOS. Beyond high performance mobile client apps, the C++Builder application framework delivers a modern app architecture for integrating Enterprise SQL data and custom APIs and any cloud services, including Backend as a Service (BaaS) providers like Parse and Kinvey.

    Sprecher: John Ray Thomas

    Creating Windows 8.1 Phone and Store apps using C++

    Sprecher: Tarek Madkour

    UI prototyping and development for multiple devices in C++

    Using C++ for multi-device user interface development should be pretty straightforward but since the Standard C++ Language and Library specification does not specify a user interface library its actually quite challenging. Even more challenging is the new world of mobile devices and the myriad form factor, layouts, and resolution that an application developer has to deal with. On top of that the deployment model for remote devices makes testing UI changes slower due to the increased build and turnaround time. This session will describe how C++ can be used effectively for multi-device UI development and also deliver a rapid prototyping experience to minimize the deployment time to the device for testing.

    Sprecher: John Ray Thomas

    DirectX Debugging and Profiling

    Sprecher: Daniel Griffing

    OpenMP 4.0 – Was ist neu?

    Der neuste Standard für OpenMP trägt nun die Versionsnummer 4.0 und bietet einige vielversprechende Neuerungen. Dazu zählt unter anderem die Vektorisierung von Code und das Ausführen von bestimmten Programmteilen auf externen Rechenkarten. In dieser Session werden Ihnen diese Erweiterungen mit Hilfe mehrerer C++-Beispielprogramme vorgeführt und erläutert.

    Sprecher: Bernd Marquardt

    GPU-Programmierung mit OpenCL

    Die Benutzung von Grafikkarten (GPU’s) für schnelle Berechnungen macht dann besonders viel Sinn, wenn das angewendete Verfahren auch viele Grafikkarten unterstützt. OpenCL ist ein offener Standard, der geräteunabhängig ist und somit auf vielen Standard-Grafikkarten benutzt werden kann. In der Session lernen Sie die Grundlagen der OpenCL-API, wie ein Programm mit den Daten in die GPU gebracht und ausgeführt wird. Natürlich werden auch die Performance-Vorteile betrachtet und (z.B.) mit Multi-Core-CPU’s verglichen.

    Sprecher: Bernd Marquardt

    C++14: Neu und noch einfacher als C++11

    Die C++ Standardisierung geschieht in einem rascheren Rhythmus als früher, nicht 5 Jahre für einen "Bug-Fix Release" (1998-2003) und 13 Jahre für einen neuen Sprachstandard (1988-2011), sondern ein 3 Jahresrhythmus zwischen Korrektur und "Feature Upgrade" des Standards ist nun geplant. Der C++11 Standard, der letztes Jahr von einigen Compilern vollständig implementiert wurde, wird also dieses Jahr "korrigiert".
    Dieser Vortrag gibt einen kurzen Überblick über die wichtigsten "Korrekturen". Sie lernen Neuerungen in C++ 11 und C++ 14 kennen und damit auch die Möglichkeit einfacheren und besser wartbaren C++ Code zu schreiben.

    Sprecher: Peter Sommerlad

    C++ concepts lite - Wie zukünftige Template Parameter Typisierung aussehen könnte

    Für die letzte Standardisierung mussten "Concepts" leider entfallen. Jetzt wird ein neuer Anlauf gewagt, um C++ template Parametern ein Typsystem und entsprechende frühe Prüfung von Template-Argumenten mit besseren Fehlermeldungen zu ermöglichen. Der Vortrag wird den aktuellen Stand der Diskussionen und der entsprechenden Sprachfeatures vorstellen und damit einen Ausblick geben, was in diesem Jahrzehnt noch vom C++ Standard für Concepts zu erwarten ist.

    Sprecher: Peter Sommerlad

    Reprise C++11 (was ist bei C++11/14 wirklich anders)

    Sprecher: Peter Sommerlad

    C++14: the new Standard

    So have you heard of the next C++ Standard? No, it is not C++11. Even though C++11 has just been ratified, C++14 will likely replace C++11 by next year. By now, we have enough experience with C++11 to know where we are missing various fingers and toes such as:

    • Why do we not have move capture in lambdas?
    • How about some real user-defined literal suffixes?
    • Why did we stop with monomorphic lambdas?
    • If lambda returns can be deduced, why not normal functions?
    • Could we get digit separators?

    C++14 will be more than a bug-fix release, and will contain some important enhancements on top of C++11. It will remove some of the major annoyances from C++11, that we already know of. But more importantly, how will this change the language, library and some important idioms?

    Sprecher: Michael Wong

    OpenMP 4.0, with Accelerator support

    As the number of threads continues to increase, there is a growing pressure on applications to exploit more of the available parallelism in their codes, including coarse-, medium-, and fine-grain parallelism. OpenMP has been one of the dominant shared-memory programming models but is evolving beyond that with a new Mission Statement making it well suited for exploiting medium and fine grain parallelism. OpenMP research has focused on application tuning, compiler optimizations, programming-model extensions, and porting to distributed memory platforms. OpenMP 4.0 exhibits many of these features to support the next step in exascale computing. I will discuss a few of these key features including Affinity, Accelerator, Tasks dependencies, Atomics, and Tools support. I will also give an indication of the future direction of OpenMP 5.0.

    Sprecher: Michael Wong

    Connect your native App to the cloud with the C++ REST SDK Casablanca

    The C++ REST SDK (codename "Casablanca") is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This session demonstrates how C++ developers can take advantage of the radical shift in software architecture that cloud computing represents and how easily they can integrate this functionality into their Applications.

    Sprecher: Daniel Griffing

    Agile C++ Teams with TFS - Backlog Management and Planning Tools

    Das Backlog ist die zentrale Instanz einer jeden Organisation, die Produktentwicklung betreibt. Ob flach oder hierarchisch, ob ein Team oder mehrere Teams hängt ganz von der Komplexität des Produktes und der Organisation ab. TFS 2013 bietet mit den sogenannten Portfolio Backlogs einen Möglichkeit hierarchische Backlog Strukturen einfacher abzubilden. Teams haben die Möglichkeit, Ihre eigene Ansicht in einem komplexen Backlog zu definieren. Weiter geht der Vortag auf Funktionalitäten ein, welche die Planung und das Monitoring des Projektes erleichtern wie z.B. die Unterstützung für Kanban, das Task Board für den Daily Scrum, Reporting oder auch integrierte Feedback Loops als auch Storyboarding.

    Sprecher: Christian Binder

    Rich client migration from MFC to C++ 11 & XAML – Real Live Scenarios

    The new Windows Native Applications that are built using C++ form a key pillar in the context of modern application development. This is especially important when you want to create or migrate the best quality and highest-performing apps capable of running on old and new hardware which require a long battery life and great performance on slower processors. Focused on how XAML support for C++ in Visual Studio allows you to create fast and fluid Applications while taking advantage of your old Code and the power and performance characteristics of C++. Will cover also how to use C++ existing code to target the new Windows Desktop or Runtime and to integrate Native Web Services or Cloud specific functionality. Beyond just learning how to write apps in C++, you will see how to create new libraries or reuse existing components that you can seamlessly combine with Desktop or Metro style apps using C#, and other C++ apps.

    Sprecher: Cosmin Dumitru

    Reducing the Build-Test-Deploy Cycle from Hours to Minutes at Cellebrite

    This session will present a highly scalable deployment architecture use case at Cellebrite to achieving 10 times faster development cycles where testing , regressions and sanity are executed though a CI and Agile development management scenario. This case study will illustrate increased CI performance, with best practices to achieving faster cycles. By using modern virtualization, distribution and build management and automation, every build server can be better utilized and be better managed. This session will highlight techniques to distribute the build process, achieve faster compilations, and much faster error detection to support better Agile development. Attendees will learn how to better integrate between Development Tools and CI platforms to achieve a highly scalable ALM processes.

    Sprecher: Uzi Lahav-Kohn

    Creating Windows 8.1 Phone and Store apps using C++

    Lernen sie die Möglichkeiten für C++ Entwickler bei der Erstellung von Windows Phone 8.1 oder Windows Store Apps kennen. Erfahren Sie mehr über die Neuerungen dieser Plattformen und welche Möglichkeiten die Entwicklungstools Ihnen bieten.

    Sprecher: Patrick Getzmann


    Der neue C++ Standard (C++11) veränderte die Sprache und die dazugehörende Standard - Bibliothek. Nachdem viel auf die Sprachänderungen eingegangen wurde, ist es an der Zeit, sich die Änderungen an der Standard – Bibliothek näher anzusehen. Viele der neuen Spracherweiterungen entstanden aus den Anforderungen an die Bibliotheksentwicklung (Beispiel R-Value References). Daher hilft ein gutes Verständnis der Änderungen in den Bibliotheken, auch die Änderungen an der Sprache besser zu verstehen.


    • Neue Sprachefeatures im Kontext der STL container
    • Neue Container and Algorithmen
    • Iterator Range access
    • und verwandte Themen

    Sprecher: Sven Johannsen


    Ist das Kind in den Brunnen gefallen, geht es darum, es möglichst schnell wieder herauszuholen; was auch mal schnell in Hektik ausarten kann. Ähnlich ist es beim Debugging. Debugging sollte nicht erst beginnen, wenn ein Fehler auftritt. Dieser muss dann schnell behoben werden und auch hier kommt es häufig zu hektischen Situationen. Diese allerdings können vermieden werden, wenn bereits während der Umsetzung der Anwendung an Debugging gedacht wird und einige vorbereitende Maßnahmen in die Anwendung mit eingebaut werden. Diese Session zeigt Ihnen, was Windows alles im Koffer hat, um im Falle des Falle gut vorbereitet zu sein. Lernen Sie, was für umfangreiche Informationen Ihnen Ihre Anwendung im Fehlerfalle bereits mitteilen kann, ohne dass Sie eine Debuggingsession im Visual Studio starten müssen.

    Sprecher: Matthias Wedemeyer

    Application Monitoring mit Boardmitteln

    Es gibt immer wieder Situationen da steht man vor den beiden Fragen: „Wie kann dies Ergebnis Zustandekommen? Wie wurde die Funktion bloß aufgerufen?“ . In solcher einer Situation kommt dann normalerweise noch hinzu, dass nicht die Möglichkeit besteht, notwendige Analysetools zu installieren. Natürlich haben diese Tools ihre Daseinsberechtigung, mit relativ wenig Aufwand können Sie allerdings Analysenfunktionen für verschiedene Aufgaben selbst schreiben, die zudem auf Ihre ganz persönlichen Bedürfnisse zugeschnitten sind. Diese Session zeigt Ihnen, wie Sie auf einfachem Wege Monitoringfunktionen umsetzen um festzustellen, mit welchen Parametern eine Funktion aufgerufen wurde, wie der aktuelle Speicherinhalt Ihrer Anwendung aussieht oder wann eine bestimmte Funktion aufgerufen wird. Lernen Sie dabei ganz nebenbei noch den internen Aufbau einer Windowsanwendung kennen.

    Sprecher: Matthias Wedemeyer

    Multithreading mit Boost und TBB

    Dieser Vortrag motiviert die Vorteile beider Open Source­Bibliotheken und deren spezifische Einsatzgebiete. Unabhängig vom neuen C++­11 Standard bieten sie eine mächtige plattformunabhängige Basis zur Implementierung paralleler Anwendungen und können leicht in bereits existierenden C++­03 Code integriert werden.

    Sprecher: Patrick Charrier

    Debugging Tools for Windows

    Neben Visual Studio sind die "Debugging Tools for Windows" die nützlichsten Werkzeuge um Fehlern oder schwierigen Problemen auf die Schliche zu kommen. Gerade für native Code gibt es hier viel Unterstützung. Leider machen viele Entwickler einen großen Bogen um diese unterschätzten Werkzeuge und verschenken damit viele Möglichkeiten. Diese Session soll eine Einführung in die verschiedenen Tools geben. Neben dem Hauptwerkzeug "WinDbg" und dessen Möglichkeiten, soll es auch um die anderen nützlichen Tools gehen um z.B. Speicherlecks zu finden, Symbole zu verwalten oder die eingebauten Flags von Windows zu verwenden um den Entwickler bei seiner Arbeit zu unterstützen.

    Sprecher: Jochen Kalmbach

    Exception Safety Guarantees in C++

    When learning programming C++ there is the point where exceptions and try-catch are introduced. The classes I've seen just explain the language syntax around throw and catch, but don't go tell you that your code usually doesn't need try-catch. The talk discusses what the basic, strong and nofail exception safety guarantees are and how to implement them in C++ without much try-catch. Of course the 'resource aquisition is initialization' (RAII) principle will be the solution here. In detail the talk will cover what STL containers and other classes do in case of exceptions and what that means regarding the exception safety guarantees. The distinction between copyable and move-only types is of interest here. Canonical implementations for copy/move constructors and copy/move assignment will be shown which enable to write own classes with value-semantics. This provides for exception safe use of these classes.

    Sprecher: Frank Birbacher

    Embedded Programmierung mit C++

    Embedded Programmierung ist eine der Domänen von C++. Modernes C++ kann mit vielen und verbesserten Featuren für die embedded Welt aufwarten, so dass Bjarne Stroustrup Aussage zu C++11 nicht verwundert:"makes C++ even better for embedded systems programming and high-performance computation". Doch was sind die Feature, die modernes C++ zu so einer mächtigen Programmiersprache für die besonderen Sicherheits- , Echtzeits-, Ressourcen- und Hardwareanforderungen der embedded Welt macht?Lassen Sie sich überraschen, was C++ mit konstanten Ausdrücken, benutzerdefinierten Literalen und den vielen Facetten des Speichermanagement zu bieten hat. Das ist aber noch nicht die ganze Geschichte, und auch nicht nur für den Entwickler in der embedded Welt.

    Sprecher: Rainer Grimm

    Funktionale Programmierung mit C++

    C++ ist eine Multiparadigmen-Programmiersprache. Bei der Wahl seiner Mittel steht es dem Programmierer frei, strukturierte, prozedurale, objektorientierte, generische, generative oder auch funktionale Techniken einzusetzen. Insbesondere das funktionale Programmierparadigma ist mit Lambda-Funktionen, Variadic Templates und auch den neuen STL-Funktionen bind und function deutlich mächtiger in C++11 geworden. Diese Vorstellung will zum einen in die funktionale Denkweise einführen und will zum anderen zeigen, wie sich funktionale Techniken effizient in modernen C++ anwenden lassen.

    Sprecher: Rainer Grimm

    Produktive wissenschaftliche Programmierung mit MTL4

    Die Matrix-Template-Library v4 (MTL4) hat sich vielen Anwendungen bewährt, in denen es auf Produktivität und Performance ankommt. Und dies in einer Zeit, in der wissenschaftliche Software immer komplexer wird. Neue Modelle und Algorithmen, möglichst adaptiv in allen Aspekten; gleichzeitig sollen die verschiedensten Hardwarearchitekturen unterstützt werden: Multicore, Manycore, Cell-Prozessoren, GPUs, FPGAs und massiv parallele Plattformen der vorgenannten. Um in diesem informatischen Horrorszenarium eine kombinatorische Explosion der Softwarekomplexität zu verhindern, nutzt die MTL4 moderne Programmierparadigmen wie generische und Meta-Programmierung. Diese Techniken erlauben uns, dem Wissenschaftler ein intuitives Interface zur Verfügung zu stellen, so dass er sich auf seine Modelle und Algorithmen konzentrieren kann. Gleichzeitig wird durch neue Methoden wie Meta-Tuning Portabilität und optimale Performanz auf den unterschiedlichsten Plattformen gewährleistet. An ausgewählten Beispielen wird die Einfachheit der Programmierung, dieLeistungsfähigkeit und Portabilität demonstriert.

    Sprecher: Dr. Peter Gottschling

    Refactoring - Cause it pays off in the long run

    Not everyone has the possibility of working on Greenfield projects or doing TDD or BDD. Many of us often end up having to work with legacy code bases that have little notion of what SOLID design principles are and unit tests are non-existent. It can be daunting to have to maintain these types of systems. However, with a little bit of effort, we can try and make the best of the situation. We can combine some well-known refactoring techniques, along with code analysis and design concepts to improve the quality of the code.

    Sprecher: Hadi Hariri

    Cross-Platform C++ Entwicklung auf Intel® Architektur

    Intel’s Prozessoren sind heute nicht nur in Notebooks, PCs oder Server zu finden, sondern auch immer mehr in 2-in-1 (Ultrabook + Tablet), Tablets und Smartphones. In dieser Session lernen Sie welche Software-Enwicklungstools Intel bietet, um performante C++ Applikationen für die verschiedenen Plattformen, sowohl auf Windows, Linux und Android, zu entwickeln.

    Sprecher: Ralph de Wargny

    Neue Entwicklungen in C++ Parallele Programmierung auf Intel® Plattformen

    Intel’s Prozessoren bieten allerhöchste Performance in allen Klassen, von Intel Core i5/i7, über Xeon bis hin zu Xeon Phi, mit einer immer wachsenden Anzahl von Prozessorkernen. In dieser Session lernen Sie wie Sie heute in C++ für die Intel-Prozessorarchitektur optimal und mit maximaler Performance Applikationen entwickeln.

    Sprecher: Michael Steyer

Diese Liste kann noch ergänzt bzw. verändert werden.