de | en

Foundations of Program and System Development

Module IN2078

This Module is offered by TUM Department of Informatics.

This module handbook serves to describe contents, learning outcome, methods and examination type as well as linking to current dates for courses and module examination in the respective sections.

Basic Information

IN2078 is a semester module in German language at Bachelor’s level and Master’s level which is offered in winter semester.

This module description is valid to SS 2020.

Total workloadContact hoursCredits (ECTS)
180 h 75 h 6 CP

Content, Learning Outcome and Preconditions

Content

System and program development cover all activities to build software and/or programs - seen as descriptions of data and algorithms in a formal language - to define an application and task-oriented software solution. One of the large difficulties of program development is founded in the precise and unambiguous description and documentation of the program based on the associated description media, underlying models, theories, structures, decisions and the used ideas. The lecture presents the scientific base, and thus logical and mathematical founding of the concepts, models and methods arising with it. Beside these models and description media a methodical framework is necessary - development rules for the execution of design steps as well as a concept for the systematic program development. In the lecture only individual development steps are treated and the main focus is given by the methodical and description- technical foundation in software engineering. Topics are
- Data modelling: Abstract description of data structures
++ Signatures, algebras, models and description media
++ Axiomatic descriptions
++ Data type declarations and object model
++ Change of the data structure; stepwise development of data
- Modelling of program specifications and algorithms:
++ Functional programming: specification, refinement and verification
++ Procedure-oriented programming: specification, assumptions, Hoare-rules
++ Predicative specification, stepwise refinement, verification
++ Network structures
++ Sequential OO-programs and their specification

Learning Outcome

At the end of the module students know the essential fundamental terms of specification, modular design, abstraction, refinement, and verification techniques as well as functional and imperative programming. Students have a deep understanding in modeling of data structure, algebras, program specifications and algorithms. They obtain methods competence in the field of systematic, formal development of programs.

Preconditions

Modul IN0001: Introduction to Informatics 1; Modul IN0003: Introduction to Informatics 2; Modul IN0007: Fundamentals of Algorithms and Data Structures (recommended)

Courses, Learning and Teaching Methods and Literature

Courses and Schedule

Learning and Teaching Methods

The module consists of a lecture and an accompanying exercise. The contents of the lecture-slides are conveyed in the lecture and through presentations.
Students should be able to study the literature and the content of the lectures to stimulate discussion of the topics. The exercises may be partly carried out in groups and must answer concrete questions work on selected examples.

Media

Lecture with slides, tutorial with blackboard

Literature

- 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.

Module Exam

Description of exams and course work

A 90 minutes exam to examine the expected learning outcomes and gained competences. Students should be able to write formal specifications, demonstrate an understanding of basic abstract algebra, and write the Fixed-point theory. They should be able to prove (or disprove) mathematical theorems in these areas, especially in correctness and termination.

Exam Repetition

The exam may be repeated at the end of the semester.

Top of page