• Skip to content  (Accesskey: 1)
  • Skip to navigation  (Accesskey: 2)
  • Skip to search  (Accesskey: 7)
Close page navigation
DE
Open page navigation
  • TU Wien
    • Overview
    • News
    • fuTUre fit
    • About TU Wien
    • Organisation
    • A university for all
    • Working at TUW
    • TUW Community
    • Campus
    • Contact
  • Studies
    • Overview
    • Studies
    • Prospective Students
    • New Students
    • Students
    • Studying Internationally
    • Teaching Staff , opens an external URL in a new window
    • Pupils
    • Best Teaching Awards 2025
  • Research
    • Overview
    • Profile
    • News
    • Events
    • Facilities
    • Successes
    • Networks
    • TUW Doctoral Center
    • RTI support
    • Funding opportunities
    • Databases
  • Partnerships
    • Overview
    • Inventions, Patents, Commercialization
    • Giving and Support
    • Start-ups
    • Technology Offers
    • Industry Relations
    • Center for Technology and Society , opens an external URL in a new window
    • University Alliances
    • TU Austria , opens an external URL in a new window
    • EULIST
  • Services
    • Overview
    • Library
    • Campus IT-Services
    • Campus services
    • Eventmanagement
    • Media
    • Reporting system
    • Newsletter
  • Internal
    • Overview
    • Portal (TISS, SAP, TYPO3,...) , opens an external URL in a new window

Research Events

  1. Research /
  2. Events /
  3. Detail /

back to the research event calendar

 

17. October 2022, 09:00 until 20. October 2022 16:30

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

Other

This intermediate C++ training is a course on software development 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. The course will give insight into the different aspects of C++ (object-oriented programming, functional programming, generic programming) and will teach 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 = 8:00h (35%) + Intermediate = 12:00h (52%) + Advanced = 3:00h (13%)

We provide two types of C++ courses with two different levels of prerequisites:

intermediate C++: October 17-20, 2022 (this course)
advanced C++: March 20-23, 2023 (https://vsc.ac.at/training/2023/c-a/, opens an external URL in a new window)

Prerequisites:

Prerequisites intermediate C++ (this course)

At least one year of experience with the language is needed. This includes a good understanding of the basic mechanics (header files, source files, compilation), good knowledge of the syntax of C++ (e.g. pointers and references, loops, conditionals, classes, ...), basic features (constructors, destructors, ...), and some prior experience with templates and inheritance.

Prerequisites advanced C++ (other course type)
 
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.

Please choose the course type that fits best to you!

Gained Skills:

After this course, participants will:

• have gained knowledge about fundamental C++ programming concepts and idioms
• have a detailed understanding of template-based programming
• be able to properly design classes and class interfaces
• know about the importance of exception safe programming
• 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)

Concepts and the STL

• Overview of the STL
• Proper use of the STL
• Iterators
• Algorithms
• Containers
• Allocators

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

C++ Templates

• Function Templates
• Class Templates
• Variadic Templates
• Template Specialization

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

Class Design

• Compiler Generated Functions
• Move Semantics
• Proper Handling of Member Data
• Proper Design of Member Functions
• Strong types
• Const Correctness
• Visibility vs. Accessibility

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

Robust Code

• Error Propagation
• Exception Safety
• RAII
•  Handling Legacy Code

Proper Use of Dynamic Polymorphism

• The Perils of Inheritance
• Value Semantics
• Public Inheritance
• Non-public Inheritance
• Surprises in Object Hierarchies

Classical Design Patterns Revisited

• Strategy
• Visitor

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:

17. - 20.10.2022, 09:00 - 16:30 (20.10. until 15:30) CEST, LIVE ONLINE COURSE (using Zoom)

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.

(*) Austrian SMEs can get a funding of 80% of the course fee via Digital Skills Schecks Initiative (https://www.ffg.at/ausschreibungen/DigitalSkillsSchecks-2-Ausschreibung, opens an external URL in a new window)

Course Material:

The course material will be available for registered attendees only.

Calendar entry

Event details

Event location
TU Wien
Zoom, Online
Organiser
Vienna Scientific Cluster
Claudia Blaas-Schenner and Ulrike Faltin
training@vsc.ac.at
More Information
https://vsc.ac.at/training/2022/C++I/
Public
Yes
Entrance fee
No
Registration required
Yes

Registration form: https://vsc.ac.at/training/registration/C++/, opens an external URL in a new window

Registration period is from 8 Aug 2022 to 9 Oct 2022, 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.

Skip to footer

TU Wien

  • News
  • fuTUre fit
  • About TU Wien
  • Organisation
  • Corona
  • A university for all
  • Working at TUW
  • TUW Community
  • Campus
  • Contact

Studies

  • News
  • Studies
  • Admission
  • Studying at TU Wien
  • Student Support
  • Teaching at TU Wien
  • International
  • Pupils
  • Continuing Education
  • ÖH Elections 2025
  • Best Teaching Awards 2025

Research

  • Profile
  • News
  • Events
  • Facilities
  • Successes
  • Networks
  • TUW Doctoral Center
  • RTI support
  • Funding opportunities
  • Databases

Partnerships

  • Inventions, Patents, Commercialization
  • Giving and Support
  • Start-ups
  • Technology Offers
  • Industry Relations
  • Center for Technology and Society, opens an external URL in a new window
  • University Alliances
  • TU Austria, opens an external URL in a new window
  • EULIST

Services

  • Library
  • Campus IT-Services
  • Campus services
  • Eventmanagement
  • Media
  • Reporting system
  • Newsletter

Internal

  • Portal (TISS, SAP, TYPO3,...), opens an external URL in a new window

© TU Wien  # 12508

  • Legal notice
  • Accessibility Declaration
  • Data Protection Declaration (PDF)
  • Cookie settings
  • Top menu level Research
  • Back to: Events
  • Detail
  • Facebook
  • LinkedIn
  • YouTube
  • Instagram
  • Bluesky

About Cookies and other techniques

Our website uses cookies and integrates content from third-party providers to ensure you get the best experience on our website, for analytical purposes, to provide social media features, and for targeted advertising. This it is necessary in order to pass information on to respective service providers. If you would like additional information about cookies and content from third-party providers on this website, please see our Data protection declaration.

Mandatory

These cookies are required to help our website run smoothly.

Name Purpose Lifetime Type Provider
CookieConsent Saves your settings for the use of cookies on this website. 1 year HTML Homepage TU Wien
SimpleSAML This is needed to distinguish between the sessions of the logged-in users. session HTTP Login TU Wien
SimpleSAMLAuthToken This is needed to distinguish between the sessions of the logged-in users. session HTTP Login TU Wien
fe_typo_user Is needed so that in case of a Typo3 frontend login the session ID is recognized to grant access to protected areas. session HTTP Homepage TU Wien
staticfilecache Is needed to optimize the delivery time of the website. session HTTP Homepage TU Wien
JESSIONSID Is needed so that in case of a LectureTube the session ID is recognized to grant access to protected areas. session HTTP LectureTube TU Wien
_shibsession_lecturetube This is needed to distinguish between the sessions of the logged-in users. session HTTP LectureTube TU Wien
Web statistics

These cookies help us to continuously improve our services and adapt our website to your needs. We statistically evaluate the pseudonymized data collected from our website.

Name Purpose Lifetime Type Provider
_pk_id Used to store a few details about the user such as the unique visitor ID. 13 months HTML Matomo TU Wien
_pk_ref Is used to store the information of the users home website. 6 months HTML Matomo TU Wien
_pk_ses Is needed to store temporary data of the visit. 30 minutes HTML Matomo TU Wien
Marketing

With the help of these cookies and third-party content we strive to improve our offer for our users. By means of anonymized data of website users we can optimize the user flow. This enables us to improve ads and website content.

Name Purpose Lifetime Type Provider
facebook Is used to Enable ad delivery or retargeting 90 days HTTP Meta
__fb_chat_plugin Is needed to store and track interactions (marketing/tracking). persistent HTTP Meta
_js_datr Is needed to save user settings. 2 years HTTP Meta
_fbc Is needed to save the last visit (marketing/tracking). 2 years HTTP Meta
fbm Is needed to store account data (marketing/tracking). 1 year HTTP Meta
xs Is needed to store a unique session ID (marketing/tracking). 1 year HTTP Meta
wd Is needed to log the screen resolution. 1 week HTTP Meta
fr Is needed to serve ads and measure and improve their relevance. 3 months HTTP Meta
act Is needed to store logged in users (marketing/tracking). 90 days HTTP Meta
_fbp Is needed to store and track visits to various websites (marketing/tracking). 3 months HTTP Meta
datr Is needed to identify the browser for security and website integrity purposes, including account recovery and identification of potentially compromised accounts. 2 years HTTP Meta
dpr Is used for analysis purposes. Technical parameters are logged (e.g. aspect ratio and dimensions of the screen) so that Facebook apps can be displayed correctly. 1 week HTTP Meta
sb Is needed to store browser details and security information of the Facebook account. 2 years HTTP Meta
dbln Is needed to store browser details and security information of the Facebook account. 2 years HTTP Meta
spin Is needed for promotional purposes and social campaign reporting. session HTTP Meta
presence Contains the "chat" status of logged in users. 1 month HTTP Meta
cppo Is needed for statistical purposes. 90 days HTTP Meta
locale Is needed to save the language settings. session HTTP Meta
pl Required for Facebook Pixel. 2 years HTTP Meta
lu Required for Facebook Pixel. 2 years HTTP Meta
c_user Required for Facebook Pixel. 3 months HTTP Meta
bcookie Is needed to store browser data (marketing/tracking). 2 years HTTP LinkedIn
li_oatml Is needed to identify LinkedIn members outside of LinkedIn for advertising and analytics purposes. 1 month HTTP LinkedIn
BizographicsOptOut Is needed to save privacy settings. 10 years HTTP LinkedIn
li_sugr Is needed to store browser data (marketing/tracking). 3 months HTTP LinkedIn
UserMatchHistory Is needed to provide advertising or retargeting (marketing/tracking). 30 days HTTP LinkedIn
linkedin_oauth_ Is needed to provide cross-page functionality. session HTTP LinkedIn
lidc Is needed to store performed actions on the website (marketing/tracking). 1 day HTTP LinkedIn
bscookie Is needed to store performed actions on the website (marketing/tracking). 2 years HTTP LinkedIn
X-LI-IDC Is needed to provide cross-page functionality (marketing/tracking). session HTTP LinkedIn
AnalyticsSyncHistory Stores the time when the user was synchronized with the "lms_analytics" cookie. 30 days HTTP LinkedIn
lms_ads Is needed to identify LinkedIn members outside of LinkedIn. 30 days HTTP LinkedIn
lms_analytics Is needed to identify LinkedIn members for analytics purposes. 30 days HTTP LinkedIn
li_fat_id Required for indirect member identification used for conversion tracking, retargeting and analytics. 30 days HTTP LinkedIn
U Is needed to identify the browser. 3 months HTTP LinkedIn
_guid Is needed to identify a LinkedIn member for advertising via Google Ads. 90 days HTTP LinkedIn