185.A05 Advanced Functional Programming
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2019S, VU, 2.0h, 3.0EC, to be held in blocked form

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise

Aim of course

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.

Subject of course

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

  • Testing
  • Verification

Part IV: Advanced Language Concepts

  • Abstract Data Types
  • Functional Arrays
  • 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

References

Appendix

  • Mathematical Foundations

 

 

Additional information

The preliminary course meeting and the first lecture take place on
Thursday, 7 March 2019, from 4.15 pm to 5.45 pm.

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.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Thu16:00 - 18:0007.03.2019 - 13.06.2019Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Fri16:00 - 18:0022.03.2019EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Fri16:00 - 18:0007.06.2019EI 3A Hörsaal LVA 185.A05 Advanced Functional Programming
Fri16:00 - 18:0014.06.2019EI 3A Hörsaal LVA 185.A05 Advanced Functional Programming
Advanced Functional Programming - Single appointments
DayDateTimeLocationDescription
Thu07.03.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu14.03.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu21.03.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Fri22.03.201916:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Thu28.03.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu04.04.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu11.04.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu02.05.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu09.05.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu16.05.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu23.05.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Thu06.06.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Fri07.06.201916:00 - 18:00EI 3A Hörsaal LVA 185.A05 Advanced Functional Programming
Thu13.06.201916:00 - 18:00Seminarraum Argentinierstrasse LVA 185.A05 Advanced Functional Programming
Fri14.06.201916:00 - 18:00EI 3A Hörsaal LVA 185.A05 Advanced Functional Programming
Course is held blocked

Examination modalities

Grading of assignments and an oral examination. The final grade is
composed of the grades of the regular assignments (50%) and the grade
of the final oral examination (50%). Further information on the
examination modalities are given on the homepage of the course.

Course registration

Begin End Deregistration end
01.02.2019 01:00 18.03.2019 18:00 31.03.2019 23:59

Group Registration

GroupRegistration FromTo
FFP 107.03.2019 01:0015.03.2019 12:00
FFP 207.03.2019 01:0015.03.2019 12:00
FFP 307.03.2019 01:0015.03.2019 12:00
FFP 407.03.2019 01:0015.03.2019 12:00
FFP 507.03.2019 01:0015.03.2019 12:00
FFP 607.03.2019 01:0015.03.2019 12:00
FFP 707.03.2019 01:0015.03.2019 12:00
FFP 807.03.2019 01:0015.03.2019 12:00
FFP 907.03.2019 01:0015.03.2019 12:00
FFP 1007.03.2019 01:0015.03.2019 12:00
FFP 1107.03.2019 01:0015.03.2019 12:00
FFP 1207.03.2019 01:0015.03.2019 12:00
FFP 1307.03.2019 01:0015.03.2019 12:00
FFP 1407.03.2019 01:0015.03.2019 12:00
FFP 1507.03.2019 01:0015.03.2019 12:00
FFP 1607.03.2019 01:0015.03.2019 12:00
FFP 1707.03.2019 01:0015.03.2019 12:00
FFP 1807.03.2019 01:0015.03.2019 12:00
FFP 1907.03.2019 01:0015.03.2019 12:00
FFP 2007.03.2019 01:0015.03.2019 12:00
FFP 2107.03.2019 01:0015.03.2019 12:00
FFP 2207.03.2019 01:0015.03.2019 12:00
FFP 2307.03.2019 01:0015.03.2019 12:00
FFP 2407.03.2019 01:0015.03.2019 12:00
FFP 2507.03.2019 01:0015.03.2019 12:00
FFP 2607.03.2019 01:0015.03.2019 12:00
FFP 2707.03.2019 01:0015.03.2019 12:00
FFP 2807.03.2019 01:0015.03.2019 12:00
FFP 2907.03.2019 01:0015.03.2019 12:00
FFP 3007.03.2019 01:0015.03.2019 12:00
FFP 3107.03.2019 01:0015.03.2019 12:00
FFP 3207.03.2019 01:0015.03.2019 12:00
FFP 3307.03.2019 01:0015.03.2019 12:00
FFP 3407.03.2019 01:0015.03.2019 12:00
FFP 3507.03.2019 01:0015.03.2019 12:00
FFP 3607.03.2019 01:0015.03.2019 12:00
FFP 3707.03.2019 01:0015.03.2019 12:00
FFP 3807.03.2019 01:0015.03.2019 12:00
FFP 3907.03.2019 01:0015.03.2019 12:00
FFP 4007.03.2019 01:0015.03.2019 12:00

Curricula

Literature

No lecture notes are available.

Previous knowledge

Basic knowledge of the functional programming paradigm as
e.g. imparted in the course LVA 185.A03 "Funktionale Programmierung"
is mandatory.

Preceding courses

Accompanying courses

Miscellaneous

Language

if required in English