Kursplan för

Functional Programming
Funktionsprogrammering

EDAN40F, 7.5 högskolepoäng

Gäller från och med: Spring 2017
Beslutad av: Professor Thomas Johansson
Datum för fastställande: 2017-03-22

Allmänna uppgifter

Avdelning: Computer Science (LTH)
Kurstyp: Gemensam kurs, avancerad nivå och forskarnivå
Kursen ges även på avancerad nivå med kurskod: EDAN40
Undervisningsspråk: Swedish

Syfte

The course gives an insight into how the functional programming often offers a possibility to write shorter and easier-to-understand programs than using the traditional imperative or object-oriented approaches.

Mål

Kunskap och förståelse

För godkänd kurs skall doktoranden

Färdighet och förmåga

För godkänd kurs skall doktoranden

Värderingsförmåga och förhållningssätt

För godkänd kurs skall doktoranden have learnt to appreciate the role of program code as a communication medium between people

Kursinnehåll

The philosophy of functional languages. The programming language Haskell. Language constructs and idioms. Higher-order functions. Lazy evaluation and infinite data structures. Monads and monadic computations. Polymorphic type systems and type classes. Type analysis and type inference

Kurslitteratur

Simon Thompson: Haskell, The Craft of Functional Programming. Addison Wesley, 2011, ISBN: 978-0-201-88295-7. 3rd edition. Recommended reference. Graham Hutton: Programming in Haskell. Cambridge University Press, 2007, ISBN: 978-0-521-69269-4. Recommended reference. Bryan O'Sullivan, John Goerzen and Don Stewart: Real World Haskell. O'Reilly, 2008, ISBN: 978-0-596-51498-3. Recommended reference.

Kursens undervisningsformer

Undervisningsformer: Föreläsningar, laborationer

Kursens examination

Examinationsform: Skriftlig tentamen
Betygsskala: Underkänd, godkänd
Examinator:

Antagningsuppgifter

Förutsatta förkunskaper: EDAA01 Programming - Second Course or EDAA30 Programming in Java - Second Course

Kurstillfällesinformation

Kontaktinformation och övrigt

Kursansvariga:
Hemsida: http://cs.lth.se/edan40-functional-programming/


Fullständig visning