Hoppa till huvudinnehållet

ID1019 Programmering II 7,5 hp

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

Välj termin och kursomgång

Välj termin och kursomgång för att se information från rätt kursplan och kursomgång.

Rubriker med innehåll från kursplan ID1019 (VT 2022–) är markerade med en asterisk ( )

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. 

Kursupplägg

  1. Föreläsningar: ca 16 stycken som går igenom de teoretiska delarna av kursen.
  2. Övningstillfällen: ca 6 stycken där studenterna i mindre grupper ges hjälp med uppgifter av handledare.
  3. Seminarier: ca 6 stycken där studenterna kan redovisa och diskutera sina lösningar på givna uppgifter.

Kurslitteratur och förberedelser

Särskild behörighet

  • Kunskaper och färdigheter i programmering, 7,5 hp, motsvarande slutförd kurs ID1018.
  • Kunskaper i algoritmer och datastrukturer, 4,5 hp, motsvarande slutfört moment ARBA-Kursarbete i ID1020/ID1021.
  • Kunskaper i diskret matematik, 7,5 hp, motsvarande slutförd kurs IX1500/SF1610.

Aktivt deltagande i kursomgång vars slutexamination ännu inte är Ladokrapporterad jämställs med slutförd kurs. Den som är registrerad anses vara aktivt deltagande. Med slutexamination avses både ordinarie examination och det första omexaminationstillfället.

Rekommenderade förkunskaper

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

Utrustning

Ingen information tillagd

Kurslitteratur

Ingen information tillagd

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

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 samordnare för 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öjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

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

Kurswebb

Ytterligare information om kursen kan hittas på kurswebben via länken nedan. Information på kurswebben kommer framöver flyttas till denna sida.

Kurswebb ID1019

Ges av

Huvudområde

Teknik

Utbildningsnivå

Grundnivå

Påbyggnad

Ingen information tillagd

Övergångsbestämmelser

Den tidigare provmodulen TEN2 ersätts av INL1.

Övrig information

I denna kurs tillämpas EECS hederskodex, se: http://www.kth.se/eecs/utbildning/hederskodex.