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

Programspråk, 7,5 hp

Engelskt namn: Programming Languages

Denna kursplan gäller: 2012-02-13 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, 2012-02-19

Innehåll

Kursen ö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. Moment 1, teoridel, 4,5 högskolepoäng Momentet 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. Moment 2, laborationsdel, 3 högskolepoäng Delmomentet utgörs av en laborationskurs med ett antal obligatoriska inlämningsuppgifter

Förväntade studieresultat

Efter avslutad kurs ska studenten kunna: * 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 * förklara principer och metoder för hur dessa komponenter implementeras * redogöra för de viktigaste programspråksparadigmerna och vad som karakteriserar dem, med speciell tyngdpunkt på den funktionella paradigmen * utvärdera programspråk och språkbegrepp, och välja språk som är lämpliga för olika problemtyper och tillämpningar * uttrycka lösningar till olika problem som funktioner från indata till utdata, och genom sammansättning av funktioner. * formulera algoritmer och datatyper med rekursiva uttryckssätt och implementera dessa i ett funktionellt programspråk * systematiskt utveckla och konstruera funktionsbaserade program * genomföra ömsesidig granskning av skriftliga rapporter i små grupper. * 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.

Behörighetskrav

Univ: Förutom grundläggande behörighet, krävs kursen Objektorienterad programmeringsmetodik (5DV109/5DV133) eller motsvarande kunskaper.

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 tentamen (på teoridelen) dels genom ett laborationsmoment. På en skriftlig tentamen 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å laborationsmomentet ges endast betygen Underkänd (U) eller Godkänd (G). På hela kursen 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). För att bli godkänd på hela kursen krävs att samtliga prov och obligatoriska moment är godkända. Betyget utgör en sammanfattande bedömning av resultaten vid examinationens olika delar och sätts först när alla obligatoriska moment är godkända. För studerande som inte godkänns vid ordinarie provtillfälle anordnas ytterligare provtillfälle. En student som utan godkänt resultat har genomgått två prov för en kurs eller en del av en kurs, har rätt att få en annan examinator utsedd, om inte särskilda skäl talar emot det (HF 6 kap. 22 §). Begäran om ny examinator ställs till styrelsen för Institutionen för datavetenskap.

Övriga föreskrifter

TILLGODORÄKNANDE I en examen får denna kurs ej ingå, helt eller delvis, samtidigt med en annan kurs med likartat innehåll. Vid tveksamheter bör den studerande rådfråga studievägledare vid Institutionen för datavetenskap och/eller programansvarig för sitt program. Tillgodoräknande av studier prövas individuellt (se universitetets regelsamling och tillgodoräknandeordning). Ansökan om tillgodoräknande görs på speciell blankett och ställs till den Teknisk-naturvetenskapliga fakultetsnämnden, Umeå universitet.

Litteratur

  • Giltig från: 2023 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/

  • Giltig från: 2015 vecka 1

    Lipovača Miran
    Learn You a Haskell for Great Good!
    http://learnyouahaskell.com/ :
    Learn You a Haskell for Great Good!
    Obligatorisk
    Läsanvisning: Boken är en gratis e-bok. Föredrar man köpa en fysisk bok kan man göra den på sidan http://nostarch.com/lyah.htm

    Sebesta Robert W.
    Concepts of programming languages
    10th ed., international ed. : Boston : Pearson/Education : 2013 : 815 p. :
    ISBN: 0273769103
    Se Umeå UB:s söktjänst

  • Giltig från: 2012 vecka 8

    Sebesta Robert
    Concepts and Programming Languages
    8:e upplagan :
    ISBN: 0-321-50968-0
    Obligatorisk
    Se Umeå UB:s söktjänst

    Lipovača Miran
    Learn You a Haskell for Great Good!
    http://learnyouahaskell.com/ :
    Learn You a Haskell for Great Good!
    Obligatorisk
    Läsanvisning: Boken är en gratis e-bok. Föredrar man köpa en fysisk bok kan man göra den på sidan http://nostarch.com/lyah.htm

  • Giltig från: 2012 vecka 7

    Sebesta Robert
    Concepts and Programming Languages
    8:e upplagan :
    ISBN: 0-321-50968-0
    Obligatorisk
    Se Umeå UB:s söktjänst

    Lipovača Miran
    Learn You a Haskell for Great Good!
    Inst för datavetenskap : 2011 :
    Learn You a Haskell for Great Good!
    Obligatorisk
    Läsanvisning: Boken är en gratis e-bok. Föredrar man köpa en fysisk bok kan man göra den på sidan http://nostarch.com/lyah.htm