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: 2018-08-30
  • Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Gäller från: vecka 25, 2019
  • 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. Standard ML.
Likheter och skillnader i förhållande till imperativ och objektorienterad programmering.

Undervisning

Laborationer och eventuellt föreläsningar.

Examination

Uppgifter. En frivillig tentamen ges för dem som vill ha möjlighet till högre betyg. 

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).

Litteratur

Litteraturlista

Gäller från: vecka 32, 2019

En av följande

  • Thompson, Simon Haskell : the craft of functional programming

    3. ed.: Harlow: Addison-Wesley, 2011

    Se bibliotekets söktjänst

  • Lipovača, Miran Learn you a Haskell for great good! : a beginner's guide

    San Francisco, CA: No Starch Press, cop. 2011

    Se bibliotekets söktjänst

Versioner av litteraturlistan