Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage ...... modernen C++ code zu lesen.... die Kernprinzipien moderner Softwareentwicklung zu verstehen.... die in C++17 verfügbaren Sprachfeatures zu verstehen und anzuwenden.... geeignete Funktionen aus der Standardbibliothek auszuwählen, um allgemeine Probleme zu lösen.... C++ zur Lösung eines Problems im Rahmen einer Projektarbeit anzuwenden.... eine Schnittstelle zwischen C++-Code und anderen Sprachen (Python) zu generieren.
Das Ziel dieser Vorlesung ist es, die Kernprinzipien von modernem C++ zu verstehen und wie man sie anwendet. Diese Vorlesung beginnt ganz am Anfang ("Hello World!") und führt die Studierenden in die Arbeit an automatisierten Projekten mit mehreren Mitwirkenden ein. Weiters lernen sie modernes C++ anzuwenden, dabei Fehler zu vermeiden, die häufig in großen Softwareprojekten auftreten.
C++ Sprachfeatures:- Value Categories- Value and Reference Semantics- Functions- User-defined types (Classes)- Template Metaprogramming- Function objects (lambda functions)
Bestandteile der Standardbibliothek:- Data containers- Smart pointers- Iterators- Algorithms
Von C++ zum ausführbaren Programm:- Compiling- Linking- Operating System libraries
Kennenlernen von Programmierwerkzeugen und Ökosystemen:- Linux command line (bash)- Version Control System (git)- Build Systems (GNU Make, CMake)- Testing Frameworks (CTest)- Compiler toolchains (GCC, LLVM)
Die Vorlesungen werden online abgehalten. Die Benotung erfolgt durch Kurze wöchentliche Aufgaben welche erarbeitet werden müssen. Am Ende des Kurses wird ein selbst ausgewähltes C++ Projekt implementiert und mit einem Bericht abgegeben.
Die Gesamtnote setzt sich aus den wöchentlichen Aufgaben (40%) und dem Endprojekt (60%) zusammen.