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.

2016S, 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

  • 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

 

 

Additional information

A joint pre-meeting for all courses offered by the Compilers and
Languages group tentatively takes place on Wednesday, 2 March 2016,
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 take place on Thursday, 3 March
2016, 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.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Thu16:00 - 18:0003.03.2016 - 23.06.2016Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri16:00 - 18:0004.03.2016EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Fri16:00 - 18:0011.03.2016EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Fri16:00 - 18:0018.03.2016EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Fri16:00 - 18:0025.03.2016EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Fri16:00 - 18:0010.06.2016EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Fri16:00 - 18:0017.06.2016EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Advanced Functional Programming - Single appointments
DayDateTimeLocationDescription
Thu03.03.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri04.03.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Thu10.03.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri11.03.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Thu17.03.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri18.03.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Fri25.03.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 Fortgeschrittene funktionale Programmierung
Thu07.04.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu14.04.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu21.04.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu28.04.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu12.05.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu19.05.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu02.06.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu09.06.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri10.06.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Thu16.06.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri17.06.201616:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Thu23.06.201616:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
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

Curricula

Study CodeObligationSemesterPrecon.Info
066 931 Computational Intelligence Mandatory elective
066 937 Software Engineering & Internet Computing Mandatory elective
066 950 Didactic for Informatics Mandatory elective

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

German