• Zum Inhalt springen  (Accesskey: 1)
  • Zur Navigation springen  (Accesskey: 2)
  • Zur Suche springen  (Accesskey: 7)
Seitennavigation schließen
EN
Seitennavigation öffnen
  • TU Wien
    • Übersicht
    • Aktuelles
    • fuTUre fit
    • Über die TUW
    • Organisation
    • TUW für alle
    • Arbeiten an der TUW
    • TUW Community
    • Campus
    • Kontakt
  • Studium
    • Übersicht
    • Studienangebot
    • Studieninteressierte
    • Studienanfänger_innen
    • Studierende
    • International Studieren
    • Lehrende , öffnet eine externe URL in einem neuen Fenster
    • Schüler_innen
    • Best Teaching Awards 2025
  • Forschung
    • Übersicht
    • Profil
    • News
    • Events
    • Facilities
    • Erfolge
    • Netzwerke
    • TUW Doctoral Center
    • FTI Support
    • TUW interne Fördermöglichkeiten
    • Datenbanken
  • Kooperationen
    • Übersicht
    • Erfindungen, Patente, Kommerzialisierung
    • Spenden und Unterstützen
    • Start-ups
    • Technology Offers
    • Wirtschaftskooperationen
    • Center for Technology and Society , öffnet eine externe URL in einem neuen Fenster
    • Universitätsallianzen
    • TU Austria , öffnet eine externe URL in einem neuen Fenster
    • EULIST
  • Services
    • Übersicht
    • Bibliothek
    • Campus IT-Services
    • Campus-Services
    • Eventmanagement
    • Medien
    • Meldesystem
    • Newsletter
  • Intern
    • Übersicht
    • Portal (TISS, SAP, TYPO3,...) , öffnet eine externe URL in einem neuen Fenster

externe Veranstaltungen

  1. Forschung /
  2. Events /
  3. externe Veranstaltungen /

zurück zum Forschungs-Veranstaltungskalender

 

20. März 2023, 09:00 bis 23. März 2023 16:30

Online Course - Modern C++ Software Design (Advanced)

Workshop

This advanced C++ training is a course on software design with the C++ programming language. The focus of the training are the essential 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 provides insight into different design strategies (object-oriented programming, functional programming, generic programming) and the philosophy of “Modern C++” and teaches guidelines to develop mature, robust, maintainable, and efficient C++ code.

 

Please note that this course is not a tutorial on any specific C++ library or tool, but teaches good, mature software design with the C++ itself.

Content Levels: Beginners = 3:00h (13%) + Intermediate = 8:00h (35%) + Advanced = 12:00h (52%)

Prerequisites:

At least two to three years of experience with the language is needed. This includes a solid knowledge of the syntax of C++, experience with the standard library (std::vector, std::list, …), hands-on experience with both template-based and inheritance-based designs and some experience with design patterns.

Gained Skills:

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 value-based design
- understand the virtue of clean code

Programming Tasks:

Participants are expected to use their own machines. Any operating system (Windows, Linux, MacOS, ...), any IDE/editor (MS Visual Studio, CLion, vi, emacs, ...) and any compiler capable of at least C++14 (GCC, Clang, MSVC, ...) can be used. The programming tasks, including both Makefiles and CMake files, will be distributed before the course.

Agenda & Content:

1st day course schedule (9:00 - 16:30, lunch break 12:30 - 13:30)

The Basic Design Principles

- Defining a Goal
- The SOLID Principles

Concepts and the STL

- Motivation
- STL Algorithms
- STL Allocators

2nd day course schedule (9:00 - 16:30, lunch break 12:30 - 13:30)

Advanced Templates

- Type Traits
- SFINAE
- C++20 Concepts

Class Design

- Compiler Generated Functions
- Exception Safety
- Copy Elision

3rd day course schedule (9:00 - 16:30, lunch break 12:30 - 13:30)

Class Design

- Move Semantics
- Return Values and Parameters
- Member Data
- Applied Class Design
- Visibility vs. Accessibility

Dynamic Polymorphism

- The Perils of Inheritance

4th day course schedule (9:00 - 15:30, lunch break 12:30 - 13:30)

Dynamic Polymorphism

- Value Semantics
   - Visitor (Classic vs. Modern)
   - Strategy (Classic vs. Modern)
   - Type Erasure

- Public Inheritance
  - Examples for good public inheritance
  - Examples for bad public inheritance

- Surprises in Inheritance Hierarchies

Design of HPC Components

- Motivation
- SIMD Basics
- Vectors and Matrices
- Dense Matrix/Dense Vector Multiplication

Course Format:

This course will be delivered as a LIVE ONLINE COURSE (using Zoom) for remote participation.

Lecturer:

Klaus Iglberger (External)

Language:

English

Date, Time, and Location:

20. - 23.03.2023, 09:00 - 16:30 (23.03. until 15:30) CET, LIVE ONLINE COURSE

Course Material:

The course material will be available for registered attendees only.

Prices and Eligibility:

Different course fees apply:

- VSC users: none
- Students and members of Austrian universities and public research institutes: none
- Students and members of other universities and public research institutes: 240 €
- Others: 800 €

Information about payment will be provided with the confirmation email.

Kalendereintrag

Veranstaltung Details

Veranstaltungsort
TU
Wien Zoom
Veranstalter
Vienna Scientific Cluster
Claudia Blaas-Schenner and Ulrike Faltin
training@vsc.ac.at
Öffentlich
Ja
Kostenpflichtig
Nein
Anmeldung erforderlich
Ja

Registration for this course starts on January 11, 2023 on the VSC website: vsc.ac.at/training/2023/C++A/

Registration period is from 11 January to 12 March 2023, and follows the "first come – first served" principle.

Following your successful registration, you will receive further information approx. 1 week before the course. For the online course we can take a maximum of 40 persons. Additional registrations will be added to a waiting list.

Zur Fußzeile springen

TU Wien

  • Aktuelles
  • fuTUre fit
  • Über die TUW
  • Organisation
  • Corona
  • TUW für alle
  • Arbeiten an der TUW
  • TUW Community
  • Campus
  • Kontakt

Studium

  • News
  • Studienangebot
  • Zulassung
  • Studieren an der TUW
  • Student Support
  • Lehren an der TUW
  • International
  • Schüler_innen
  • Academy for Continuing Education
  • ÖH-Wahl 2025
  • Best Teaching Awards 2025

Forschung

  • Profil
  • News
  • Events
  • Facilities
  • Erfolge
  • Netzwerke
  • TUW Doctoral Center
  • FTI Support
  • TUW interne Fördermöglichkeiten
  • Datenbanken

Kooperationen

  • Erfindungen, Patente, Kommerzialisierung
  • Spenden und Unterstützen
  • Start-ups
  • Technology Offers
  • Wirtschaftskooperationen
  • Center for Technology and Society, öffnet eine externe URL in einem neuen Fenster
  • Universitätsallianzen
  • TU Austria, öffnet eine externe URL in einem neuen Fenster
  • EULIST

Services

  • Bibliothek
  • Campus IT-Services
  • Campus-Services
  • Eventmanagement
  • Karriere, öffnet eine externe URL in einem neuen Fenster
  • Medien
  • Meldesystem
  • Newsletter

Intern

  • Portal (TISS, SAP, TYPO3,...), öffnet eine externe URL in einem neuen Fenster

© TU Wien  # 12508

  • Impressum
  • Barrierefreiheitserklärung
  • Datenschutzerklärung (PDF)
  • Cookieeinstellungen
  • Zur 1. Menü Ebene Forschung
  • Zurück zur letzten Ebene: Events
  • externe Veranstaltungen
  • TechForum: Millstatt TechForum: Millstatt
  • Blickpunkt Forschung Blickpunkt Forschung
  • Facebook
  • LinkedIn
  • YouTube
  • Instagram
  • Bluesky

Hinweis zu Cookies und anderen Techniken

Unsere Website verwendet Cookies und bindet Inhalte von Drittanbietern ein, um die grundlegende Funktionalität unserer Website zu gewährleisten sowie die Zugriffe auf unserer Website zu analysieren und um Funktionen für soziale Medien und zielgerichtete Werbung anbieten zu können. Hierzu ist es nötig Informationen an die jeweiligen Dienstanbieter weiterzugeben. Weitere Informationen zu Cookies und Inhalten von Drittanbietern auf der Website finden Sie in unserer Datenschutzerklärung.

Erforderlich

Diese Cookies werden für eine reibungslose Funktion unserer Website benötigt.

Name Zweck Ablauf Typ Anbieter
CookieConsent Speichert Ihre Einstellungen zur Verwendung von Cookies auf dieser Website. 1 Jahr HTML Homepage TU Wien
SimpleSAML Wird benötigt, um die Sessions der eingeloggten Benutzer_innen voneinander unterscheiden zu können. Session HTTP Login TU Wien
SimpleSAMLAuthToken Wird benötigt, um die Sessions der eingeloggten Benutzer_innen voneinander unterscheiden zu können. Session HTTP Login TU Wien
fe_typo_user Wird benötigt, damit im Falle eines Typo3-Frontend-Logins die Session-ID wiedererkannt wird um Zugang zu geschützten Bereichen zu gewähren. Session HTTP Homepage TU Wien
staticfilecache Wird benötigt, um die Auslieferungszeit der Website zu optimieren. Session HTTP Homepage TU Wien
JESSIONSID Wird benötigt, damit im Falle eines LectureTube-Logins die Session-ID wiedererkannt wird um Zugang zu geschützten Bereichen zu gewähren. Session HTTP LectureTube TU Wien
_shibsession_lecturetube Wird benötigt, um die Sessions der eingeloggten Benutzer_innen voneinander unterscheiden zu können. Session HTTP LectureTube TU Wien
Webstatistiken

Mit Hilfe dieser Cookies können wir unser Angebot laufend verbessern und unsere Website an Ihre Bedürfnisse anpassen. Dabei werden pseudonymisierte Daten über die Websitenutzung gesammelt und statistisch ausgewertet.

Name Zweck Ablauf Typ Anbieter
_pk_id Wird verwendet, um ein paar Details über den Benutzer wie die eindeutige Besucher-ID zu speichern. 13 Monate HTML Matomo TU Wien
_pk_ref Wird benutzt, um die Informationen der Herkunftswebsite des Benutzers zu speichern. 6 Monate HTML Matomo TU Wien
_pk_ses Wird benötigt, um vorübergehende Daten des Besuchs zu speichern. 30 Minuten HTML Matomo TU Wien
Marketing

Mithilfe dieser Cookies und Drittanbieterinhalte sind wir bemüht, unser Angebot für Sie zu verbessern. Mittels pseudonymisierter Daten von Websitenutzern kann der Nutzerfluss analysiert und beurteilt werden. Dies gibt uns die Möglichkeit, Werbe- und Websiteinhalte zu optimieren.

Name Zweck Ablauf Typ Anbieter
facebook Wird verwendet, um Anzeigen auszuliefern oder Retargeting zu ermöglichen 90 Tage HTTP Meta
__fb_chat_plugin Wird zum Speichern und Verfolgen von Interaktionen (Marketing/Tracking) benötigt. Persistent HTTP Meta
_js_datr Wird benötigt, um Benutzer_inneneinstellungen zu speichern. 2 Jahre HTTP Meta
_fbc Wird benötigt, um den letzten Besuch zu speichern (Marketing/Tracking). 2 Jahre HTTP Meta
fbm Wird benötigt, um Kontodaten zu speichern (Marketing/Tracking). 1 Jahr HTTP Meta
xs Wird zum Speichern einer eindeutigen Sitzungs-ID benötigt (Marketing/Tracking). 1 Jahr HTTP Meta
wd Wird benötigt, um die Bildschirmauflösung zu loggen. 1 Woche HTTP Meta
fr Wird benötigt, um Anzeigen zu schalten und deren Relevanz zu messen und zu verbessern. 3 Monate HTTP Meta
act Wird benötigt, um angemeldete Benutzer_innen zu speichern (Marketing/Tracking). 90 Tage HTTP Meta
_fbp Wird zum Speichern und Verfolgen von Besuchen auf verschiedenen Websites benötigt (Marketing/Tracking). 3 Monate HTTP Meta
datr Wird benötigt, um den Browser für Sicherheits- und Website-Integritätszwecke, einschließlich der Wiederherstellung von Konten und der Identifizierung von potenziell gefährdeten Konten zu identifizieren. 2 Jahre HTTP Meta
dpr Wird für Analysezwecke verwendet. Technische Parameter werden protokolliert (z. B. Seitenverhältnis und Abmessungen des Bildschirms), damit Facebook-Apps korrekt angezeigt werden können. 1 Woche HTTP Meta
sb Wird benötigt, um Browserdetails und Sicherheitsinformationen des Facebook-Kontos zu speichern. 2 Jahre HTTP Meta
dbln Wird benötigt, um Browserdetails und Sicherheitsinformationen des Facebook-Kontos zu speichern. 2 Jahre HTTP Meta
spin Wird für Werbezwecke und Berichterstattung über soziale Kampagnen benötigt. Session HTTP Meta
presence Enthält den "Chat"-Status eingeloggter Benutzer_innen. 1 Monat HTTP Meta
cppo Wird für statistische Zwecke benötigt. 90 Tage HTTP Meta
locale Wird benötigt, um die Spracheinstellungen zu speichern. Session HTTP Meta
pl Wird für Facebook Pixel benötigt. 2 Jahre HTTP Meta
lu Wird für Facebook Pixel benötigt. 2 Jahre HTTP Meta
c_user Wird für Facebook Pixel benötigt. 3 Monate HTTP Meta
bcookie Wird zur Speicherung von Browserdaten benötigt (Marketing/Tracking). 2 Jahre HTTP LinkedIn
li_oatml Wird verwendet, um LinkedIn-Mitglieder außerhalb von LinkedIn zu Werbe- und Analysezwecken zu identifizieren. 1 Monat HTTP LinkedIn
BizographicsOptOut Wird zum Speichern von Datenschutzeinstellungen benötigt. 10 Jahre HTTP LinkedIn
li_sugr Wird zur Speicherung von Browserdaten benötigt (Marketing/Tracking). 3 Monate HTTP LinkedIn
UserMatchHistory Wird zur Bereitstellung von Werbeeinblendungen oder Retargeting benötigt (Marketing/Tracking). 30 Tage HTTP LinkedIn
linkedin_oauth_ Wird benötigt, um seitenübergreifende Funktionen bereitzustellen. Session HTTP LinkedIn
lidc Wird benötigt, um durchgeführte Aktionen auf der Website zu speichern (Marketing/Tracking). 1 Tag HTTP LinkedIn
bscookie Wird benötigt, um durchgeführte Aktionen auf der Website zu speichern (Marketing/Tracking). 2 Jahre HTTP LinkedIn
X-LI-IDC Wird benötigt, um seitenübergreifende Funktionen bereitzustellen (Marketing/Tracking). Session HTTP LinkedIn
AnalyticsSyncHistory Speichert den Zeitpunkt, zu dem der/die Benutzer_in mit dem "lms_analytics"-Cookie synchronisiert wurde. 30 Tage HTTP LinkedIn
lms_ads Wird benötigt, um LinkedIn-Mitglieder außerhalb von LinkedIn zu identifizieren. 30 Tage HTTP LinkedIn
lms_analytics Wird benötigt, um LinkedIn-Mitglieder zu Analysezwecken zu identifizieren. 30 Tage HTTP LinkedIn
li_fat_id Wird für eine indirekte Mitgliederidentifikation benötigt, die für Conversion Tracking, Retargeting und Analysen verwendet wird. 30 Tage HTTP LinkedIn
U Wird benötigt, um den Browser zu identifizieren. 3 Monate HTTP LinkedIn
_guid Wird benötigt, um ein LinkedIn-Mitglied für Werbung über Google Ads zu identifizieren. 90 Tage HTTP LinkedIn