Programmieren 2 SS'23
Vorlesung mit großer und kleiner Übung
Prof. Dr.-Ing. Martin Eisemann
Hörerkreis: Bachelor
Kontakt: prog2@cg.cs.tu-bs.de
Modul: INF-PRS-44
Vst.Nr.: 4210001, 4210002
Aktuelles
Die erste Veranstaltung findet am 18.04.2023 statt.
Bei Inkonsistenzen mit Stud.IP haben die Informationen auf dieser Webseite Vorrang.
Beschreibung
Nach Abschluss dieses Moduls besitzen die Studierenden vertiefte Kenntnisse der imperativen und objektorientierten Programmierung. Sie sind in der Lage, mittelgroße Programme selbstständig zu entwickeln und dabei Aspekte der strukturierten Programmierung zu berücksichtigen.
Inhalt
- Vertiefung der objektorientierten Programmierung anhand der Sprache C++
- Programmierung dynamischer und rekursiver Datenstrukturen
- Grundlagen der Parallelprogrammierung
- Grundlagen der Grafikprogrammierung
- Clean Code
- Datensammlungen und Collections
- Generizität
- Funktionen höherer Ordnung
- Speichermanagement
- Grundlagen der funktionalen Programmierung
Anmeldung
Sofern Sie noch keinen besitzen, erstellen Sie einen Account auf unserem Instituts-Git Server — nicht TU-GitLab oder GitHub:
- Email: Ihre @tu-bs.de Email Adresse
- Name: wie Ihre @tu-bs.de Email Adresse, z.B max.muster oder m.mustermann
Nutzen Sie nach der Gruppenzuordnung (bis 07.05. 23:59 Uhr) unser Online-Teilnahmeformular. Dieses finden Sie direkt auf unserer Webseite, unter Teaching > Course Enrollment.
Diese Anmeldung ist informell und ersetzt nicht die Anmeldung über das Prüfungsamt.
Ort und Zeit
LIVE Fragestunde.
Der Kurs selbst findet als Courseware in Stud.IP statt.
Wöchentlich Dienstags, 08:00–09:30 Uhr, beginnend am 18.04.
Hörsaal: SN 19.1
Wöchentlich Freitags, 11:30–13:00 Uhr, beginnend am 21.04.
Hörsaal: SN 19.1
Wöchentlich, beginnend in der Woche vom 24.-28.04.
TBA
Wichtige Fristen
18.04. 19:00 Uhr
Start der Anmeldung der Übungsgruppen in Stud.IP
24.-28.04.
Finale Gruppeneinteilung in der ersten kleinen Übung
28.04. 19:00 Uhr
Ende der Anmeldung der Übungsgruppen
07.05. 23:59 Uhr
Anmeldung auf unserer Webseite
Vorlesungen
Die Vorlesung wird als Courseware in Stud.IP durchgeführt, d.h. Sie müssen das bereitgestellte Video/Material vor der jeweiligen Veranstaltung bearbeiten. Die Vorlesungszeit kann für Fragen und vertiefende Thematiken genutzt werden, die nicht in der Courseware beantwortet werden konnten.
Die Vorlesungsfolien finden sie hier. Beachten Sie, dass die Folien nicht ausreichend sind für eine Vorbereitung auf die Prüfung und nur einen Bruchteil des Inhaltes der Courseware abbilden.
Große Übungen
- Besprechung der Musterlösung des letzten Übungsblatts.
- Vorstellung von Hinweisen und Tipps zum neuen Übungsblatt.
In der ersten großen Übung gibt es eine kurze Einführung und ein paar allgemeine Infos zur Gruppeneinteilung und dem weiteren Ablauf.
Kleine Übungen
In der ersten Woche (24.-28.04.)
- Finale Gruppeneinteilung.
- Zugriff auf die Abgabe-Repos auf unserem Git Server.
- Hilfe bei Setup-Problemen.
In der zweiten Woche
- Hilfe bei Setup-Problemen.
In den folgenden Wochen
- Sie müssen 50% der Gesamtpunktzahl aller Übungsblätter erreichen.
- Die Übungsbetreuer wählen zufällige Personen für die Präsentation der abgegebenen Lösungen. Können diese nicht erklären werden, wird die Abgabe mit 0 Punkten bewertet.
Die Präsentationen in den kl. Übungen sind verpflichtender Teil der Studienleistung. Bei Abwesenheit wird die entsprechende Abgabe mit 0 Punkten bewertet.
Sollten sich im Laufe des Semesters terminliche Probleme mit Ihrem gewählten kl. Übungstermin ergeben, sodass Sie Ihre Abgaben nicht mehr präsentieren könnten, melden Sie sich frühzeitig bei uns, um einen Übungswechsel zu besprechen!
Aufgabenblätter
Die Aufgabenblätter (PDF) und Code-Vorgaben (ZIP) werden Mittwochs unter Dateien in Stud.IP hochgeladen.
Die Bearbeitungszeit läuft jeweils bis zum Mittwoch der darauffolgenden Woche.
Blatt 1
IDE Setup, Hello World, Debugging
Abgabe: 03.05.
Präsentation: 08.05.–12.05.
Blatt 2
Datentypen, Kontrollstrukturen, Funktionen, Mehrere Dateien
Abgabe: 10.05.
Präsentation: 22.05.–26.05.
Blatt 3
CMake, Klassen, Clean Code
Abgabe: 24.05.
Präsentation: 05.06.–09.06.
Blatt 4
Smart Pointer, Polymorphismus, Exceptions, Operatorüberladung
Abgabe: 07.06.
Präsentation: 12.06.–16.06.
Blatt 5
Operatorüberladung als *friend*, Template-Funktionen und -Klassen (Generizität)
Abgabe: 14.06.
Präsentation: 19.06.–23.06.
Blatt 6
Range-based for-loop, Lambdas, std::pair
Abgabe: 21.06.
Präsentation: 26.06.–30.06.
Blatt 7
std::array, std::set, std::priority_queue
Abgabe: 28.06.
Präsentation: 03.07.–07.07.
Blatt 8
Abgabe: 05.07.
Präsentation: 10.07.–14.07.
Blatt 9
Nebenläufigkeit: Threads, Atomics, Mutex
Abgabe: 12.07.
Präsentation: 17.07.–21.07.
Prüfung
Prüfungszeitraum siehe unter Ort und Zeit.
Eventuelle Änderungen werden in der Vorlesung und auf dieser Webseite rechtzeitig bekanntgegeben.
- Prüfungsform: (Klausurähnliche) Hausarbeit mit EvaExam
- Scheinerwerb durch Bestehen der Prüfung (mind. 50% der Punkte, ggf. Ausnahmen durch Anhang 5 der APO)
- Voraussetzung zum Modulabschluss: mindestens 50% der Punkte aus den Übungen erreicht.
- Studierende müssen sich beim Prüfungsamt anmelden!
Eine Probeprüfung finden Sie hier.
Ergänzungsprüfung
Falls Sie eine mündliche Ergänzungsprüfung benötigen, weil Sie im letzten regulären Versuch die Prüfung nicht bestanden haben, so senden Sie bitte umgehend nach Erhalt der Note (also wenn diese offiziell beim Prüfungsamt eingetragen wurde) eine Email mit der Bitte um mündliche Ergänzungsprüfung an prog2@cg.cs.tu-bs.de unter Angabe ihres vollen Namens, Matrikelnummer, TU Emailadresse und Studiengang.
Die mündlichen Ergänzungsprüfungen finden in der Regel gesammelt jeweils 1x im Semester statt. Ein Termin wird ihnen rechtzeitig vorher mitgeteilt.