Kursens övergripande mål är att ge kunskaper om begrepp och principer som ligger till grund för moderna programspråk, samt att ge färdighet i programmering i ett funktionellt språk.
Modul 1, teori, 4,5 hp
Modulen behandlar grundläggande programspråksbegrepp så som variabler, bindning, blockstruktur och räckvidd, datatyper, typsystem, typkontroller. Vidare presenteras och genomgås begrepp som kontrollabstraktion, underprogram, och olika metoder för parameteröverföring samt dataabstraktion och abstrakta datatyper. Genomgångna begrepp illustreras med exempel i olika programspråk. En översikt ges av olika språkmodeller/språkparadigmer: Imperativa, objektorienterade, funktionella och logikbaserade typer av språk samt parallella processer och "undantag".
Speciell vikt läggs vid funktionella språk. Kursen lär ut systematisk uppbyggnad av funktionsbaserade program, med fokus på det som är mest karaktäristiskt för funktionella språk såsom: funktionsbegreppet, rekursiva funktioner och datatyper, typkonstruerare, typhärledning, polymorfism, listor och tupler, mönstermatchning, samt högre ordningens funktioner.
I kursen ingår även en introduktion till språkdesign och utvärdering, samt en kort programspråkshistorik.
Modul 2, laboration, 3 hp
Modulen utgörs av en laborationskurs med ett antal obligatoriska inlämningsuppgifter.
Förväntade studieresultat
Kunskap och förståelse Efter avslutad kurs ska studenten kunna:
(FSR 1) beskriva och förklara de olika komponenter som används för att bygga upp programspråk, och de fördelar och nackdelar som olika val medför,
(FSR 2) förklara principer och metoder för hur dessa komponenter implementeras,
(FSR 3) redogöra för de viktigaste programspråksparadigmerna och vad som karakteriserar dem, med speciell tyngdpunkt på den funktionella paradigmen.
Färdighet och förmåga Efter avslutad kurs ska studenten kunna:
(FSR 4) uttrycka lösningar till olika problem som funktioner från indata till utdata, och genom sammansättning av funktioner,
(FSR 5) formulera algoritmer och datatyper med rekursiva uttryckssätt och implementera dessa i ett funktionellt programspråk,
(FSR 6) systematiskt utveckla och konstruera funktionsbaserade program,
(FSR 7) genomföra ömsesidig granskning av skriftliga rapporter i små grupper,
(FSR 8) utifrån givna riktlinjer, ramar och kriterier göra en skriftlig redogörelse, exempelvis beskriva resultatet av en utvärdering, en jämförelse etc.
Värderingsförmåga och förhållningssätt Efter avslutad kurs ska studenten kunna:
(FSR 9) utvärdera programspråk och språkbegrepp, och välja språk som är lämpliga för olika problemtyper och tillämpningar.
Behörighetskrav
Minst 7,5 hp imperativ programmering; 7,5 hp objektorienterad programmering; 7,5 hp diskret matematik; och 7,5 hp datastrukturer och algoritmer.
Undervisningens upplägg
Undervisningen bedrivs i form av föreläsningar, arbete i datorlabb och övningar i mindre grupper. Utöver schemalagda aktiviteter krävs även individuellt arbete med materialet.
Examination
Examinationen sker dels genom skriftlig salstentamen (Modul 1) dels genom skriftliga inlämningsuppgifter (Modul 2).
På Modul 1 sätts något av betygen Underkänd (U), Godkänd (3), Icke utan beröm godkänd (4) eller Med beröm godkänd (5).
På Modul 2 ges endast betygen Underkänd (U) eller Godkänd (G).
På kursensom helhet ges något av betygen Underkänd (U), Godkänd (3), Icke utan beröm godkänd (4) eller Med beröm godkänd (5). Betyget på kursen bestäms av betyget på Modul 1.
Anpassad examination Examinator kan besluta om avsteg från kursplanens examinationsform. Individuell anpassning av examinationsformen ska övervägas utifrån studentens behov. Examinationsformen anpassas inom ramen för kursplanens förväntade studieresultat. Student som har behov av en anpassad examination ska senast 10 dagar innan examinationen begära anpassning hos Institutionen för datavetenskap. Examinator beslutar om anpassad examination som sedan meddelas studenten.
Övriga föreskrifter
Om kursplanen har upphört att gälla eller kursen slutat erbjudas garanteras en student som någon gång registrerats på kursen minst tre provtillfällen (inklusive ordinarie provtillfälle) enligt denna kursplan under en tid av maximalt två år från det att kursplanen upphört att gälla eller kursen slutat erbjudas.
Litteratur
Giltig från:
2024 vecka 1
Två böcker används på kursen. De går antingen att köpa som tryckt bok eller läsa gratis online.
Nystrom Robert Crafting interpreters [United States?] : Genever Benning : [2021] : vii, 626 pages : ISBN: 9780990582939 Obligatorisk Se Umeå UB:s söktjänst Läsanvisning: Boken går även att läsa gratis online på https://craftinginterpreters.com/
Lipovača Miran. Learn you a Haskell for great good! : a beginner's guide San Francisco, CA : No Starch Press : cop. 2011. : 376 s. : ISBN: 9781593272838 Obligatorisk Se Umeå UB:s söktjänst Läsanvisning: Boken går även att läsa gratis på http://learnyouahaskell.com/