Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

ID1019 Programmering II 7,5 hp

Kurs-PM VT 2023-60233

Version 1 – 2023-01-09 12:43:37

Kursomgång

VT 2023-1 (Startdatum 2023-01-17, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM VT 2023

Presentation av kursen

I den här kursen kommer du lära dig två mycket viktiga programmeringsparadigmer: funktionell programmering och flertrådad proframmering. Det kommer bli en hel del programmering under kursens gång så var beredd på att spendera mycket tid framför datorn.

Bilden till vänster kommer du att skapa genom att skriva ett program som spåra några miljoner ljusstrålar som studsar omkring i rummet. Låter komplicerat men med lite vektoraritmetik så är det enklare än vad man kan tro

Rubriker markerade med en asterisk ( * ) kommer från kursplan version VT 2022

Innehåll och lärandemål

Kursinnehåll

Kursen går igenom dels de programmeringstekniker som används inom funktionella programmeringsspråk, dels hur program kan delas upp i flera exekverande trådar och hur dessa kan koordineras. Exempel på programmeringstekniker är rekursiva definitioner, icke uppdaterbara datastrukturer, högre ordningens funktioner och s.k. “closures”. Koordinering av multipla trådar visas dels genom modifiering av gemensamma datastrukturer dels genom meddelande mellan processer.

Kursen kommer att använda sig av ett programmeringsspråk som huvudspråk men även visa likheter och skillnader med andra funktionella språk.

Lärandemål

Efter godkänd kurs skall studenten kunna

  • använda sig av rekursion, mönstermatchning och icke modifierbara datastrukturer vid implementering i ett funktionellt programspråk.

För högre betyg skall studenten dessutom kunna

  • använda funktioner som första ordningens objekt och arbeta med högre ordningens funktioner
  • förklara grunderna för funktionell programmering, dess uppbyggnad och operationella semantik
  • utvärdera funktioner med avseende på tidskomplexitet
  • använda meddelandebaserad flertrådad programmering. 

Förberedelser inför kursstart

Rekommenderade förkunskaper

Programmeringsvana, grundläggande algoritmer och datastrukturer samt grunderna inom diskret matematik. 

Kurslitteratur

Vi kommer att, förutom handledningar, övningar och föreläsningar använda oss av manualer från elixir-lang.org.

Utrustning

Det är en fördel om du kan arbeta med din egen dator men du kan även använda skolans datorer. 

Programvara

Vi kommer prgrammer i Elixir under kursen så du kommer behöva ha en programmeringsmiljö som du är väl fötrogen med samt ha Elixir installerat.

Examination och slutförande

Betygsskala

A, B, C, D, E, FX, F

Examination

  • INL1 - Inlämningsuppgift, 7,5 hp, Betygsskala: A, B, C, D, E, FX, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Målrelaterade betygskriterier/bedömningskriterier

Fö godkänt (E) krävs att ett antal inlämningsuppgifter är inlämnade i tid och sedan godkända.  För högre betyg finns ytterligare inlmningsuppgifter, även de skall vara inlämande i tid och sedan godkända.

Möjlighet till plussning

I mån av tid finns möjlighet att plussa ett betyg och det sker genom muntlig redovisning av uppgifter

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Ytterligare Information

Ingen information tillagd

Fakta om kursomgång

Startdatum

2023-01-17

Kursomgång

  • VT 2023-60233

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter