Kursplan hösten 2017
Kursplan hösten 2017
Benämning
Flertrådad programmering
Engelsk benämning
Concurrent Programming
Kurskod
DA330A
Omfattning
7.5 hp
Betygsskala
UV / Underkänd (U), Godkänd (G) eller Väl godkänd (VG)
Undervisningsspråk
Svenska, inslag av engelska kan förekomma.
Beslutande instans
Fakulteten för teknik och samhälle
Fastställandedatum
2015-09-11
Gäller från
2015-11-09
Behörighetskrav
Kurser om minst 30 hp inklusive DA153A Introduktion till datavetenskap, 7.5 hp och DA183A Objektorienterad programvaruutveckling I, 7.5 hp och DA184A Objektorienterad programvaruutveckling II, 7.5 hp.
alternativt
DA153A Introduktion till datavetenskap, 7.5 hp och DA315A Objektorienterad spelprogrammering, 15 hp.
Utbildningsnivå
Grundnivå
Huvudområde
Datavetenskap
Fördjupningsnivå
G1F
Fördjupningsnivå i förhållande till examensfordringarna
Kursen ingår i utbildningsprogrammet Systemutvecklare och Spelutveckling. Kursen kan ingå i kandidatexamen i Datavetenskap med inriktning systemutveckling respektive kandidatexamen i Datavetenskap på 31-60 poängsnivån.
Syfte
Flertrådad programmering behandlar studiet av system där flera händelser till synes inträffar samtidigt och de problem man ställs inför när man utvecklar sådana system. Det kan gälla operativsystem, distribuerade system och realtidssystem men också internettjänster och spel.
Innehåll
Kursen innehåller följande moment:
- Parallellism
- Interferens och samtidighet
- Synkronisering
- Kritiska regioner
- Ömsesidig uteslutning
- Dödläge
- Exekveringsrättvisa, "fairness"
- "Livelock"
- Synkronisering mha:delade variabler, "busy wait", semaforer, monitorer samt synkrona och asynkrona meddelanden
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, t.ex. lås, "client-server", "pipelines", tråd-samlingar, barriärsynkronisering, stafettsynkronisering
- 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 eller ett bibliotek är tråd-säkert
- välja korrekta språkkonstruktioner för att lösa synkroniseringsproblem
Arbetsformer
Kursen genomförs med föreläsningar och laborationer. Föreläsningar ca 30 timmar, laborationer ca 20 timmar, samt självstudietid ca 150 timmar.
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.
Kurslitteratur och övriga läromedel
Kursen har ingen rekommenderad kurslitteratur. Undervisningsmaterial tillhandahålls av ansvarig lärare.
Referenslitteratur
Herlihy,M. & Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann, 2012
Kursvärdering
Alla studenter ges vid slutet av kursen möjlighet att kommentera kursen skriftligt. En sammanställning av resultatet med bemötande av kursansvarig diskuteras med studenter/kursrepresentanter under ett kursvärderingsmöte/programråd. Sammanställningen finns tillgänglig på områdets datornät