Flertrådad programmering

Kursplan

Kursplan för studenter vår 2020, vår 2019, vår 2018

Kurskod:
DA218A version 1
Engelsk benämning:
Concurrent Programming
Fördjupningsnivå
G1F
Huvudområden:
Datavetenskap
Undervisningsspråk:
Svenska, inslag av engelska kan förekomma.
Fastställandedatum:
25 januari 2017
Beslutande instans:
Fakulteten för teknik och samhälle
Gäller från:
15 januari 2018

Förkunskapskrav

Kurser om minst 30 hp inklusive DA339A Objektorienterad programmenring (15 hp) eller DA315A Objektorienterad spelprogrammering (15 hp).

Fördjupning i förhållande till examensfordringarna

Kursen ingår i huvudområdet datavetenskap på nivå 31 - 60 hp och kan ingå i examensfordringarna för kandidatexamen i datavetenskap.

Syfte

Kursens syftar till att studenten ska utveckla grundläggande färdigheter inom programmering med och synkronisering av trådar. Syftet är att studenten inhämtar kunskaper för att skapa applikationer med användning av klassiska datastrukturer och synkroniseringsmekanismer såsom semaforer och monitorer.

Innehåll

Kursen innehåller följande moment:

  • Introduktion till samtidighet och parallellism
  • Delade resurser, kritiska regioner och ömsesidig uteslutning
  • Race condition, deadlock, livelock, starvation, barrier
  • Writer-Reader och Producer-Consumer modeller
  • Bounded Buffer
  • Synkronisering med lås, mutex, semaforer och monitorer
  • Condition Synchronization, Condition variable
  • Asynkronprogrammering och trådpooler

Lärandemål

Kunskap och förståelse
För godkänd kurs ska studenten kunna:

  • visa förståelse för de frågeställningar och problem som uppkommer i parallella system med delat minne och i parallella distribuerade system
  • identifiera vanligt förekommande parallella synkroniseringsproblem, t.ex. samtidighetsproblem, dining philosophers, producent-konsument, resursallokering
Färdighet och förmåga
För godkänd kurs ska studenten kunna:
  • utveckla parallella lösningar samt kunna argumentera för korrekthet, tydlighet och effektivitet i lösningen
  • anpassa vanliga mönster för utveckling av parallella system
  • tillämpa de programmeringskonstruktioner och tekniker som moderna programmeringsspråk för parallella system tillhandahåller
  • implementera parallella lösningar i expressiva programmeringsspråk
Värderingsförmåga och förhållningssätt
För godkänd kurs ska studenten:
  • kunna utvärdera huruvida en mjukvara är tråd-säkert
  • utifrån sammanhanget kunna bedöma språkkonstruktioners lämplighet för att lösa synkroniseringsproblem

Arbetsformer

Kursen genomförs med föreläsningar och laborationer samt självstudietid.

Bedömningsformer

Krav för godkänt betyg: Godkänd skriftlig tentamen (4,5 hp) samt godkända inlämningsuppgifter (3 hp).
Krav för väl godkänt betyg: Väl godkänd skriftlig tentamen samt godkända inlämningsuppgifter.

Betygsskala

Underkänd (U), Godkänd (G) eller Väl godkänd (VG).

Kurslitteratur och övriga läromedel

Kursen har ingen rekommenderad kurslitteratur. Undervisningsmaterial tillhandahålls av ansvarig lärare.

Referenslitteratur
  • Herlihy, Maurice. & Shavit, Nir (2012). The art of multiprocessor programming. Amsterdam: Elsevier/Morgan Kaufmann

Kursvärdering

Högskolan ger studenter som deltar i eller har avslutat en kurs en möjlighet att framföra sina erfarenheter av och synpunkter på kursen genom en kursvärdering som anordnas av högskolan. Högskolan sammanställer kursvärderingarna samt informerar om resultaten och eventuella beslut om åtgärder som föranleds av kursvärderingarna. Resultaten ska hållas tillgängliga för studenterna. (HF 1:14).

Övergångsbestämmelser

Om en kurs upphört att ges eller genomgått större förändringar ska studenterna, under ett år efter det att förändringen skett, erbjudas två tillfällen för omprov baserade på den kursplan som gällde vid registreringen.


Kursrapporter

Kontakt

Utbildningen ges av Fakulteten för teknik och samhälle på institutionen Datavetenskap och medieteknik.

Mer information om utbildningen

Studentservice TS - Malmö Universitet,
Farid Naisan, Kursansvarig
Telefon: 040-6657187

Anmälan

30 mars 2020 - 07 juni 2020 Dagtid 50% Malmö Detta kurstillfälle ges som en del av ett program