Modulbeschreibung
Programmieren 3: C++11
Kurzzeichen:
M_Prog3
Unterrichtssprache:
Deutsch
ECTS-Credits:
6
Leitidee:
Sicheres Beherrschen der Programmiersprache C++11 und ihrer Bibliotheken
Modulverantwortung:
Sommerlad Peter
Standort (angeboten):
Rapperswil-Jona
Zusätzliche Eingangskompetenzen:
Englisch
Modultyp:
Wahlpflicht-Modul für
Informatik Retro STD_14_UG
(Empfohlenes Semester: 3)
Kategorien:Grundlagen Informatik (I-g), Grundlagen Informatik und Aufbau Informatik (I-gai)
Wahlpflicht-Modul für
Software Engineering STD_14 (PF)
Kategorie:Kernmodule Informatik Profile (I-KMP)
Wahlpflicht-Modul für
Informatik STD_05
(Empfohlenes Semester: 3)
Kategorie:Grundlagen Informatik (I-g)
Wahlpflicht-Modul für
Informatik STD_11
(Empfohlenes Semester: 3)
Kategorie:Grundlagen Informatik (I-g)
Wahl-Modul für
Informatik STD_14
(Empfohlenes Semester: 3)
Modulbewertung:
Note von 1 - 6
Leistungsnachweise und deren Gewichtung
Modulschlussprüfung:
Schriftliche Prüfung, 180 Minuten
Inhalte
Angestrebte Lernergebnisse (Abschlusskompetenzen):
sicheres Beherrschen der wichtigen Sprachelemente und Bibliothekskomponenten von C++11
Grundlagen der funktionalen und generischen Programmierung
Abstraktion von Werten, Algorithmen, Objekten und Verhalten mit den Sprachmitteln von C++11
Modul- und Lerninhalt:
Kompilationsmodell, Übersetzungseinheiten, Modulkonzept in C++ mittels Präprozessor, Hello World
Funktionen und Parameter, elementare Datentypen, einfache Ausgabe und Eingabe mittels Standard-Streams, Initialisierung, const und auto
Unit Testing mit CUTE, Standard-Exceptions anwenden - Funktions-contracts - Wertebereiche und Definitionsbereiche
Wichtige Typen und Algorithmen der Standardbibliothek: string, vector, copy, transform, Schleifen-Idiome
Anonyme Funktionen: Lambdas, Anwendung mit Standardalgorithmen
eigene Typen definieren (struct,class,enum), Typ-Aliase: using und typedef, Sichtbarkeit und Invarianten (ctor/dtor)
generische Funktionen definieren (function template), Operator-Funktionen, decltype, constexpr, Funktions-Lookup und Namensräume
Erweiterung/Anwendung der Standardbibliothek mit eigenen Iteratoren, Algorithmen, Prädikaten und Funktoren
generische Typen definieren (class templates), typename, Compile-Zeit Programmierung, Variadic Templates, Traits, static_assert
Resourcenmanagement - Lebensdauer, Referenzen (lvalue, rvalue), Move versus Copy, Forwarding, Lambdas mit Capture, Exception Safety und noexcept, Konstruktor-Desktruktor-Regeln (=default, =deleted)
Objektorientierte Programmierung mittels Vererbung und virtual Member Funktionen, Mehrfachvererbung, Mix-in Klassen und virtual Vererbung
Einführung in weitere Container und Algorithmen der Standardbibliothek (während des ganzen Semesters)
Memory-Model, Pointer, Heap-Management mittels unique_ptr und shared_ptr, C-Schnittstelle
einfaches Multi-Threading mittels async und futures, Ausblick auf threads, atomics, locks, condition variables
Vergleich und Umgang mit C++98 und C- Altlasten