185.161 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.

2010W, VL, 2.0h, 3.0EC, to be held in blocked form

Properties

  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VL Lecture and Laboratory Exercise

Aim of course

The students gain a comprehensive theoretical and practical understanding of the foundations 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.

The course considers in particular the following topics and their realization in Haskell:

  • Functional programming style (programs as systems of recursive functions)
  • Lambda-calculus (basis of the semantic foundation of functional programming languages)
  • Evaluation strategies for expressions and programs (eager evaluation, lazy evaluation)
  • Recursion and kinds of recursion
  • Higher-order functions (programming with functions as arguments and results)
  • Polymorphism (parametric, ad-hoc)
  • Type systems, type inference (monomorphic, polymorphic)
  • Streams and stream processing
  • ...

Additional information

Die Vorbesprechung zur Vorlesung findet am Freitag, den 01.10.2010, von 14:15 bis ca. 15:00 Uhr im Heinz-Parkus-Hörsaal 8 im Haupthaus am Karlsplatz statt! Unmittelbar anschließend findet von 15:00 Uhr bis 16:30 Uhr an gleicher Stelle die erste Vorlesung statt.

Lecturers

Institute

Course dates

DayTimeDateLocationDescription
Fri14:00 - 15:0001.10.2010 - 27.01.2011Hörsaal 6 - RPL KNOOP
Fri14:00 - 15:0001.10.2010HS 8 Heinz Parkus - CEE Vorbesprechung: KNOOP
Fri15:00 - 16:3001.10.2010HS 8 Heinz Parkus - CEE KNOOP
Thu16:00 - 18:0014.10.2010 - 27.01.2011HS 8 Heinz Parkus - CEE KNOOP
Fri15:00 - 16:3015.10.2010HS 8 Heinz Parkus - CEE KNOOP
Thu08:00 - 10:0028.10.2010HS 8 Heinz Parkus - CEE KNOOP
Thu08:00 - 10:0002.12.2010HS 8 Heinz Parkus - CEE KNOOP
Thu16:00 - 18:3020.01.2011GM 2 Radinger Hörsaal - TCH Prüfung
Functional Programming - Single appointments
DayDateTimeLocationDescription
Fri01.10.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Fri01.10.201014:00 - 15:00HS 8 Heinz Parkus - CEE Vorbesprechung: KNOOP
Fri01.10.201015:00 - 16:30HS 8 Heinz Parkus - CEE KNOOP
Fri08.10.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu14.10.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri15.10.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Fri15.10.201015:00 - 16:30HS 8 Heinz Parkus - CEE KNOOP
Thu21.10.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri22.10.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu28.10.201008:00 - 10:00HS 8 Heinz Parkus - CEE KNOOP
Thu28.10.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri29.10.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu04.11.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri05.11.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu11.11.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri12.11.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu18.11.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri19.11.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Thu25.11.201016:00 - 18:00HS 8 Heinz Parkus - CEE KNOOP
Fri26.11.201014:00 - 15:00Hörsaal 6 - RPL KNOOP
Course is held blocked

Examination modalities

Beurteilung der Beispiele aus der Laborübung und schriftliche Prüfung über Vorlesungs- und Übungsstoff. Weitere Angaben zum Beurteilungs- und Prüfungsablauf sind auf der homepage zur Lehrveranstaltung gegeben.

Course registration

Registration modalities

Ort: Informationen zur Anmeldung werden in der Vorbesprechung und in Kürze auf der Webseite zur LVA angegeben. Für die Anmeldung wird ein mehrtägiger Zeitraum zur Verfügung stehen.

Curricula

Study CodeObligationSemesterPrecon.Info
033 533 Medical Informatics Not specified
033 534 Software & Information Engineering Mandatory5. Semester

Literature

  • Course textbook:
    • Simon Thompson. Haskell: The Craft of Functional Programming. Addison-Wesley (Pearson), 2nd edition, 1999.
  • Haskell 98 Language Report:
    • Simon Peyton Jones (Eds.). Haskell 98: Language and Libraries. The Revised Report. Cambridge University Press, 2003.
  • Selected further textbooks:
    • Richard Bird. Introduction to Functional Programming using Haskell. Prentice-Hall, 2nd edition, 1998.
    • Manuel M. T. Chakravarty, Gabriele C. Keller. Einführung in die Programmierung mit Haskell. Pearson Studium, 2004.
    • Antony J.T. Davie. An Introduction to Functional Programming Systems using Haskell. Cambridge University Press, 1992.
    • Kees Doets, Jan van Eijck. The Haskell Road to Logic, Maths and Programming. Texts in Computing Vol. 4, King's College, UK, 2004.
    • Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, 2004.
    • Graham Hutton. Programming in Haskell. Cambridge University Press, 2007.
    • Wolfram-Manfred Lippe. Funktionale und Applikative Programmierung. Springer-Verlag, 2009.
    • Peter Pepper. Funktionale Programmierung in OPAL, ML, Haskell und Gofer. Springer-Verlag, 2. Auflage, 2003.
    • Fethi Rabhi, Guy Lapalme. Algorithms: A Functional Programming Approach. Addison-Wesley, 1999.
    • Simon Thompson. Haskell: The Craft of Functional Programming. Addison-Wesley (Pearson), 2nd edition, 1999.
    • ...

Previous knowledge

For taking the course the regulations given in Section 1.6 of the current "Studienplan" apply.

Preceding courses

Continuative courses

Language

German