2022-10-26 Modern C++ Software Design (hcpa1w22)
Online Course | Modern C++ Software Design |
Number | hcpa1w22 |
Places available | 29 |
Date | 26.10.2022 – 28.10.2022 |
Price | € 30.00 – 600.00 |
Place | ONLINE |
Room | |
Registration deadline | 14.10.2022 12:00 |
education@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.org, repl.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. | Date | Time | Leader | Location | Room | Description |
---|---|---|---|---|---|---|
1 | 26.10.2022 | 10:00 – 17:00 | Klaus Iglberger Carmen Navarrete | ONLINE | Day 1 | |
2 | 27.10.2022 | 10:00 – 17:00 | Klaus Iglberger Carmen Navarrete | ONLINE | Day 2 | |
3 | 28.10.2022 | 10:00 – 17:00 | Klaus Iglberger Carmen Navarrete | ONLINE | Day 3 |