<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<document>
<title>Programmierung 2</title>
<cid>KIB-PRG2</cid>
<sapsubmodule>P222-0030</sapsubmodule>
<bkey>ki2</bkey>
<ctypes>
<hours>4</hours>
<type>V</type>
<hours>2</hours>
<type>P</type>
</ctypes>
<cp>8</cp>
<semester>2</semester>
<mandatory>ja</mandatory>
<language>Deutsch</language>
<exam>Klausur, Dauer 90 min.</exam>
<curriculum>
<curriculum_entry>
<cid>KIB-PRG2</cid>
<branch>Kommunikationsinformatik</branch>
<semester>2</semester>
<mandatory_tag>Pflichtfach</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>KIB-PRG2</cid>
<branch>Kommunikationsinformatik</branch>
<semester>2</semester>
<mandatory_tag>Pflichtfach</mandatory_tag>
</curriculum_entry>
</curriculum>
<workload>
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 90 Veranstaltungsstunden (= 67.5 Zeitstunden). Der Gesamtaufwand des Moduls beträgt bei 8 Creditpoints 240 Stunden (30 Stunden/ECTS Punkt). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 172.5 Stunden zur Verfügung.
</workload>
<prerequisites>
<prerequisite>
<pfcid>KIB-PRG1</pfcid>
<pftitle>Programmierung 1</pftitle>
</prerequisite>
</prerequisites>
<prerequisitesfor>
<prerequisitefor>
<pfcid>KIB-PRG3</pfcid>
<pftitle>Programmierung 3</pftitle>
</prerequisitefor>
<prerequisitefor>
<pfcid>KIB-SDSA</pfcid>
<pftitle>Simulation diskreter Systeme mit Anylogic</pftitle>
</prerequisitefor>
<prerequisitefor>
<pfcid>KIB-SWT</pfcid>
<pftitle>Softwaretechnik</pftitle>
</prerequisitefor>
<prerequisitefor>
<pfcid>KIB-VS</pfcid>
<pftitle>Verteilte Systeme</pftitle>
</prerequisitefor>
</prerequisitesfor>
<convenor>Prof. Dr.-Ing. Martin Burger</convenor>
<convenor-person-key>mbg</convenor-person-key>
<lecturers>
<lecturer>Dipl.-Inf. Christopher Olbertz</lecturer>
<lecturer-person-key>col</lecturer-person-key>
</lecturers>
<objectives>Die Studierenden 
• beherrschen die grundlegenden Sprachelemente (Datentypen, Ausdrücke, Kontrollstrukturen, Funktionen, Ausnahmebehandlung) von C++ sicher.
• haben die Konzepte der Objektorientierung (Klassen, Objekte, Vererbung, Polymorphismus) begriffen und können sie programmtechnisch umsetzen.
• haben das Konzept der Templates verstanden und sind in der Lage es in Programmen nutzbringend anzuwenden.
• können sicher mit grundlegenden Klassen und Algorithmen der C++-Standardbibliothek (z. B. Zeichenketten, Ein-/Ausgabe, Containerklassen, Generische Algorithmen) umgehen.
• sind in der Lage in kleinen Teams, zu einfachen bis mittelschweren Problemstellungen Lösungen zu entwickeln und diese gut strukturiert zu implementieren.</objectives>
<content>1.  Einführung und Motivation
2.  Elementare Sprachelemente von C++
3.  Einführung in die objektorientierte Programmierung
    - Allgemeiner Überblick
    - Einführung Klassen und Objekte
    - Einführung Ausnahmebehandlung
4.  Grundlegende Konzepte
    - Geltungsbereiche, Typkonvertierungen
    - Funktionen und Referenzen
    - Einsatz des Dokumentationsgenerators Doxygen
5.  Klassen und Objekte Teil 2
    - Kopierkonstruktor, Zuweisungsoperator
    - Klassenattribute, Klassenmethoden
6.  Überladen von Operatoren
7.  Ein-Ausgabe und Dateiverarbeitung
8.  Vererbung
    - Grundlegendes
    - Dynamisches Binden
    - Abstrakte Klassen
    - Mehrfachvererbung
9.  Ausnahmebehandlung Teil 2
10. Templates
    - Funktions-Templates
    - Klassen-Templates
11. Standard Template Library
    - Konzepte
    - Container, Algorithmen, Iteratoren</content>
<media>Folien, Beamer</media>
<literature>Breymann, Ulrich
Der C++ Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen. 
Carl Hanser Verlag GmbH &amp; CO. KG
 
Stroustrup, Bjarne
Einführung in die Programmierung mit C++
Pearson Studium
 
Grimm, Rainer 
C++11: Der Leitfaden für Programmierer zum neuen Standard
Addison-Wesley, München; 

Will, Torsten T. 
C++11 programmieren: 60 Techniken für guten C++11-Code 
Galileo Computing
 
Eckel, Bruce
Thinking in C++
Prentice Hall, http://www.BruceEckel.com
 
Meyers, Scott
Effektiv C++ programmieren: 55 Möglichkeiten, Ihre Programme und Entwürfe zu verbessern
Addison-Wesley
 
Schäling, Boris
The Boost C++ Libraries
Xml Press 

C++ Reference
http://www.cppreference.com

Bjarne Stroustrup&quot;s C++ Style and Technique FAQ
www.stroustrup.com/C++11FAQ.html</literature>
<offered>
<semshort>SS 2025</semshort>
<semshort>SS 2024</semshort>
<semshort>SS 2023</semshort>
<semshort>SS 2022</semshort>
<semshort>SS 2021</semshort>
<semshort>SS 2020</semshort>
<semshort>SS 2019</semshort>
<semshort>SS 2018</semshort>
</offered>
<moduldb-query>Sat Aug 15 12:31:04 CEST 2026, CKEY=kp2, BKEY=ki2, CID=[?], LANGUAGE=de, DATE=15.08.2026</moduldb-query>
</document>
