Die Studierenden verstehen die Grundkonzepte von Programmiersprachen, deren zu Grunde liegenden Paradigmen und sind in der Lage die Grundkonzepte praktisch umzusetzen. Insbesondere sollen die Studierenden in der Lage sein, sich schnell in eine neue Programmiersprache einzuarbeiten und dort schnell programmieren zu können.
Die Studierenden sind in der Lage Modelle systematisch in Programme umzusetzen.
Die Studierenden sind in der Lage, die Korrektheit von Programmen zu beweisen.
Die Studierenden können aus Spezifikationen systematisch korrekte Programme konstruieren.
Modulinhalte
Programmiersprachen haben viele Konzepte gemeinsam, die man für eine schnelle Einarbeitung in eine neue Programmiersprache kennen muss. Deshalb werden hier unterschiedliche Programmierparadigmen behandelt. Jedes dieser Paradigmen ist eng verwandt mit einer Modellierungstechnik, so dass Modelle, die nach einer Modellierungstechnik entstanden sind, systematisch in Programme umgesetzt werden können. Insbesondere können dann solche Programme leicht verifiziert werden, d.h. nachgewiesen werden, dass die Modelle korrekt implementiert wurden.
Grundsätzlich müssen beim Übergang von Modellen zum Programm die Korrektheit der Programme gegenüber den Modellen verifiziert werden. In diesem Modul wird gezeigt, wie für die Modellierungstechniken des Moduls "Mathematische Grundlagen der Informatik und Konzepte der Modellierung" dies erfolgen kann. Dabei werden zunächst Programmierkonzepte, die konzeptuell nahe an den Modellierungstechniken sind, diskutiert sowie gezeigt, wie Programme verifiziert und systematisch konstruiert werden können. Im Einzelnen beinhaltet das Modul die folgenden Themen:
Funktionales Programmieren: Funktionale Programmierkonzepte, Verifikation und Validierung funktionaler Programme (Qualitätssicherung), Typkonzept, Transformation von Abstrakten Datentypen in funktionale Programme, Grenzen der Berechenbarkeit
ImperativesProgrammieren: Grundlegende Elemente und Konzepte imperativer Sprachen, Verifikation imperativer Programme (Qualitätssicherung), Typkonzept, Schrittweise Verfeinerung zur Konstruktion korrekter Programme, Implementierung abstrakter Datentypen.
Logisches Programmieren: Logische Programmierkonzepte, Grundlagen der Logikprogrammierung, SLD-Resolution.
Lehrveranstaltungsformen
Vorlesung (2 SWS)
Übung (2 SWS)
Kursus
Unterrichtsprachen
Deutsch, Englisch
Dauer in Semestern
1 Semester Semester
Angebotsrhythmus Modul
jedes Wintersemester
Aufnahmekapazität Modul
unbegrenzt
Prüfungsebene
Credit-Points
5 CP
Modulabschlussnote
LV1: %; LV2: %; LV3: %.
Faktor der Modulnote für die Endnote des Studiengangs
1
Hinweise
zu den Studienleisungen: (nicht die eigene Lösung erklären können bzw. die Vorstellung ablehnen bedeutet, dass alle Aufgaben der Übungsserie als nicht bearbeitet gelten)
Modulveranstaltung
Lehrveranstaltungsform
Veranstaltungstitel
SWS
Workload Präsenz
Workload Vor- / Nachbereitung
Workload selbstgestaltete Arbeit
Workload Prüfung incl. Vorbereitung
Workload Summe
LV 1
Vorlesung
Vorlesung
2
0
LV 2
Übung
Übung
2
0
LV 3
Kursus
Bearbeitung der Übungsaufgaben/Selbststudium
0
Workload modulbezogen
150
150
Workload Modul insgesamt
150
Prüfung
Prüfungsvorleistung
Prüfungsform
LV 1
LV 2
LV 3
Gesamtmodul
Bearbeitung von mindestens 80% der Übungsaufgaben und auf Anfrage erfolgreiche Vorstellung der Lösung einer bearbeiteten Aufgabe (siehe Hinweise)