KURSPLAN
Funktionell programmering, 7,5 högskolepoäng
Functional Programming, 7.5 credits
Kursplan för studenter höst 2024
Kurskod: TFPG11
Fastställd av: VD 2021-03-01
Reviderad av: 2023-06-01
Gäller fr.o.m.: 2023-08-01
Version: 2
Utbildningsnivå: Grundnivå
Utbildningsområde: Tekniska området
Ämnesgrupp: DT1
Fördjupning: G1N
Huvudområde: Datavetenskap

Lärandemål

Efter genomgången kurs skall studenten

Kunskap och förståelse

- visa kunskap om särskiljande egenskaper hos funktionella programspråk i allmänhet och Haskell i synnerhet; renhet, stark typning, lat evaluering och högre ordningens funktioner
- visa förståelse för rekursion, både som lösningsstrategi och programmeringsteknik
- visa kunskap om grundläggande konstruktioner i Haskell som funktioner, mönstermatchning, inbyggda och användardefinierade datatyper, typklasser, moduler, högre ordningens funktioner, rekursiva datatyper och lat evaluering
- visa kunskap om hantering av input-output i Haskell

Färdighet och förmåga

- visa färdighet i att utifrån en beskrivning konstruera korrekta och välstrukturerade mindre funktionella program
- visa färdighet i att använda grundläggande konstruktioner i Haskell som funktioner, mönstermatchning, inbyggda och användardefinierade datatyper, typklasser, moduler, högre ordningens funktioner och lat evaluering vid konstruktion av program
- visa färdighet i att använda rekursion och rekursiva datatyper vid konstruktion av program
- visa förmåga att systematiskt felsöka i egenutvecklade program
- visa färdighet i att verifiera funktioners korrekthet genom testning och bevis.

Innehåll

Kursen är en introduktionskurs i programmering, främst funktionell programmering. Det övergripande syftet är att ge grundläggande kunskaper om programmering och grundläggande färdigheter i att utveckla program.

Kursen innehåller följande moment:
- grundläggande syntax i språket Haskell
- värden, typer och funktioner
- mönstermatchning
- rekursion
- sammansatta datatyper (listor, tupler)
- typklasser
- moduler
- användardefinierade typer
- högre ordningens funktioner
- rekursiva datatyper
- input-output
- lat evaluering
- verifiering med hjälp av testning och bevis.

Undervisningsformer

Föreläsningar, övningar och laborationer.

Undervisningen bedrivs normalt på svenska men undervisning på engelska kan förekomma.

Förkunskapskrav

Grundläggande behörighet samt Fysik 2, Kemi 1, Matematik 4. Eller: Fysik B, Kemi A, Matematik D (eller motsvarande kunskaper).

Examination och betyg

Kursen bedöms med betygen 5, 4, 3 eller Underkänd.

Poängregistrering av examinationen för kursen sker enligt följande system:
ExaminationsmomentOmfattningBetyg
Tentamen15 hp5/4/3/U
Laborationer2,5 hpU/G
1 Bestämmer kursens slutbetyg vilket utfärdas först när samtliga moment godkänts.

Kurslitteratur

Kurslitteraturen fastställs 8 veckor innan kursstart.

Titel: Programming in Haskell, 2nd Edition
Författare: Graham Hutton
Förslag och år: Cambridge University Press, 2016
ISBN-13: 978-1316626221

Titel: Learn You a Haskell for Great Good!: A Beginner's Guide
Författare: Miran Lipovaca
Förslag: No Starch Press, 2011
ISBN-13: 978-1593272838
URL: http://learnyouahaskell.com/chapters