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.

2017S, 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, 1 March 2017,
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, 2 March
2017, 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:0002.03.2017 - 22.06.2017Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri16:00 - 18:0005.05.2017EI 4 Reithoffer HS LVA 185.A05 Advanced Functional Programming
Fri16:00 - 18:0019.05.2017EI 5 Hochenegg HS LVA 185.A05 Advanced Functional Programming
Fri16:00 - 18:0002.06.2017EI 4 Reithoffer HS LVA 185.A05 Advanced Functional Programming
Fri16:00 - 18:0009.06.2017EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Advanced Functional Programming - Single appointments
DayDateTimeLocationDescription
Thu02.03.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu09.03.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu16.03.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu23.03.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu30.03.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu06.04.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu27.04.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu04.05.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri05.05.201716:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 Advanced Functional Programming
Thu11.05.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Thu18.05.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri19.05.201716:00 - 18:00EI 5 Hochenegg HS LVA 185.A05 Advanced Functional Programming
Thu01.06.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri02.06.201716:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 Advanced Functional Programming
Thu08.06.201716:00 - 18:00Seminarraum Argentinierstrasse Fortgeschrittene funktionale Programmierung
Fri09.06.201716:00 - 18:00EI 4 Reithoffer HS LVA 185.A05 VU Advanced Functional Programming
Thu22.06.201716: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

Begin End Deregistration end
01.03.2017 12:00 10.03.2017 13:00 31.03.2017 13:00

Group Registration

GroupRegistration FromTo
FFP 101.03.2017 06:0010.03.2017 12:00
FFP 101.03.2017 12:0010.03.2017 13:00
FFP 201.03.2017 06:0010.03.2017 12:00
FFP 201.03.2017 12:0010.03.2017 13:00
FFP 301.03.2017 06:0010.03.2017 12:00
FFP 301.03.2017 12:0010.03.2017 13:00
FFP 401.03.2017 06:0010.03.2017 12:00
FFP 401.03.2017 12:0010.03.2017 13:00
FFP 501.03.2017 06:0010.03.2017 12:00
FFP 501.03.2017 12:0010.03.2017 13:00
FFP 601.03.2017 06:0010.03.2017 12:00
FFP 601.03.2017 12:0010.03.2017 13:00
FFP 701.03.2017 06:0010.03.2017 12:00
FFP 701.03.2017 12:0010.03.2017 13:00
FFP 801.03.2017 06:0010.03.2017 12:00
FFP 801.03.2017 12:0010.03.2017 13:00
FFP 901.03.2017 06:0010.03.2017 12:00
FFP 901.03.2017 12:0010.03.2017 13:00
FFP 1001.03.2017 06:0010.03.2017 12:00
FFP 1001.03.2017 12:0010.03.2017 13:00
FFP 1101.03.2017 06:0010.03.2017 12:00
FFP 1201.03.2017 06:0010.03.2017 12:00
FFP 1301.03.2017 06:0010.03.2017 12:00
FFP 1401.03.2017 06:0010.03.2017 12:00
FFP 1501.03.2017 06:0010.03.2017 12:00
FFP 1601.03.2017 06:0010.03.2017 12:00
FFP 1701.03.2017 06:0010.03.2017 12:00
FFP 1801.03.2017 06:0010.03.2017 12:00
FFP 1901.03.2017 06:0010.03.2017 12:00
FFP 2001.03.2017 06:0010.03.2017 12:00
FFP 2101.03.2017 06:0010.03.2017 12:00
FFP 2201.03.2017 06:0010.03.2017 12:00
FFP 2301.03.2017 06:0010.03.2017 12:00
FFP 2401.03.2017 06:0010.03.2017 12:00
FFP 2501.03.2017 06:0010.03.2017 12:00

Curricula

Study CodeObligationSemesterPrecon.Info
066 931 Logic and Computation 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