Kursplan för Funktionell programmering I
Functional Programming I
Kursplan
- 5 högskolepoäng
- Kurskod: 1DL330
- Utbildningsnivå: Avancerad nivå
-
Huvudområde(n) och successiv fördjupning:
Datavetenskap A1N
Förklaring av koder
Koden visar kursens utbildningsnivå och fördjupning i förhållande till andra kurser inom huvudområdet och examensfordringarna för generella examina:
Grundnivå
- G1N: har endast gymnasiala förkunskapskrav
- G1F: har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
- G1E: innehåller särskilt utformat examensarbete för högskoleexamen
- G2F: har minst 60 hp kurs/er på grundnivå som förkunskapskrav
- G2E: har minst 60 hp kurs/er på grundnivå som förkunskapskrav, innehåller examensarbete för kandidatexamen
- GXX: kursens fördjupning kan inte klassificeras
Avancerad nivå
- A1N: har endast kurs/er på grundnivå som förkunskapskrav
- A1F: har kurs/er på avancerad nivå som förkunskapskrav
- A1E: innehåller examensarbete för magisterexamen
- A2E: innehåller examensarbete för masterexamen
- AXX: kursens fördjupning kan inte klassificeras
- Betygsskala: Underkänd (U), godkänd (3), icke utan beröm godkänd (4), med beröm godkänd (5)
- Inrättad: 2009-03-12
- Inrättad av: Teknisk-naturvetenskapliga fakultetsnämnden
- Reviderad: 2022-02-04
- Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden
- Gäller från: HT 2022
-
Behörighet:
120 hp med en fortsättningskurs i programmering. 15 hp matematik inklusive grundläggande algebra. Engelska 6. (Med en svensk kandidatexamen uppfylls kravet på engelska.)
- Ansvarig institution: Institutionen för informationsteknologi
Mål
Efter godkänd kurs ska studenten kunna:
- definiera de grundläggande begreppen i funktionell programmering,
- manuellt exekvera ett enkelt funktionellt program,
- härleda typen av ett enkelt funktionellt program,
- implementera enkla algoritmer och datastrukturer som funktionella program,
- designa större funktionella program på ett modulärt sätt och med återanvändbara komponenter,
- förklara med hjälp av enkla problem hur funktionell programmering skiljer sig från imperativ och objektorienterad programmering.
Innehåll
Grundläggande begrepp: funktioner och relationer, rekursion och svansrekursion, typsystem, polymorfism, datatyper, rekursiva datatyper, inledning till högre ordningens funktioner, data-abstraktion.
Programmering i ett funktionellt språk, t.ex. Haskell.
Likheter och skillnader i förhållande till imperativ och objektorienterad programmering.
Undervisning
Laborationer och föreläsningar.
Examination
Skriftliga individuella uppgifter. Skriftliga uppgifter i grupp.
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.
Övriga föreskrifter
Kursen kan ej räknas in i examen tillsammans med Programkonstruktion (1IT020, 1IT021, 1DL200, 1DL201).
Versioner av kursplanen
- Senaste kursplan (giltig från HT 2022)
- Äldre kursplan (giltig från HT 2021)
- Äldre kursplan (giltig från VT 2019, version 2)
- Äldre kursplan (giltig från VT 2019, version 1)
- Äldre kursplan (giltig från HT 2009)
Litteratur
Litteraturlista
Gäller från: HT 2022
I bibliotekets söktjänst kan du se om en titel finns elektroniskt.
En av följande
-
Thompson, Simon
Haskell : the craft of functional programming
3. ed.: Harlow: Addison-Wesley, 2011
-
Lipovača, Miran
Learn you a Haskell for great good! : a beginner's guide
San Francisco, CA: No Starch Press, cop. 2011