ID1019 Programmering II 7,5 hp

Programming II

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

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

Kurstillfällen/kursomgångar

VT19 TCOMK för programstuderande

VT19 för programstuderande

VT20 TCOMK för programstuderande

VT20 för programstuderande

Lärandemål

Studenter skall efter avklarad kurs kunna:

Funktionell programmering:

  • Förklara grunderna inom funktionell programmering, dess uppbyggnad och operationella semantik.
  • Förstå och kunna använda följande olika konstruktioner i funktionella språk: rekursion, mönstermatchning, funktioner som första ordningens objekt, s.k. closures, högre ordningens funktioner och icke modifierbara datastrukturer.
  • Implementera valda algoritmer i ett funktionellt programmeringsspråk.
  • Använda begreppet assymtotisk tidskomplexitets i utvärderingen av en implementation.

Flertrådad programmering:

  • Förklara behovet av flertrådad programmering.
  • Kunna utvärdera för- och nackdelar samt kunna använda mekanismer som kan användas för att implementera flertrådade system.
  • Förklara och demonstrera typiska problem, som till exempel kapplöpning, dead-lock och svält, som kan uppträda i flertrådade program.

Kursens huvudsakliga innehå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.

Behörighet

  • ID1018 Programmering I 
  • ID1020 Algoritmer och datastrukturer 
  • IX1500/SF1610 Diskret matematik 

Litteratur

Artiklar, handledningar och dokumentation, fritt tillgängliga på nätet samt rekommenderad brevidläsningslitteratur.

Bredvidläsning: Introducing Elixir: Getting Started in Functional Programming, by Simon St. Laurent, J. Eisenberg. Publisher: O'Reilly Media.

Examination

  • TEN2 - Tentamen, 7,5, betygsskala: A, B, C, D, E, FX, F

Kursen kommer att bestå av följande typer av moment:

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

Ges av

EECS/Datavetenskap

Examinator

Johan Montelius <johanmon@kth.se>

Versionsinformation

Kursplan gäller från och med VT2019.
Examinationsinformation gäller från och med VT2019.