Modulplan C++ C++ Gültig ab FS17 C++ Code C++ Fachbereich(e) Software-Entwicklung Studiengang /-gänge BSc Informatik (BSc Wirtschaftsinformatik) Vertiefungsrichtung(en) - Art des Studiengangs Bachelor Master CAS/MAS/EMBA Studienniveau * Basic Intermediate Advanced Typus ** Core course Related course Minor course ECTS-Credits 5 Präsenzverpflichtung 100% Arbeitsaufwand in Std. 150 Verantwortliche Ansprech- Fachbereichsleiter: person Peter Böhnlein Specialised Autoren: Peter Tellenbach / Karl Seeliger Zu entwickelnde Kompetenzen Die Studierenden bekommen einen Einstieg in C++. Sie kennen die Philosophie von C++, sowie die Vor- und Nachteile dieser Sprache. Sie verstehen die Unterschiede zu Java und können die Konsequenzen der Wahl von C++ für die Entwicklung einer Applikation abschätzen. Sie verstehen in C/C++ geschriebene Programme und können auch selber C++-Code schreiben. Sie verfügen über genügend Grundlagen von C++, um sich selbständig in weiterführende Themen einzuarbeiten. Sie sind in der Lage, entsprechende Bücher, Tutorials, Webinare auszuwählen und den Stoff aufzuarbeiten. Lerninhalte • Datentypen und Kontrollstrukturen • Funktionen, Arrays, Strings und Parameterübergabe • Pointer und Referenzen • Klassen / Vererbung • Operatorüberladung / Ein- und Ausgabe • Die Collection-Klassen • C-Arrays / C++ im C-Stil Selbststudium Online-Studium Präsenzstudium Lehr- und Lernmethoden (Fernstudium nach dem Blended-Learning-Konzept) Erarbeiten des Stoffes Lektüre Lösen von Aufgaben Recherchieren von Fragen. Forumsdiskussionen Einreichen von Aufgaben Repetitionsaufgaben Online-Feedback, etc. Lehrgespräch Kurzreferate Gruppendiskussionen Präsentationen, etc. Unterrichtssprache Deutsch Leistungsbewertung Vier Tests und eine Modulprüfung am Ende des Semesters Lehrmittel Der C++ Programmierer, Ulrich Breymann, Hanser Verlag, E-Book-ISBN: 978-3-446-44404-1 Print-ISBN: 978-3-446-44346-4 Vorkenntnisse: Modul(e) Java (OOP) Anschlussmodul(e) - Bemerkungen Der Kurs ist vor allem für Studenten gedacht, die gerne Software entwickeln und Kenntnisse in C/C++ benötigen. Gute Kenntnisse von Java werden vorausgesetzt. C++_FS17.docx 28.09.2016 Seite 1 von 11 Modulplan C++ C++ Gültig ab FS17 *Studienniveau **Typus C++_FS17.docx B Basic level course: Modul zur Einführung in das Basiswissen eines Gebiets. I Intermediate level course: Modul zur Vertiefung der Basiskenntnisse. A Advanced level course: Modul zur Förderung und Verstärkung der Fachkompetenz. S Specialised level course: Modul zum Aufbau von Kenntnissen und Erfahrungen in einem Spezialgebiet. C Core course: Modul des Kerngebiets eines Studienprogramms. R Related course: Unterstützungsmodul zum Kerngebiet (z.B. Vermittlung von Vor- oder Zusatzkenntnissen). M Minor course: Wahl- oder Ergänzungsmodul. 28.09.2016 Seite 2 von 11 Modulplan C++ C++ Gültig ab FS17 1 Stoffplan 1.1 Leitidee C++ ist neben Java eine weit verbreitete Programmiersprache. Dieses Modul soll aufzeigen, dass es zwar unterschiedliche Programmiersprachen gibt, jedoch die verschiedenen Konzepte mit jeder Programmiersprache umgesetzt werden können. Dank C++ 11 ist die Sprache einfacher geworden. Da die Wurzeln aber bis ins Jahr 1969 zurückreichen, hat es viele Altlasten, die ein C++-Entwickler noch beherrschen muss. Zudem ist die Sprache über Jahre gewachsen, so dass nicht alles perfekt zusammenpasst. C++ ist deutlich komplizierter als Java, was dieses Modul entsprechend anspruchsvoll macht. Aber interessierte Studenten gewinnen ganz neue Einsichten in Design und Implementation von Programmiersprachen. C++ ist eine umfangreiche Sprache. Darum sind die entsprechenden Lehrbücher alle sehr umfangreich. Das bedeutet, dass in diesem Kurs sehr viel gelesen werden muss. 1.2 Inhalt Folgende Themen werden in diesem Kurs behandelt: Programmstrukturen (Ablauf, Daten und Aufbau eines Programms) Objektorientierung (Klassen und Instanzen, Beziehungen zwischen Klassen, bzw. Beziehungen zwischen Instanzen) Vererbung (Spezialisierung, Generalisierung, abstrakte Klassen, Mehrfachvererbung …) Pointer (Konzept von Adressen und Pointern) Fehlerbehandlung (Exception-Konzept, throw, try catch …) Überladen von Operatoren Files und Streams (Ein- und Ausgabe, formatierte Ein- und Ausgabe) Lambda-Funktionen C++-Standardbibliothek (Hilfsklassen, Container, Iteratoren und Algorithmen) Das Selbststudium basiert auf dem Lehrbuch, sowie den Beispielen des Lehrbuches. In den Präsenz-Veranstaltungen werden Fragen zu den Übungen in den Themen des entsprechenden Blocks beantwortet. Die Themen werden anhand von weiteren Beispielen und Übungen vertieft. C++_FS17.docx 28.09.2016 Seite 3 von 11