Syllabus academic year 2009/2010
(Created 2009-08-11.)
FUNCTIONAL PROGRAMMING | EDA120 |
Higher education credits: 6.
Grading scale: TH.
Level: G2
(First level).
Language of instruction: The course might be given in English.
Optional for: D4, D4ps, E4, F4, Pi4.
Course coordinator: Universitetslektor Lennart Ohlsson, Lennart.Ohlsson@cs.lth.se, Inst f datavetenskap.
Prerequisites: EDAA01 Programming - Second Course or EDA027 Algorithms and Data Structures.
Recommended prerequisits: FMA410, FMA420 and FMA430.
Assessment: To qualify for a passing grade, the students must have completed the assignments. For a higher grade, a written examination is required. To qualify for the written examination the students must have completed the assignments. The assignments must be completed during the course period.
Home page: http://www.cs.lth.se/EDA120.
Knowledge and understanding
For a passing grade the student must
- have a good understanding of the fundamental principles for functional programming
- understand the practical consequences of the differences in this paradigm relative to traditional programming
- know the common idioms of functional programming
Skills and abilities
For a passing grade the student must
- be a fluent reader of program written in Haskell
- be able to utilize the possibilities of the functional paradigm to write Haskell programs in good style
Judgement and approach
For a passing grade the student must
- have learnt to appreciate the role of program code as a communication medium between people
Contents
The philosophy behind functional languages. The Haskell language. Language constructs and idiom. Higher order functions. Lazy evaluation and infinite data structures. Monads. Polymorphic type systems and type classes.
Literature
Web based material. Recommended reference:
Thompson, S: Haskell - The Craft of Functional Programming. 2nd edition. Addison-Wesley 1999. ISBN: 0-201-34275-8.