Die Vorlesung Informatik 2 vermittelt grundlegende Konzepte der objektorientierten Programmierung anhand der Sprache C++. Außerdem werden grundsätzliche Ansätze und Themen des Software Engineerings vermittelt.
Die Vorlesung begleitet ein Praktikum.
Modulverantwortlicher: Prof. Dr. Jürgen Mottok; der Kursus wird pro Semester mehrfach und von verschiedenen Dozenten angeboten. Folgende Lehrende/Dozierende führen die Veranstaltung in jedem Semester durch: Prof. Dr. Roland Mandl, Prof. Dr. Jürgen Mottok, Prof. Dr. Michael Niemetz
Kontakt
Prof. Dr. Mottok bietet Studierenden feste Termine im Rahmen seiner Sprechstunde an. Zur Terminvereinbarung wenden Sie sich bitte an Erika Antoni (erika.antoni@oth-regensburg.de).
Vorlesung (Vorlesung und Praktikum): 4 SWS, 5 ECTS
Lerninhalte
Objektorientierte Programmierung und ihre Umsetzung in der Programmiersprache C++
Klassen und Objekte
UML als Beschreibungssprache für objektorientierte Programmentwürfe
Lebenszyklen von Objekten
Vererbung und Polymorphie
Datenkapselung
Abstrakte Klassen und Methoden
Exception-Mechanismus
Umsetzung von Datenstrukturen und Algorithmen in C++
Referenzen und andere neue Datentypen
Überladen von Funktionen und Operatoren,
Defaultargumente von Funktionen
Die C++ Standardbibliothek und der Templatemechanismus
Grundlegende Themen des Softwareengineerings
Versionsmanagement in der Softwareentwicklung
Entwicklung und Umsetzung einfacher Algorithmen
Rekursive Programme
Lernziele
Teilnehmende erwerben Kenntnisse über …
… grundlegende Sprachelemente der Sprache C++,
… grundlegende Kenntnisse von Entwicklungswerkzeugen und Ausführungsmodell,
… Versionsmanagement in der Softwareentwicklung,
… eigenständige Implementierung von vorliegenden Algorithmen in C++,
… das Verstehen fremder Implementierungen in C++,
… den Entwurf einfacher objektorientierter Softwarelösungen,
… die Verwendung von Debugging-Werkzeugen,
… die Dokumentation (UML Diagramme, Kommentare), Präsentation der selbst entwickelten
Softwarelösungen sowie Diskussion kontroverser Lösungsansätze,
… den Einblick in die Wichtigkeit nichtfunktionaler Eigenschaften (Wartbarkeit, Entwicklungsaufwand, minimale Redundanz im Quellcode) sowie in Möglichkeiten der Umsetzung,
… den eigenständigen Entwurf leistungsfähiger, fehlerfreier und robuster C++-Programme,
… die Beurteilung der Performance und des Resourcenverbrauchs von Programmen,
… die Beurteilung der Plausibilität von Programmergebnissen.