"False"
Hoppa direkt till innehållet
printicon
Huvudmenyn dold.
Kursplan:

Programspråk, 7,5 hp

Engelskt namn: Programming Languages

Denna kursplan gäller: 2024-01-01 och tillsvidare

Kurskod: 5DV086

Högskolepoäng: 7,5

Utbildningsnivå: Grundnivå

Huvudområden och successiv fördjupning: Datavetenskap: Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Betygsskala: TH teknisk betygsskala

Ansvarig institution: Institutionen för datavetenskap

Beslutad av: teknisk-naturvetenskapliga fakultetsnämnden, 2008-12-16

Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden, 2023-06-19

Innehåll

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

Modul 2 ges endast betygen Underkänd (U) eller Godkänd (G).

På kursen som 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/