# Grundlagen der C++ Programmierung

**Sommer**


(engl. Introduction to C++ Programming )

<table bgcolor="#7FB3D9" border="1" id="bkmrk-%5Btitle%5D" style="width: 100%; border-collapse: collapse; border-width: 1px; border-style: none;"><colgroup><col style="width: 100%;"></col></colgroup><tbody><tr style="background-color: rgb(235, 243, 249);"><td>##### <span style="color: rgb(0, 104, 180);">**Modulnummer: FIN-INF-110382** </span>

</td></tr></tbody></table>

<table bgcolor="#7FB3D9" border="1" id="bkmrk-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 14.2515%;"></col><col style="width: 14.2515%;"></col><col style="width: 13.061%;"></col><col style="width: 15.442%;"></col><col style="width: 14.2515%;"></col><col style="width: 14.2515%;"></col><col style="width: 14.2515%;"></col></colgroup><tbody><tr><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**Kürzel**</span>

<span style="color: rgb(61, 61, 61);">C++ </span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**CP**</span>

<span style="color: rgb(61, 61, 61);">5 </span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**Semester**</span>

<span style="color: rgb(61, 61, 61);">Sommer </span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**Fachsem.**</span>

<span style="color: #3d3d3d;">ab 2. </span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);">**<span style="color: rgb(61, 61, 61);">Dauer</span>**

<span style="color: rgb(61, 61, 61);">1 Semester </span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**Sprache**</span>

<span style="color: rgb(61, 61, 61);">deutsch</span>

</td><td class="align-center" style="border: 5px solid rgb(255, 255, 255);"><span style="color: rgb(61, 61, 61);">**Niveau**</span>

<span style="color: rgb(61, 61, 61);">Bachelor </span>

</td></tr></tbody></table>

<table border="1" id="bkmrk-verantwortung%3A-verwe" style="border-collapse: collapse; width: 100%; height: 89.3907px; border-width: 1px; border-style: none;"><colgroup><col style="width: 20.2601%;"></col><col style="width: 79.7399%;"></col></colgroup><tbody><tr><td>**Link zum LSF:**</td><td>[ LSF](https://lsf.ovgu.de/qislsf/rds?state=wsearchv&search=1&subdir=veranstaltung&veranstaltung.semester=20261&veranstaltung.dtxt=Grundlagen+der+C+++Programmierung&P_start=0&P_anzahl=30&P.sort=veranstaltung.dtxt&_form=display "Grundlagen der C++ Programmierung")</td></tr><tr><td>**Zugang beschränkt:**</td><td></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Verantwortung:**</td><td style="height: 29.7969px;">Dr. Thomas Wilde </td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Dozent:in:**</td><td style="height: 29.7969px;">Dr. Thomas Wilde </td></tr><tr><td>**Lehrveranstaltungen:**</td><td>- Vorlesung *Grundlagen der C++ Programmierung*
- Übung *Grundlagen der C++ Programmierung*

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Verwendbarkeit:**</td><td style="height: 29.7969px;">- B.Sc. INF: Informatik - Wahlpflicht  
- B.Sc. INF: Studienprofil: Computer Games  
- B.Sc. INF: Informatik Wahlpflicht (SPO 2027)  
- B.Sc. CV: Informatik - Wahlpflicht  
- B.Sc. CV: Anwendungsfach - Computer Games  
- B.Sc. CV: Computervisualistik Wahlpflicht (SPO 2027)  
- B.Sc. INGINF: Informatik - Wahlpflicht  
- B.Sc. INGINF: Informatik Wahlpflicht (SPO 2027)  
- B.Sc. WIF: Gestalten und Anwenden - Wahlpflicht  
- B.Sc. WIF: Informatik Wahlpflicht (SPO 2027)  
- B.Sc. INF (bilingual): Informatik - Wahlpflicht  
- B.Sc. INF (bilingual): Informatik Wahlpflicht (SPO 2027)  
  
</td></tr></tbody></table>

**Angestrebte Lernergebnisse:** Studierende, die den Kurs erfolgreich absolviert haben, sind in der Lage ...

- ... den Kompilierungsprozess für C++ Projekte zu erklären,
- ... primitive Datentypen, Operatoren und Kontrollstrukturen anzuwenden und zu vergleichen,
- ... Zeiger und Speicherverwaltung in C++ zu nutzen,
- ... Zeiger, Zeigerarithmetik und Arrays sicher zu verwenden,
- ... dynamische Speicherverwaltung und Ausnahmebehandlung zu beherrschen,
- ... Funktionen, objektorientierte Programmierung und Operatorüberladung anzuwenden und zu nutzen,
- ... generische Programmierung umzusetzen und die Standardbibliothek zu nutzen.

  
**Inhalt:**

- Bedienung des Compilers und Zusammenspiel mit Linker
- Primitive Datentypen, Operatoren und Kontrollfluss (und Unterschiede zu Java)
- Variablen, Felder, Zeiger und Zeigerarithmetik
- Funktionen
- Klassen
- Speicherverwaltung, Referenzen, Ausnahmebehandlung
- Überladen von Operatoren
- Generische Programmierung mit Templates Überblick über die Standardbibliothek inklusive STL
- Werkzeuge (Debugger, make, Valgrind, Doxygen)
- Allgemeine Problematiken (z.B. Programmierstil, Quellcode-Verwaltung, Optimierung, Zeichensätze/UTF-8)

**Arbeitsaufwand:**

- asynchrone Vorlesung 2 SWS = 28h Arbeit,
- Übung 2 SWS = 28h Präsenzzeit,
- 94h selbstständige Arbeit,
- gesamt 150h.

  
<table border="1" id="bkmrk-studien-%2Fpr%C3%BCfungslei" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 32.6591%;"></col><col style="width: 35.9941%;"></col><col style="width: 31.3468%;"></col></colgroup><tbody><tr><td>**Prüfungsvorleistungen:**</td><td>**Studien-/Prüfungsleistungen:**</td><td>**Lehrform / SWS:**</td></tr><tr><td style="vertical-align: top;">Prüfungsvorleistung erforderlich, wird zu Semesterbeginn bekanntgegeben;

</td><td class="align-left" style="vertical-align: top;">- Prüfung: schriftliche Klausur, 120 Minuten;
- Schein: schriftliche Klausur muss mitgeschrieben und bestanden werden.

  
</td><td class="align-left" style="vertical-align: top;">- asynchrone Vorlesung (2 SWS)
- Übung (2 SWS)

  
</td></tr></tbody></table>

<table border="1" id="bkmrk-voraussetzungen-nach" style="font-family: var(--font-body); font-size: 14px; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>**Voraussetzungen nach Prüfungsordnung:**</td><td>**Empfohlene Voraussetzungen:**</td></tr><tr><td class="align-left" style="vertical-align: top;">keine

</td><td class="align-left" style="vertical-align: top;">- Grundkenntnisse in Programmierung
- idealerweise Java-Kenntnisse (z.B. aus der Vorlesung "Einführung in die Informatik")

  
</td></tr></tbody></table>

<table border="1" id="bkmrk-medienformen%3A-litera" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>**Medienformen:**</td><td>**Literatur:**</td></tr><tr><td class="align-left" style="vertical-align: top;"></td><td class="align-left" style="vertical-align: top;">- Bjarne Stroustrup. The C++ Programming Language,
- Frank B. Brokken. C++ Annotations. ,
- Scott Meyers. Effective C++,
- Nicolai M. Josuttis. The C++ Standard Library - A Tutorial and Reference.

  
</td></tr></tbody></table>

**Hinweise:**