Content
The course provides an introduction to functional programming, covering both, practical examples using OCaml (a functional language) and theoretical background. Lecture notes (6th edition, one sided/two sided) are available within the university network and at Studia (7.50 Euro). Studia also sells the 5th edition (4 Euro), which you can use if you print the exercise sheets and chapter 11 – Divide and Conquer on your own. Please note the new location of Studia (Zeichensaal T21b, Untergeschoss). Some typos have been spotted.
News
Fr 10. Jan 13:01:52 CET 2014: The results and problems, tools and sources of the PCP competition are now available.Mo 02. Dez 15:19:32 CET 2013: Dummy submission for PCP competition added.
Schedule
week | date | topics | slides | sources | exercises | history |
---|---|---|---|---|---|---|
1 | 04.10. | historical overview, OCaml introduction, first steps | pdf (1, 2, 4) | tar.gz | txt | |
2 | 11.10. | lists, polymorphism, higher-order functions | pdf (1, 2, 4) | tar.gz | txt | |
3 | 18.10. | modules, strings | pdf (1, 2, 4) | tar.gz | txt | |
4 | 25.10. | user-defined types, trees | pdf (1, 2, 4) | tar.gz | txt | |
5 | 08.11. | lambda-calculus | pdf (1, 2, 4) | tar.gz | txt, lips | |
6 | 15.11. | lambda calculus, evaluation strategies | pdf (1, 2, 4) | tar.gz | txt, lips | |
7 | 22.11. | induction, reasoning about functional programs | pdf (1, 2, 4) | tar.gz | ||
8 | 29.11. | efficiency, tail-recursion | pdf (1, 2, 4) | tar.gz | txt | |
9 | 06.12. | combinator parsing / functional parsers | pdf (1, 2, 4) | tar.gz | txt | |
13 | 13.12. | divide and conquer, dynamic programming | no slides | tar.gz | txt | |
12 | 10.01. | lazy evaluation, infinite data structures, evaluation | pdf (1, 2, 4) | tar.gz | txt | |
10 | 17.01. | types, type checking, type inference | pdf (1, 2, 4) | |||
11 | 24.01. | implementing type inference, questions & answers | pdf (1, 2, 4) | tar.gz | txt | |
14 | 31.01. | first exam | ||||
- | 07.03. | second exam | ||||
- | 03.10. | third exam |
Literature
Amongst other sources the course incorporates material from the following books:- Larry C. Paulson, ML for the working programmer (2nd edition), Cambridge University Press, 1996, ISBN 9780521565431.
- Richard Bird, Introduction to functional programming using Haskell (2nd edition), Prentice Hall Europe, 1998, ISBN 0134843460.
- Anthony J. Field, Functional Programming, Addison-Wesley, 1988, ISBN 0201192497.
- Bruce J. MacLennan, Functional Programming: Practice and theory, Addison-Wesley, 1990, ISBN 0201137445.
- Chris Okasaki, Purely functional data structures, Cambridge University Press, 1999, ISBN 0521663504.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to algorithms, The MIT Press, 2009, ISBN 9780262533058.
- Fethi Rabhi and Guy Lapalme, Algorithms: A functional programming approach, Addison-Wesley, 1999, ISBN 0201596040.
- Simon Thompson, The craft of functional programming, Addison-Wesley, 1996, ISBN 0201403579.