Übersicht#

Herzlich willkommen zum Kurs Einführung in C++ (und C).

Kurszeit und -Ort: Mittwoch, jeweils 14:15 bis ca. 15:45 Uhr in M 3.

Hinweise zum Kurs:#

  • Vorausgesetzt werden Kenntnisse der imperativen und Grundkenntnisse der objektorientierten Programmierung. Informatik I und II, Kenntnisse in einer anderen Programmiersprache wie z. B. Java.

  • Dieser Kurs soll eine Einführung in C++ geben (und dazu beginnend bei C, worauf im weiteren Verlauf aufgebaut wird).

  • Im Kurs wird praktisch gecoded und entwickelt – bringen sie daher unbedingt einen eigenen Laptop für die Software-Entwicklung mit.

  • Arbeiten sie dabei gerne in Teams – und unterstützen sich gegenseitig!

Erfolgreiches Abschliessen des Kurses:#

Es gibt eine abschliessend zu implementierende Aufgabe, die bis zum Ende des Semesters in Kleingruppen zu realisieren ist. Ansonsten sind die Zwischentasks so angelegt, dass sie sie an die Programmiersprache und den Praxis-bezogenen Einsatz heranführen. Gerade für schon erfahrene Programmierer und Entwickler sind diese daher vermutlich einfach zu realisieren – und sind auch nicht verpflichtend. Prüfen sie aber einmal, ob sie Mitstudierenden hier aushelfen können.

Themen und Termine#

Grundsätzlich ist der Kurs in zwei Bereiche geteilt, die abwechselnd wöchentlich stattfinden: Auf der einen Seite steht die Einführung von Konzepten (Vorlesungsanteil). In diesem Teil werden grundlegende Paradigmen und Eigenschaften der Programmiersprachen eingeführt, wobei in diesen Einheiten parallel jeweils kleine Toy-Beispiele zum Einüben begleitend realisiert werden sollen.

Auf der anderen Seite (Tasks) werden in den abwechselnd dazu begleitenden Übungen jeweils in einem etwas größeren Anwendungskonzept / Task die eingeführten Konzepte angewandt und in einem vollständigen Programmkontext umgesetzt.

Nr.

Termin

Thema

1

17.4.

Einführung, Perspektiven Sofware Eng., Imperative Programmierung

2

24.4.

Datenstrukturen in C und C++: Pointer und Referenzen, Structs, …

Task A

15.5.

(Generative Sprachmodelle realisieren als einfacher ChatBot)

3

5.6.

Objektorientierte Programmierung und Systementwicklung

Task B

12.6.

Zweites Beispieltask

4

19.6.

Test-basierte Entwicklung, STL

5/6

26.6.

Programmierwerkzeuge und KI-gestützte Entwicklung, Zusammenfassung

Abgabe finale Task bis Ende August 2024

Materialien zum Kurs#

Alle Materialien werden auf den Servern der Universität Münster gehostet.

  • Die im Kurs präsentierten Slides sind hier zu finden. Hierin werden grundlegende Konzepte eingeführt und veranschaulicht.

  • Ansonsten organisiert dies jupyterbook die verschiedenen Aufgaben und Tasks (größere, zusammenhängende Programmieraufgabe).

  • In den ersten Terminen werden wir dabei C++ in notebooks ausführen auf dem JupyterHub der Universität Münster. Diese können direkt gestartet werden unter diesem link – dabei muss das “Software Development” Image (3.3.0) ausgewählt werden.

  • Allgemein liegt der dazugehörende Code und der Code, der für die Tasks zur Verfügung gestellt wird in diesem gitlab bereit.