Kursplan våren 2023
        
    
        Kursplan våren 2023
    
    Benämning
            Flertrådad programmering
        Engelsk benämning
            Concurrent Programming
        Kurskod
            DA218A
        Omfattning
            7.5 hp
        Betygsskala
            UV / Underkänd (U), Godkänd (G) eller Väl godkänd (VG)
        Undervisningsspråk
            Svenska och engelska.
        Beslutande instans
            Fakulteten för teknik och samhälle
        Inrättandedatum
                2021-11-22
            Fastställandedatum
            2022-12-14
        Gäller från
            2023-01-16
        Behörighetskrav
            9 hp från kursen DA339A Objektorienterad programmering eller DA315A Objektorienterad spelprogrammering
Utöver ovanstående formella förkunskapskrav förutsätts även att studenten har kunskaper från kursen DA339A Objektorienterad programmering eller DA315A Objektorienterad spelprogrammering
Utbildningsnivå
    Grundnivå
            Huvudområde
            Datavetenskap
        Fördjupningsnivå
            
                G1F 
            
        Fördjupningsnivå 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.
Kurslitteratur
            Alternativ för Java programmering:
- Goetz, B, Peierls, T, Bloch, J, Bowbeer, J, Holmes, D. Java Concurrency in Practice
Alternativ för C# programmering:
- Ashcraft, A. Parallel Programming and Concurrency with C# 10 and .NET 6: A modern approach to building faster, more responsive, and asynchronous .NET applications using C#
Utöver litteraturen tillkommer kompletterande webb- och föreläsningsmaterial som tillhandahålles digitalt via kursplatsen.
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.