Introduction Seminar to Programming with C++

C++ is a programming language that enables complex software designs and combines them with runtime efficiency. The language structures are on the one hand expressive but on the other hand hard to learn, since the several changes of the past years have strongly modified the language. While at the beginning of the 1990s the core of the language was still represented by their object-oriented properties, it is now the concepts of generative programming that equally stand beside the OO language constructs. In the course you also get an overview of this evolution and the backgrounds of said techniques are addressed. This seminar primarily deals with the principles of the object-oriented programming with ANSI/ISO C++. For this course, the knowledge of a higher programming language is helpful here, but not necessarily required.

The following subject matters are covered:

  • Historical Evolution of C++
  • Basic Syntax
  • Getting to know the Compiler and the Linker
  • The parts of the C language in C++
  • Standard data types
  • Structures
  • Operators
  • Functions
  • Pointers and References
  • Dynamic Memory Allocation
  • Class Concept
  • Data Encapsulation
  • Attributes and Methods
  • Object Instantiation
  • Constructors and Destructors
  • Function Overloading
  • Operator Overloading
  • The C++ Name Mangling
  • Type Converting
  • Visibility Concept
  • Inheritance
  • Polymorphism
  • Virtual Methods
  • Abstract Classes
  • Multiple Inheritance
  • Exception Handling
  • Templates
  • Function Templates
  • Class Templates
  • Object-Oriented Programming
  • Comparison of C and C++ Languages
  • Principles of OO Modeling
  • Sense and Nonsense of Class Hierarchies
  • Discussing the Abstract Level of OOP
  • Fields of Application of C++
  • Considerations on Runtime Behaviors
  • Language Standard and Compiler Behavior
  • Structure of C++ Projects
  • …and more

The programming language is learned by means of practical examples. Any C++ compiler can be adopted for this purpose. GNU C++ or MS Visual C++ are preferably used. The compiler should not be too old and should support the essential language properties of ANSI/ISO C++ relating to name spaces and name conventions. On an explicit request it is possible to teach an older C++ language standard like for instance AT&T 2.x or AT&T 3.x. It is certainly important to use a platform that the participants know well - preferably Windows, Mac OS X or Linux. Naturally, any UNIX-System can be used as development and exercise platform for the training.

Last modified 04.01.2023