Engelskt namn: Programming Languages
Denna kursplan gäller: 2012-02-13 till 2023-12-31 (nyare version av kursplanen finns)
Kursplan för kurser med start efter 2024-01-01
Kursplan för kurser med start mellan 2012-02-13 och 2023-12-31
Kursplan för kurser med start mellan 2012-01-02 och 2012-02-12
Kursplan för kurser med start mellan 2011-06-13 och 2012-01-01
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: Med beröm godkänd, icke utan beröm godkänd, godkänd, väl godkänd, godkänd, underkänd
Ansvarig institution: Institutionen för datavetenskap
Beslutad av: teknisk-naturvetenskapliga fakultetsnämnden, 2008-12-16
Reviderad av: teknisk-naturvetenskapliga fakultetsnämnden, 2012-02-19
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
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.
Univ: Förutom grundläggande behörighet, krävs kursen Objektorienterad programmeringsmetodik (5DV109/5DV133) eller motsvarande kunskaper.
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.
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.
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.
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/
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
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
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