Grundlagen der Programm- und Systementwicklung
Foundations of program and system development

Modul IN2078

Dieses Modul wird durch Fakultät für Informatik bereitgestellt.

Diese Modulbeschreibung enthält neben den eigentlichen Beschreibungen der Inhalte, Lernergebnisse, Lehr- und Lernmethoden und Prüfungsformen auch Verweise auf die aktuellen Lehrveranstaltungen und Termine für die Modulprüfung in den jeweiligen Abschnitten.

Basisdaten

IN2078 ist ein Semestermodul in Deutsch auf Bachelor-Niveau und Master-Niveau das im Wintersemester angeboten wird.

Das Modul ist Bestandteil der folgenden Kataloge in den Studienangeboten der Physik.

  • Allgemeiner Katalog der nichtphysikalischen Wahlfächer
GesamtaufwandPräsenzveranstaltungenUmfang (ECTS)
180 h 75 h 6 CP

Inhalte, Lernergebnisse und Voraussetzungen

Inhalt

System-und Programmentwicklung umfasst die Gesamtheit aller Tätigkeiten, die bei der Erstellung von Software bzw. Programmen als in einer formalen Sprache abgefasste Beschreibungen von Daten und Algorithmen zur Lösung einer Aufgabe im Sinn einer Anwendung anfallen. Eine der großen Schwierigkeiten bei der Programmentwicklung besteht in der unmissverständlichen Beschreibung und Dokumentation der einem Programm zugrunde liegenden Modelle, Theorien, Strukturen, Entscheidungen und der verwendeten Ideen und zugehörigen Beschreibungsmittel. Die Vorlesung präsentiert die wissenschaftlichen Grundlagen, und damit die logische und mathematische Fundierung der dabei auftretenden Konzepte, Modelle und Methoden. Neben diesen Modellen und Beschreibungsmitteln ist für die systematische Programmentwicklung ein methodischer Rahmen erforderlich: Entwicklungsregeln zur Durchführung von Entwicklungsschritten sowie ein Konzept, das die Schritte bei einer Programmentwicklung in eine sinnvolle Reihenfolge bringt. In der Vorlesung werden einzelne Entwicklungsschritte behandelt und der Schwerpunkt auf die methodischen und beschreibungstechnischen Grundlagen des Software Engineerings gelegt. Es werden folgende Schwerpunkte für die Modellbildung, Spezifikation, Verfeinerung und Implementierung behandelt: - Datenmodellierung: Abstrakte Beschreibung von Daten-und Rechenstrukturen - Signaturen, Algebren, Modelle und Beschreibungsmittel - Axiomatische Beschreibungen - Datentypdeklarationen und Objektmodell - Wechsel der Datenstruktur; schrittweise Entwicklung von Daten - Modellierung von Rechenvorschriften und Algorithmen: - funktionale Programmierung: Spezifikation, Verfeinerung und Verifikation - Zuweisungsorientierte Programmierung: Spezifikation, Zusicherungen, Hoare- Regeln - Prädikative Spezifikation, schrittweise Verfeinerung, Verifikation - Geflechtstrukturen - Spezifikation sequentieller OO-Programme

Lernergebnisse

Nach der Teilnahme an dem Modul sind die Studierenden in der Lage, algebraische und axiomatische Spezifikationen einfacher IT-Systeme zu entwickeln. Sie können Spezifikationen durch schrittweise Verfeinerung ableiten. Sie verstehen die mathematischen Grundlagen abstrakter Algebra sowie der Fixpunkttheorie und können Konstruktionsprinzipien formaler Spezifikationen rechtfertigen. Sie verstehen die formalen Grundlagen objektorientierter, funktionaler und imperativer Programmierung und können klassische Korrektheitskalküle anwenden.

Voraussetzungen

Modul IN0001: Einführung in die Informatik 1; Modul IN0003: Einführung in die Informatik 2; Modul IN0007: Grundlagen: Algorithmen und Datenstrukturen (empfohlen)

Lehrveranstaltungen, Lern- und Lehrmethoden und Literaturhinweise

Lehrveranstaltungen und Termine

ArtSWSTitelDozent(en)Termine
VU 5 Grundlagen der Programm- und Systementwicklung (IN2078) Dienstag, 09:45–12:15
Freitag, 10:00–12:00

Lern- und Lehrmethoden

Vorlesung, Übungen

Medienformen

Folien in der Vorlesung; Tafel in den Übungen.

Literatur

- M. Broy, R. Steinbrüggen. Modellbildung in der Informatik. Springer, 2003. - E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976. - M.A. Jackson. Software Requirements & Specification - a Lexicon of Practice, Principles and Prejudices. Addison-Wesley, 1995. - B. Meyer. Objektorientierte Softwareentwicklung. Hanser/Prentice-Hall, 1990. - F.L. Bauer und H. Wössner. Algorithmische Sprache und Programmentwicklung. Springer, 1981. - N. Wirth. Algorithmen und Datenstrukturen. 3. Aufl. Teubner, 1983. - R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall, 1988. - K.R. Apt und E.R. Olderog. Programmverifikation. Springer, 1994.

Modulprüfung

Beschreibung der Prüfungs- und Studienleistungen

Klausur, die die erwarteten Lernergebnisse und erworbenen Kompetenzen prüft: Erstellung formaler Spezifikationen; Verständnis der Grundlagen abstrakter Algebra und der Fixpunkttheorie. Erstellung von Beweisen bzw. Widerlegungen mathematischer Zusammenhänge in diesen Gebieten insb. von Korrektheit und Terminierung.

Wiederholbarkeit

Eine Wiederholungsmöglichkeit wird am Semesterende angeboten.

Aktuell zugeordnete Prüfungstermine

Derzeit sind in TUMonline die folgenden Prüfungstermine angelegt. Bitte beachten Sie neben den oben stehenden allgemeinen Hinweisen auch stets aktuelle Ankündigungen während der Lehrveranstaltungen.

Titel
ZeitOrtInfoAnmeldung
Grundlagen der Programm- und Systementwicklung
Do, 23.2.2017, 10:30 bis 12:00 MW: 1801
bis 15.1.2017 (Abmeldung bis 16.2.2017)

Kondensierte Materie

Wenn Atome sich zusammen tun, wird es interessant: Grundlagenforschung an Festkörperelementen, Nanostrukturen und neuen Materialien mit überraschenden Eigenschaften treffen auf innovative Anwendungen.

Kern-, Teilchen-, Astrophysik

Ziel der Forschung ist das Verständnis unserer Welt auf subatomarem Niveau, von den Atomkernen im Zentrum der Atome bis hin zu den elementarsten Bausteinen unserer Welt.

Biophysik

Biologische Systeme, vom Protein bis hin zu lebenden Zellen und deren Verbänden, gehorchen physikalischen Prinzipien. Unser Forschungsbereich Biophysik ist deutschlandweit einer der größten Zusammenschlüsse in diesem Bereich.