Vorlesung Programmiersprachen

Prof. Dr. Bernd Fröhlich
M.Sc. Adrian Kreskowski
M.Sc. Anton Lammert

Inhalt

Das Ziel dieser Veranstaltung ist die Kenntnis und Beherrschung der wesentlichen Konzepte imperativer und moderner objektorientierter Programmiersprachen am Beispiel von C++11/14/17/20/23. Zentrale Themen der Vorlesung sind: Klassen und Klassenhierarchien, Übergabe- und Rückgabemechanismen für Funktionen und Methoden, const correctness, Speicherverwaltung und Zeiger sowie generische und funktionale Programmierung.

Die Übungen bieten den Teilnehmerinnen und Teilnehmern die Möglichkeit, den Vorlesungsstoff anhand von konkreten Aufgaben und einem abschließenden Projekt zum Thema Ray Tracing zu vertiefen.

Course Description

This course focuses on the fundamental paradigms and concepts of modern imperative and object-oriented programming languages. The accompanying lab course allows students to practice the techniques, develop short programs, and design and implement a basic ray-tracing system.

Aktuelles

Live-Vorlesung
Die Vorlesungen werden am Mittwoch um 11:00 Uhr in Präsenz im LiNT-Pool der Schwanseestraße 143 stattfinden. Die erste Vorlesung findet am 03.04. statt. Zusätzlich werden interaktive Vorlesungsvideos auf unserer Moodle-Kursseite bereitgestellt, die wöchentlich den vollständigen Vorlesungsinhalt behandeln. Die vollständige und richtige Beantwortung der im Video enthaltenen Quizfragen ist notwendig um die Vorlesungsvideos und Übungsinhalte der folgenden Wochen freizuschalten. Zu Beginn jeder Mittwochsübung besteht die Möglichkeit, Fragen zu stellen und zu diskutieren.

Übungen
Am 03. April wird um 15.15 Uhr eine einführende Übungsveranstaltung stattfinden. Dort werden neben der generellen Kursorganisation Programmierkenntnisse aufgefrischt und die für die Übung relevanten Software-Engineering Tools im Detail vorgestellt und erstmalig von den Studierenden verwendet. Bitte stellen Sie sicher, dass Sie entsprechend Ihres Betriebssystems alle auf der Moodle-Kursseite benötigten Softwarepakete installiert haben um nicht den Anschluss zu verlieren.

Abnahme der Übungsblätter
Die Übungsabnahmen finden genauso wie die Übung in Präsenz und in der Regel aller zwei Wochen und in Form von Einzelabnahmen statt.

Termine und Moodle-Kursseite

  • Moodle-Kursseite: https://moodle.uni-weimar.de/course/view.php?id=48965
    • Einschreibeschlüssel: 2024_ps_sose_cpp
  • Vorlesung (In Präsent im LiNT-Pool (Raum 2.17) in der Schwanseestraße 143)
    • Mittwochs, 11.00 - 12.30 Uhr
    • Erster Termin: 03. April 2024
  • Pflichtübung (Präsenzübung im LiNT-Pool (Raum 2.17) in der Schwanseestraße 143)
    • Montags, 15.15 - 16.45 Uhr
    • Erster Termin: 08. April 2024
    • Anmeldung und Terminvergabe für die Abnahmen via moodle.uni-weimar.de
  • Vertiefungsübung (Präsenzübung im LiNT-Pool (Raum 2.17) in der Schwanseestraße 143)
    • Mittwochs, 15.15 - 16.45 Uhr
    • Erster Termin: 03. April 2024

Prüfungstermine

  • Regulärer Prüfungszeitraum: Ende September 2024
    • die konkreten Prüfungstermine werden frühzeitig auf dieser Website veröffentlicht
    • die Prüfungsanmeldung erfolgt direkt über eine Selbsteinschreibung im Moodle-Kurs.
    • Anmeldefrist: TBA
  • Bei Bedarf im Prüfungszeitraum Anfang August oder vor der letzten Septemberwoche
    • Bitte direkten Kontakt mit Prof. Fröhlich ca. 1-2 Wochen vor gewünschtem Termin aufnehmen
  • Prüfungen nach September sind nur in begründeten Ausnahmefällen möglich
    • Begründung per Email und Terminanfrage bitte direkt an Prof. Fröhlich
  • Alle Prüfungen finden mündlich statt. Die Prüfung dauert ca. 30 Minuten.
  • Die Prüfungen werden online via BigBlueButton im Moodle-Kursraum stattfinden
  • Eine Abmeldung ist im Rahmen der in der jeweiligen Prüfungsordnung geregelten Abmeldefrist möglich. Eine erneute Anmeldung zu einem späteren Termin im Rahmen dieses Prüfungszykluses (SS 2024) ist nur möglich, falls die Abmeldung aufgrund einer Erkrankung (mit ärztlichem Attest) oder ähnlichen Gründen erfolgte.

Schein

Umfang

  • 6 ECTS, V2/Ü3
  • Modul: Software I
  • Richtet sich an:
    • Bachelor, 2. Semester Informatik oder Medieninformatik, Interessierte anderer Studiengänge
  • Voraussetzung zur Teilnahme an der Veranstaltung
    • Einführung in die Programmierung

Anforderungen

  • mündliche Prüfung
  • Teilnahme an den Pflichtübungen
  • Abschlussprojekt
  • 60% der Punkte aus den Übungsaufgaben sind Voraussetzung zur Zulassung zur mündlichen Prüfung.
  • Die Endnote setzt sich zusammen aus
    • 2/3 Note der mündlichen Abschlussprüfung (muss bestanden sein)
    • 1/3 Übungsnote (mind. 60% zur Prüfungszulassung)
    • Die Note für die Übung ergibt sich durch die Anzahl erreichter Punkte aller Aufgaben (inkl. Zusatzaufgaben) anhand folgendem Schlüssel:

      Note     Prozent Übungspunkte
      1.0        >= 95
      1.1        [95 - 94)
      1.2        [94 - 93)
      ...
      3.9        [67 - 66)
      4.0        [66 - 60)


Dokumente

Vorlesungen (nur aus dem Uni-Netz zugreifbar) sind als pdf-Dateien (Adobe Reader funktioniert zuverlässig) verfügbar. Die Unterlagen sind nur für die persönliche Nutzung zur Nachbereitung der Vorlesung und zur Prüfungsvorbereitung gedacht. Eine Weiterverbreitung ist nicht erlaubt. Mit dem Download der Unterlagen stimmen Sie diesen Bedingungen zu. Die Vorlesungsunterlagen aus dem Jahr 2021 sind noch online.  Die aktuellen Vorlesung und Übungsunterlagen finden Sie in Moodle. Die aktuellen Vorlesungen inklusive der interaktiven Beispiele finden Sie in der nachfolgenden Auflistung.

  • Einführung (3. April 2024) (pdf)
  • Klassen (10. April 2024) (pdf)
  • Datentransferobjekte (17. April 2024) (pdf)
  • Parameterüber- und Rückgabemechanismen (17. April 2024) (pdf)
  • Speicherverwaltung & Zeiger (24. April 2024) (pdf)
  • Verwaltung dynamischer Ressourcen (8. Mai 2024) (pdf)
  • Move-Semantik (8. Mai 2024) (pdf)
  • Templates (15. Mai 2024) (pdf)
  • Smart Pointer (22. Mai 2024) (pdf)
  • STL I (29. Mai 2024) (pdf)
  • STL II (5. Juni 2024) (pdf)
  • STL III (12. Juni 2024) (pdf)
  • Vererbung I (19. Juni 2024) (pdf)
  • Vererbung II (26. Juni 2024) (pdf)
  • Überschreiben, Verdecken, Redefinition (3. Juli 2024) (pdf)
  • Klassendesign (10. Juli 2024) (pdf)