185.A03 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.

2016W, 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 students gain a comprehensive theoretical and practical
understanding of the foundations, principles, and concepts of
functional programming, learn to valuate their eligibility for the
solution of programming tasks, and to apply them adequately and
meaningfully in the functional programming style.

Subject of course

The course introduces the principles and concepts of functional
programming, where it stretches from the foundations to the
application. Using concrete problems as examples it will be
demonstrated and discussed how to use them for solving problems in the
complementary plenary tutorial Haskell Live. Own proposals to solve
specific problems can be presented and put up for
discussion. Practical assignments as part of the lab tutorial offer
the opportunity to independently apply and practice the functional
programming style, and to gain a deep practical understanding of the
concepts and principles of functional programming. For demonstration
and implementation in course and tutorials the state-of-the-art
functional programming language Haskell is used.

Part I: Introduction

  • Motivation
  • Basics of Haskell
  • Recursion and Types of Recursion

Part II: Applicative Programming      

  • Evaluating Expressions
  • Program Development and Program Understanding
  • Datatype Declarations

Part III: Functional Programming

  • Higher-Order Functions
  • Parametric and ad hoc Polymorphism

Part IV: Foundations of Functional Programming

  • Evaluation Strategies
  • Formal Computation Models
  • Lambda Calculus

Part V: Extensions and Advanced Concepts

  • Patterns
  • Moduls
  • Input and Output
  • Programming Principles with Streams and Combinators
  • Monomorphic and Polymorphic Type Inference
  • Error Handling

Part VI: Conclusions and Prospectives

  • Summary and Outlook

Additional information

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: 30 hours.
  • Attending the plenary tutorial "Haskell Live," attending "Haskell Private", pre- and post-processing: 10 hours.
  • Programming assignments: 30 hours.
  • Preparation for the examination and written examination: 5 hours.

The lecture course starts on Tue, 4 October 2016, 08.15am-09.45am.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Tue08:00 - 10:0004.10.2016 - 17.01.2017Informatikhörsaal - ARCH-INF Functional Programming
Thu16:00 - 18:0006.10.2016EI 3 Sahulka HS - UIW LVA 185.A03 Functional Programming
Wed08:00 - 10:0012.10.2016GM 2 Radinger Hörsaal - TCH LVA 185.A03 VU Functional Programming
Thu16:00 - 17:3013.10.2016EI 9 Hlawka HS - ETIT LVA 185.A03 Functional Programming
Fri14:00 - 15:0014.10.2016 - 13.01.2017Informatikhörsaal - ARCH-INF Funktionale Programmierung
Fri15:00 - 16:0021.10.2016Informatikhörsaal - ARCH-INF LVA 185.A03 VU Functional Programming
Thu16:00 - 18:0003.11.2016Informatikhörsaal - ARCH-INF LVA 185.A03 Functional Programming
Fri08:00 - 10:0025.11.2016EI 10 Fritz Paschke HS - UIW LVA 185.A03 VU Functional Programming
Fri08:00 - 10:0016.12.2016EI 10 Fritz Paschke HS - UIW LVA 185.A03 VU Functional Programming
Functional Programming - Single appointments
DayDateTimeLocationDescription
Tue04.10.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Thu06.10.201616:00 - 18:00EI 3 Sahulka HS - UIW LVA 185.A03 Functional Programming
Tue11.10.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Wed12.10.201608:00 - 10:00GM 2 Radinger Hörsaal - TCH LVA 185.A03 VU Functional Programming
Thu13.10.201616:00 - 17:30EI 9 Hlawka HS - ETIT LVA 185.A03 Functional Programming
Fri14.10.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Tue18.10.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Fri21.10.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Fri21.10.201615:00 - 16:00Informatikhörsaal - ARCH-INF LVA 185.A03 VU Functional Programming
Tue25.10.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Fri28.10.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Thu03.11.201616:00 - 18:00Informatikhörsaal - ARCH-INF LVA 185.A03 Functional Programming
Fri04.11.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Tue08.11.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Fri11.11.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Fri18.11.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Tue22.11.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Fri25.11.201608:00 - 10:00EI 10 Fritz Paschke HS - UIW LVA 185.A03 VU Functional Programming
Fri25.11.201614:00 - 15:00Informatikhörsaal - ARCH-INF Funktionale Programmierung
Tue29.11.201608:00 - 10:00Informatikhörsaal - ARCH-INF Functional Programming
Course is held blocked

Examination modalities

Assessment of the programming assignments and the written examination
on the lecture and tutorial material. Further information on the
examination modalities are given on the homepage of the course.

Exams

DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Fri10:00 - 12:0031.05.2024FH Hörsaal 1 - MWB written29.04.2024 02:00 - 24.05.2024 18:00TISSSchriftlicher Test 3 auf Papier / Fr, 02.06.2023, 10-12 Uhr
Thu16:00 - 18:0016.01.2025FH Hörsaal 1 - MWB written28.11.2024 02:00 - 10.01.2025 18:00TISSSchriftlicher Test 1 auf Papier / Do, 19.01.2023, 16-18 Uhr
Fri16:00 - 18:0007.03.2025FH Hörsaal 1 - MWB written04.02.2025 02:00 - 04.03.2025 18:00TISSSchriftlicher Test 2 auf Papier / Fr, 03.03.2023, 16-18 Uhr
Fri10:00 - 12:0006.06.2025FH Hörsaal 1 - MWB written05.05.2025 02:00 - 30.05.2025 18:00TISSSchriftlicher Test 3 auf Papier / Fr, 02.06.2023, 10-12 Uhr

Course registration

Begin End Deregistration end
01.10.2016 12:00 14.10.2016 12:00 14.10.2016 12:00

Registration modalities

Die Anmeldung zur Lehrveranstaltung erfolgt über TISS. Diese ist
maßgeblich für die Teilnahme an der Lehrveranstaltung und unterliegt
den in den Studienplänen genannten Voraussetzungen.

Nach Abschluss der Anmeldeperiode wird für die Studierenden mit
valider Anmeldung ein persönliches Benutzerkonto auf der Maschine
g0.complang.tuwien.ac.at eingerichtet. Benutzerkennung und erstes
Losungswort werden jedem Teilnehmer durch Nachricht an die
Standardadresse e-Matr.Nr@student.tuwien.ac.at mitgeteilt. Dieses
erste Losungswort ist im Zuge des ersten Einbuchens auf das
Benutzerkonto durch ein selbstgewähltes neues Losungswort zu ersetzen.


Curricula

Study CodeObligationSemesterPrecon.Info
033 534 Software & Information Engineering Mandatory3. SemesterSTEOP
Course requires the completion of the introductory and orientation phase
033 535 Computer Engineering Mandatory electiveSTEOP
Course requires the completion of the introductory and orientation phase
860 GW Optional Courses - Technical Mathematics Not specifiedSTEOP
Course requires the completion of the introductory and orientation phase

Literature

No lecture notes are available.

Preceding courses

Continuative courses

Miscellaneous

Language

German