2022-10-26 Modern C++ Software Design (hcpa1w22)

Online CourseModern C++ Software Design
Numberhcpa1w22
Places available29
Date26.10.2022 – 28.10.2022
Price€ 30.00 – 600.00
PlaceONLINE


Room
Registration deadline14.10.2022 12:00
E-maileducation@lrz.de

Contents

"There is no point in developing software unless you care about it doing it well." (Andrew Hunt, David Thomas: The Pragmatic Programmer)


This advanced C++ online 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. 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, and maintainable C++ code. The following topics will be covered: 

Day 1 schedule:

  • Concepts and the STL
  • Overview of the STL
  • Proper use of the STL
    • Proper use of algorithms
    • Proper use of containers

Day 2 schedule:

  • Class Design
    • Compiler Generated Functions
    • Copy Elision
    • Move Semantics
    • Return Values and Parameters
    • Object Lifetimes
    • RAII
    • Member Data

Day 3 schedule:

  • Class Design
    • Applied Class Design
    • Visibility vs. Accessibility
  • Dynamic Polymorphism
    • Motivation
    • Classical Design Patterns Revisited
    • Public Inheritance
    • Surprises in Object Hierarchies


Contents are subject to modifications.

Prerequisites

Solid base on C++ and at least one year of experience with the language is needed.

Hands-On

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. Alternatively it is possible to use a C++ online compiler (e.g. cpp.sh, wandbox.orgrepl.it).

Content Level

The content level of the course is broken down as:

Beginner's content:

50%

Intermediate content:

50%

Advanced content:

0%

Community-targeted content:

0%

Gained Skills

After this course, participants ...

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

Language

English

Teachers

Klaus Iglberger (External)

Assistants: Carla Guillen, Carmen Navarrete, Martin Ohlerich (LRZ)

Prices and Eligibility

The course is open for people from academia and industry.

The following categories can be selected during registration:

  • [Students without Diploma/Master] Students without Diploma/Master: 30 EUR
  • [Academia Germany] Students with Diploma/Master (PhD students) and members of German universities and German public research institutes: 60 EUR
  • [Academia EU/Associated Countries] Students with Diploma/Master (PhD students) and members of universities and public research institutes within EU or Associated/Other Countries to the Horizon 2020 programme: 120 EUR
  • [Academia non-EU/Associated Countries] Students with Diploma/Master (PhD students) and members of other universities and public research institutes: 240 EUR
  • [Others] Non-academic participants: 600 EUR

Registration

Please register with your official e-mail address to prove your affiliation. Following your successful registration, you will receive an invoice approx. 2 weeks before the course. After paying the invoice, you will not receive a receipt. If you require proof of payment (e.g., for reimbursement) please use a copy of the invoice together with your bank statement indicating the payment.

Similar Offers

If you prefer a similar course in German or if you are looking for other dates or maybe an in-person option, then please look at the 4-day C++ courses at HLRS, the 4-day C++ courses at VSC in Vienna, or directly on Klaus Iglberger's course page.

Withdrawal Policy

See https://doku.lrz.de/display/PUBLIC/Withdrawal

Legal Notices

For registration for LRZ courses and workshops we use the service edoobox from Etzensperger Informatik AG (www.edoobox.com). Etzensperger Informatik AG acts as processor and we have concluded a Data Processing Agreement with them.

See https://doku.lrz.de/display/PUBLIC/Legal+Notices+Registration


No.DateTimeLeaderLocationRoomDescription
126.10.202210:00 – 17:00Klaus Iglberger
Carmen Navarrete
ONLINE
Day 1
227.10.202210:00 – 17:00Klaus Iglberger
Carmen Navarrete
ONLINE
Day 2
328.10.202210:00 – 17:00Klaus Iglberger
Carmen Navarrete
ONLINE
Day 3