MODULBESCHREIBUNG

C++

Kurzzeichen:
M_CPl
Durchführungszeitraum:
HS/15-HS/19
ECTS-Punkte:
4
Lernziele:

Beherrschen der Grundlagen der Programmierung in Standard-C++ und der Standard-Bibliothek

Verantwortliche Person:
Sommerlad Peter
Empfohlene Module:
Zusätzlich vorausgesetzte Kenntnisse:

Englisch

Skriptablage:
Modultyp:
Standard-Modul für Informatik STD_05(Empfohlenes Semester: 3)
Standard-Modul für Informatik STD_11(Empfohlenes Semester: 3)
Standard-Modul für Informatik STD_14(Empfohlenes Semester: 3)
Standard-Modul für Generalist STD_14 (PF)

ECTS-Punkte pro Kategorie

Kategorie:
Grundlagen Informatik / 4 Punkte
Grundlagen Informatik / 4 Punkte
Grundlagen Informatik / 4 Punkte
Grundlagen Informatik und Aufbau Informatik / 4 Punkte
Kernmodule Informatik Profile / 4 Punkte
Kernmodule Informatik Profile / 4 Punkte

Modulbewertung

Bewertungsart:
Note von 1 - 6

Leistungsbewertung

Während der Prüfungssession:
Schriftliche Prüfung, 120 Minuten
Zulassungsbedingungen zur Prüfung:

Erfolgreiche Abgabe gelöster Uebungsaufgaben nach Ankündigung

Kurse in diesem Modul

C++

Kurzzeichen:
CPl
Lernziele:
  • sicheres Beherrschen der wichtigen Sprachelemente und Bibliothekskomponenten von Standard-C++
  • Abstraktion von Werten, Algorithmen, Objekten und Verhalten mit den Sprachmitteln von C++
  • Grundlagen der funktionalen und generischen Programmierung und von Lambdas
  • Beherrschung einer modernden C++ IDE (Cevelop) mit Unit Testing und Refactoring
Plan 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, Initialisierungslisten, Typ-Deduktion: const und auto, Referenzen
  • Unit Testing mit CUTE, Standard-Exceptions anwenden - Funktions-contracts - Wertebereiche und Definitionsbereiche
  • Wichtige Typen und Algorithmen der Standardbibliothek: string, vector, copy, transform, Schleifen-Idiome, Range-for
  • Anonyme Funktionen: Lambdas, Anwendung mit Standardalgorithmen
  • Einfache eigene Typen definieren (struct,class,enum), Typ-Aliase: using und typedef, Sichtbarkeit und Invarianten (constsructor/destructor)
  • generische Funktionen definieren (function template), Operator-Funktionen, decltype, constexpr, Funktions-Overload-Lookup und Namespaces
  • Anwendung der Standardbibliothek mit eigenen Prädikaten und Funktoren, bzw. Lambdas
  • Einfache generische Typen definieren (class templates), typename, Template-Aliases, eigene Wrapper für Standardcontainer, einfache Variadic Template Funktionen, static_assert
  • Resourcenmanagement - Lebensdauer, Referenzen (lvalue, rvalue), Move versus Copy, Forwarding, Lambdas mit Capture, 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)
  • Objekte auf dem Heap mittels unique_ptr und shared_ptr. Problematik zyklischer Objektgeflechte mittels weak_ptr lösen.
Kursart:

(Durchführung gemäss Stundenplan)

Vorlesung mit 2 Lektionen pro Woche
   - Max. Teilnehmer: 120
   - Harte Grenze: ja
Uebung mit 2 Lektionen pro Woche
   - Max. Teilnehmer: 18
   - Harte Grenze: ja

Übergangsregelungen:
Programmieren 3: Programmiersprache C++ (mUk_Prog3) (nicht durchgeführt)
Programmieren 3: C++11 (M_Prog3) (HS/12-HS/14)