--- Angabe der Prüfungsordnung (ohne Angabe: PO 2011) *** PO 2024 *** ------------------------------------------------------------------ --- --- Vorlage für Modulbeschreibungen --- --- Version: 2.1 --- --- Allgemeine Hinweise: --- --- - Kommentare beginnen mit --- und werden komplett ignoriert --- --- - Wichtige Schlüsselwörter beginnen mit *** und dürfen nicht --- verändert oder gelöscht werden!!! --- --- - Die Eingaben müssen immer in den leeren Zeilen nach *** erfolgen. --- --- - Für einen Zeilenumbruch muss eine Leerzeile eingegeben werden. --- ------------------------------------------------------------------ *** Studiengang und Semester --- für Studiengang nur Kürzel verwenden: z.B. BET, BI --- --- Das Semester wird davor geschrieben, auch Semesterbereiche möglich --- Wenn das Modul in mehreren Studiengängen verwendet wird, werden diese --- durch Komma getrennt aufgeführt. --- --- Beispiel: 2BI, 2-3BET, 5BMT 2BaREG *** Modulbezeichnung --- Name laut Modulliste verwenden Programmierung II *** Englische Modulbezeichnung Programming II *** Art --- nur Alternativen: Pflichtfach, Wahlpflichtfach --- --- Beispiele: --- Pflichtfach --- Wahlpflichtfach --- Pflichtfach Vertiefung Technische Informatik Pflichtmodul *** ECTS-Punkte --- nur Zahl angeben --- Beispiele: --- 5 --- 7,5 5 *** Studentische Arbeitsbelastung --- Angabe als x Stunden Kontaktzeit und y Stunden Selbststudium --- Format: x, y --- bei 2V+2P: 60, 90 --- bei 3V+1P: 60, 90 --- bei 4V+0P: 60, 90 --- bei 4V+2P: 90, 135 15, 135 *** Voraussetzungen (laut Prüfungsordnung) --- nur Modulbezeichnungen aufführen, z.B. Java 1 *** Empfohlene Voraussetzungen --- zusätzliche Module, die nicht in Prüfungsordnung als Voraussetzung stehen --- nur Modulbezeichnungen aufführen, z.B. Java 1 Programmierung I *** Pruefungsform und -dauer --- Alternativen: --- Klausur 1,5 h --- Klausur 1,5h oder mündliche Prüfung --- Mündliche Prüfung --- Erstellung und Dokumentation von Rechnerprogrammen Klausur 2 h oder mündliche Prüfung *** Lehrmethoden und Lernmethoden --- Alternativen: Vorlesung, Praktikum, Seminar, Studentische Arbeit --- Falls Modul aus mehreren Veranstaltungen besteht, werden diese durch --- Komma getrennt aufgeführt. Multimedial aufbereitetes Online-Studienmodul zum Selbststudium mit zeitlich parallel laufender Online-Betreuung und regelmäßigen virtuellen Lehrveranstaltungen *** Modulverantwortlicher --- Vorname abgekürzt, keine Titel --- Beispiel: F. Rump C. Link *** Qualifikationsziele --- Fließtext eingeben --- siehe Vorgaben in der Dokumentation Die Studierenden demonstrieren, dass sie über ein mentales Modell von Informationsdarstellung und Programmablauf verfügen, indem sie einen Rechner (mit rekursiv absteigendem Parser) für Bool’sche Ausdrücke konstruieren. Die Studierenden können - mit den Besonderheiten des Programmablaufs bei der Mikrocontrollerprogrammierung umgehen, indem sie in einem Programm asynchrone Ereignisse mit den adäquaten Sprachmitteln behandeln und die geeigneten Datenstrukturen auswählen. - Klassen entwerfen, um mit angepassten Typen Aufgabenstellungen besser (abstrakter) umsetzen zu können, indem sie eine oder mehrere Klassen deklarieren und definieren, welche in einem vorgegebenen Programm verwendet werden. - mittels der wesentlichen Konzepte der objektorientierten Programmierung Programme entwerfen, indem sie diese Konzepte bei der Implementierung einer Aufgabenstellung verwenden. - die verschiedenen Arten des Polymorphismus differenzieren, um mit dem jeweils passenden Code von konkreten Typen zu abstrahieren. - ein vorgegebenes Programm mit den passenden Arten polymorpher C++-Sprachmittel ausstatten und bezüglich der Lesbarkeit und Wartbarkeit verbessern. - wesentliche Teile der C++-Standardbibliothek anwenden; hierbei können sie für kleine Problemstellungen die richtigen Bibliotheksteile benennen. - ausgewählte Bibliotheksteilen bei der Implementierung einer Aufgabenstellung benutzen und einschätzen, welche die dazu besser geeigneten sind. - (einige wenige) Idiome und Patterns auf eigenen Code adaptieren. - eine gegebene Problemstellung analysieren, in kleinere Teile zerlegen und mit den jeweils angemessenen C/C++-Sprachmitteln implementieren. *** Lehrinhalte --- Fließtext eingeben **Berechnungen auf wichtigen Datentypen** Elementare Datentypen, char-ASCII-Glyph, I/O, Bitschieberei; call stack, Rekursion; free store **Nichtlinearer Programmablauf** Reentranz; event-based programming vs. thread-based; interrupt service routines; locking, lock-free data structures **Benutzerdefinierte Datentypen** Komposition neuer benutzerdefinierter Datentypen, um Ausdrücksmächtigkeit zu erhöhen; operator overloading; einfache Klasse ohne Vererbung; Typumwandlung (implizit/explizit) **Objektorientierte Programmierung** Information hiding; subtyping; Interface vs. Implementation; aggregation vs. composition; Identität vs. Äquivalenz; Delphi-style OO (i.e. only free store objects, no assignment operator, only explicit ctors ) **Polymorphismus** Subtyping polymorphism mit virtuellen Methoden; Einordnung des bekannten Polymorhismustypen ad-hoc polymorphism; Generic Polymprhism (templates) **C++-Standardbibliothek** Std Container; Std Algorithmen; moderner C++-Progammierstil **Idiome und Muster** Constructional: virtual ctor, factory, …; Resource Acquisition Is Initialization (RAII); Design-by-contract (DBC) **Eleganz und diesbezügliche Hindernisse** Klassendesign; Schwierigkeiten bei der Kombination von Sprach-Features; Objekte und Pointer (copy ctor, operator=, ...); Vererbung und operator overloading; Vererbung und container *** Literatur --- Format: Heun, V.: Grundlegende Algorithmen, Vieweg, 2000. --- Mehrere Literaturangaben durch Leerzeilen trennen! Stroustrup, Bjarne (2014): The C++ programming language. [C++ 11]. 4. ed., 2. print. Upper Saddle River, NJ: Addison-Wesley. Kirch, Ulla; Prinz, Peter (2013): C++ - das Übungsbuch. 4., überarb. Aufl. Heidelberg, München, Landsberg, Frechen, Hamburg: mitp. ------------------------------------------------------------------ --- --- Hier beginnt die Aufzählung der einzelnen Lehrveranstaltungen --- des Moduls (z.B. Vorlesung und Praktikum). --- --- Falls mehrere Lehrveranstaltungen vorgesehen sind, bitte die --- entsprechenden Bereiche auskommentieren. --- ------------------------------------------------------------------ *** Titel der Lehrveranstaltung --- Beispiel: Praktikum Informationssysteme Programmierung II *** Dozent --- Vorname abgekürzt, keine Titel --- Beispiel: F. Rump C. Link *** SWS --- Zahl angeben 4 ---*** Titel der Lehrveranstaltung ---*** Dozent ---*** SWS ---*** Titel der Lehrveranstaltung ---*** Dozent ---*** SWS