Uni-Logo

Functional Programming

Personal

Lecture Prof. Dr. Peter Thiemann thiemann@info...
ExerciseGabriel Radanneradanne@info...

News

2017-10-16Github page
2017-10-04Homepage online

Lecture Materials

DateContentCodeRecording
2017101600-intro.pdf, 01-starting-haskell.pdfExamples (after lecture)720p480p

Note: "Recordings" are unedited screen recordings of the lecture. Only available inside Uni Freiburg network.

Exercises

Date of issueDeadline
2017-10-18n/a Exercise 0 (Installation)

Content

This course conveys fundamental concepts of functional programming using the programming language Haskell.

Goal

Learning objectives from the module compendium: “Development of an alternative non-procedural view on algorithms and data structures, confident handling of higher-order functions and data, knowledge and ability to apply fundamental functional programming techniques, knowledge of advanced programming concepts, ability to develop medium-size functional programs independently.”

Topic List

  • Definition of functions, pattern matching, higher-order functions
  • Types and type classes
  • Algebraic data types
  • Functional data structures
  • Applicative parsers
  • Monads and monad transformers
  • Arrows
  • Verification of functional programs
  • Monadic I/O and stream I/O

Preliminaries

Interest in programming and in learning and applying new programming concepts and languages. No previous knowledge of Haskell is required.

Literature

The book Programming in Haskell by Graham Hutton is the basis for the first 30% of the lecture. This book is available in the TF-library.

Organization

Schedule

LectureMo 14-16 ctGeb. 101 - SR 01-016
We 14-15 ctGeb. 101 - SR 01-016
ExerciseWe 15-16 ctGeb. 101 - SR 01-016

Modality of exercise

TBD

Preliminaries

To be admitted to the exam, each participant has to process every exercise sheet. If participants cannot come up with a useful answer to the exercise, they should submit a rationale instead.

Exam

If there are less than 20 registrations for the exam, there will be an oral exam during the examination period. Otherwise, there will be a written exam (closed book). We offer a graded programming project at the end of the teaching period. Students who pass the final exam can improve their grade with a passed programming project.

Communication

Announcement will be posted on this page under the rubric News. Urgent announcements will also be sent via email through HisInOne. If you do not want to miss these announcements, you should register for the course in HisInOne!