This course will be delivered as an ONLINE COURSE (using Zoom) for remote participation.
"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.
Preliminary Agenda
- 10:00 - 12:00 Lecture (incl. coffee breaks and hands-on)
- 12:00 - 13:00 Lunch Break
- 13:00 - 17:00 Lecture (incl. coffee breaks and hands-on)
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
- Move Semantics
- Return Values and Parameters
- Member Data
- Member Functions
- Visibility vs. Accessibility
Day 3 schedule:
- Robust Code
- Object Lifetimes
- RAII
- Proper Use of Dynamic Polymorphism
- Motivation
- Classical Design Patterns Revisited
- Public Inheritance
- Surprises in Object Hierarchies
Contents are subject to modifications.
Prices
- Students without Diploma/Master: 30 EUR
- Students with Diploma/Master (PhD students) at German universities: 60 EUR
- Members of German universities and public research institutes: 60 EUR
- Members of universities and public research institutes within EU or PRACE member countries: 120 EUR
- Members of other universities and public research institutes: 240 EUR
- Others: 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.
Withdrawal
You can declare your withdrawal after registration by letter, fax (+49 89 35831 9700) or e-mail to buchhaltung@lrz.de. The day of withdrawal is the day of receipt of the withdrawal notice at LRZ. We cannot accept cancellations by phone.
If you withdraw from the course we will charge you as follows:
- up to 14 days before the event: free of charge,
- from the 13th day before the event: 60 % of the participant fee,
- from the 6th day before the event: 80% of the participant fee,
- later than 11am on the working day (Mon-Fri) before the course starts: 100% of the participant fee.
LRZ reserves the right to exclude academic participants from LRZ courses for one year if they do not attend courses for which they are registered without withdrawing their registration.
Registrants for an event may designate a substitute participant at any time and free of charge. The substitute will bear any fees for participation.
Please understand that we must reserve the right to cancel an event due to low registration, the absence of a lecturer, force majeure, or similar causes. If cancellations or necessary changes of the program occur, we will make every effort to inform you as early as possible. If we have to cancel an event, we will refund your participant fees immediately. Additional claims against LRZ are not permitted, except for cases of willful intent or gross negligence.
The agreement shall be governed by German Law. Place of jurisdiction is Munich.
Data Protection Notice
Controller
Controller for the purposes of the General Data Protection Regulation (GDPR), other data protection laws applicable in Member states of the European Union and other provisions related to data protection is:
Leibniz Supercomputing Centre of the Bavarian Academy of Sciences and Humanities
Boltzmannstraße 1
D-85748 Garching near Munich
Germany
Tel. 089-35831-8000
E-Mail: leitung@lrz.de
Contact information of the data protection officer
insidas GmbH & Co. KG
Wallerstraße 2
84032 Altdorf
Deutschland
E-Mail: datenschutz@lrz.de
Purpose of the data processing and data categories
When you register for our event, we collect the following data:
- Title
- First Name
- Family name
- Institution
- Address (Street, PLZ, City, Country)
- Nationality
The legal basis for this processing is Art. 6 (1) (b) GDPR (“processing is necessary for the performance of a contract).
- Phone
The legal basis for this processing is Art. 6 (1) (a) GDPR (“consent”)
Recipients of the personal data
For registration we use the service of Partnership for Advanced Computing in Europe AISBL (“PRACE”) (https://events.prace-ri.eu).
Your rights
You are entitled to the rights set out in Art. 15-21 GDPR. If you wish to exercise any of these rights, please use the contact information above.