The participants shall conceive in theory and practice advanced
concepts and principles of functional programming and their
applications, and be able to use and apply them competently and
adequately in known as well as in new application scenarios.
The course is concerned with advanced concepts and principles of
functional programming and their applications. The lecture part of the
course stretches from functional programming principles to quality
assurance, advanced languages concepts, and applications. Regularly
assigned exercises of the tutorial part of the course give a hands-on
experience of applying the concepts and principles to problems of
suitable kind, size and complexity to get to a profound understanding
of them in theory and practice.
Part I: Motivation
- Why Functional Programming Matters
Part II: Programming Principles
- Programming with Streams
- Programming with Higher-Order Functions
- Equational Reasoning
Part III: Quality Assurance
Part IV: Advanced Language Concepts
- Functional Arrays
- Abstract Data Types
- Monoids
- Functors
- Monads
- Arrows
Part V: Applications
- Parsing
- Logical Programming Functionally
- Pretty Printing
- Functional Reactive Programming
Part VI: Extensions and Prospectives
- Extensions for Parallelism and Real World Programming
- Conclusions and Prospectives
Due to illness the lecture course can not start as planned in the
first week of March. Its start has to be postponed for an indefinite
amount of time, and will be announced here as soon as possible.
[Original Planning: A joint pre-meeting for all courses offered by the Compilers and
Languages group tentatively takes place on Wednesday, 5 March 2014, 1.00pm
-2.00pm, in the lecture room EI4, 2nd floor, Gußhausstr. 25-29.
A specific pre-meeting for the lecture course LVA "Advanced functional
Programming" and the first lecture tentatively take place on Thursday, 6 March
2014, at 4.15pm in the "Seminarraum Argentinierstr.". ]
ECTS Break Down:
The course is assigned 3.0 ECTS points. This corresponds to an average
workload of 75 hours. This average workload is divided among the
various parts of the course as follows:
- Attending the lectures, pre- and post-processing: 35 hours.
- Assignments: 30 hours.
- Preparation for the examination and oral examination: 10 hours.