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.

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

The preliminary course meeting and the first lecture take place on
Thursday, 1 March 2018, from 4.15 pm to 5.45 pm FH H/oumlrsaal 2,
Freihausgebäude, Trum B, gelber Bereich, 2nd floor (instead of
"Seminarraum Argentinierstr. EAEG06" as usual).

Note: Due to construction work, the Seminarraum Argentinierstr. EAEG06
might not be available in the summer term 2018.  Please, be thus aware
of changes in room and time on short notice.

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:0001.03.2018 - 21.06.2018FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Fri16:00 - 18:0027.04.2018EI 2 Pichelmayer HS - ETIT -
Fri16:00 - 18:0018.05.2018EI 5 Hochenegg HS -
Fri16:00 - 18:0008.06.2018EI 2 Pichelmayer HS - ETIT -
Advanced Functional Programming - Single appointments
DayDateTimeLocationDescription
Thu01.03.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu08.03.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu15.03.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu22.03.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu12.04.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu19.04.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu26.04.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Fri27.04.201816:00 - 18:00EI 2 Pichelmayer HS - ETIT -
Thu17.05.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Fri18.05.201816:00 - 18:00EI 5 Hochenegg HS -
Thu24.05.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu07.06.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Fri08.06.201816:00 - 18:00EI 2 Pichelmayer HS - ETIT -
Thu14.06.201816:00 - 18:00FH Hörsaal 2 LVA 18.A05 Advanced Functional Programming
Thu21.06.201816:00 - 18:00FH Hörsaal 2 LVA 18.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.03.2018 12:00 09.03.2018 12:00 30.03.2018 12:00

Group Registration

GroupRegistration FromTo
FFP 101.03.2018 01:0009.03.2018 12:00
FFP 201.03.2018 01:0009.03.2018 12:00
FFP 301.03.2018 01:0009.03.2018 12:00
FFP 401.03.2018 01:0009.03.2018 12:00
FFP 501.03.2018 01:0009.03.2018 12:00
FFP 601.03.2018 01:0009.03.2018 12:00
FFP 701.03.2018 01:0009.03.2018 12:00
FFP 801.03.2018 01:0009.03.2018 12:00
FFP 901.03.2018 01:0009.03.2018 12:00
FFP 1001.03.2018 01:0009.03.2018 12:00
FFP 1101.03.2018 01:0009.03.2018 12:00
FFP 1201.03.2018 01:0009.03.2018 12:00
FFP 1301.03.2018 01:0009.03.2018 12:00
FFP 1401.03.2018 01:0009.03.2018 12:00
FFP 1501.03.2018 01:0009.03.2018 12:00
FFP 1601.03.2018 01:0009.03.2018 12:00
FFP 1701.03.2018 01:0009.03.2018 12:00
FFP 1801.03.2018 01:0009.03.2018 12:00
FFP 1901.03.2018 01:0009.03.2018 12:00
FFP 2001.03.2018 01:0009.03.2018 12:00
FFP 2101.03.2018 01:0009.03.2018 12:00
FFP 2201.03.2018 01:0009.03.2018 12:00
FFP 2301.03.2018 01:0009.03.2018 12:00
FFP 2401.03.2018 01:0009.03.2018 12:00
FFP 2501.03.2018 01:0009.03.2018 12:00
FFP 2601.03.2018 01:0009.03.2018 12:00
FFP 2701.03.2018 01:0009.03.2018 12:00
FFP 2801.03.2018 01:0009.03.2018 12:00
FFP 2901.03.2018 01:0009.03.2018 12:00
FFP 3001.03.2018 01:0009.03.2018 12:00
FFP 3101.03.2018 01:0009.03.2018 12:00
FFP 3201.03.2018 01:0009.03.2018 12:00
FFP 3301.03.2018 01:0009.03.2018 12:00
FFP 3401.03.2018 01:0009.03.2018 12:00
FFP 3501.03.2018 01:0009.03.2018 12:00
FFP 3601.03.2018 01:0009.03.2018 12:00
FFP 3701.03.2018 01:0009.03.2018 12:00
FFP 3801.03.2018 01:0009.03.2018 12:00
FFP 3901.03.2018 01:0009.03.2018 12:00
FFP 4001.03.2018 01:0009.03.2018 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

if required in English