de | en

Functional Programming and Verification (IN0003)
Funktionale Programmierung und Verifikation (IN0003)

Course 240990556 in WS 2020/1

General Data

Course Type lecture
Semester Weekly Hours 2 SWS
Organisational Unit Informatics 21 - Chair of Logic and Verification (Prof. Nipkow)
Lecturers Kevin Kappelmann
Tobias Nipkow
Jonas Rädle
Lukas Stevens
Dates Fri, 08:30–10:00, MI 00.08.038

Assignment to Modules

Further Information

Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.

additional remarks Module IN0001 and IN0003 cover the following topics. The split between the two modules is determined by the individual lecturer: - Information and its representation - Simple data structures: Atoms and sequences, characters and strings, numbers - Definition of algorithms using functions: - Functions and algorithms - Composition of functions without recursion - Recursive functions and algorithms - Algebraic modeling of algorithms and data structures - Examples: Sorting and Sequences - Pattern matching - Recursive data structures (lists, trees) - Typing, parametric polymorphism - Termination of functional programs - Assignment-oriented programming paradigm: - Language concepts: conditional, iteration, sequence - Data structures: arrays, records, references, pointer - Object-oriented modeling and implementation - Classes and objects - Graphical notations (UML) - Subtype polymorphism, inheritance - Interfaces - Verification of stateful models - Algorithms and dynamic data structures - Algorithmic principles: divide and conquer, greedy algorithms, etc. - Chained lists, trees, hashing, simple graphs - Efficiency analysis (non-formal) of these data structures - Outlook: declarative and functional programming - Syntax definition through grammars - Modelling of stateful systems by automata - Fundamental concepts of concurrent programming - Processes and threads, process states, operations on processes Prozessen - Modeling actions and events - Parallel programming languages - Specification of temporal behavior: Synchronous and asynchronous models execution models - Synchronization and communication - Semaphors, monitors - Consumer-producer, reader-writer - Synchronous and asynchronous communication - Rendez-vous as an example for action-oriented communication
Links Course documents
E-Learning course (e. g. Moodle)
TUMonline entry
Top of page