Kursplan för Principer för parallell programmering

Kursplanen innehåller ändringar
Se ändringar

Kursplan fastställd 2019-02-08 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnPrinciples of Concurrent Programming
  • KurskodTDA384
  • Omfattning7,5 Högskolepoäng
  • ÄgareTKDAT
  • UtbildningsnivåGrundnivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Fem, Fyra, Tre, Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 49129
  • Blockschema
  • Sökbar för utbytesstudenterJa
  • Endast studenter med kurstillfället i programplan.

Poängfördelning

0117 Laboration 3 hp
Betygsskala: UG
3 hp
    0217 Tentamen 4,5 hp
    Betygsskala: TH
    4,5 hp
    • 26 Okt 2019 em SB_MU
    • 09 Jan 2020 em M
    • 19 Aug 2020 em J

    I program

    Examinator

    • K V S Prasad
    Gå till kurshemsidan (Öppnas i ny flik)

    Kurstillfälle 2

    • Undervisningsspråk Engelska
    • Anmälningskod 49126
    • Blockschema
    • Sökbar för utbytesstudenterJa
    • Endast studenter med kurstillfället i programplan.

    Poängfördelning

    0117 Laboration 3 hp
    Betygsskala: UG
    3 hp
      0217 Tentamen 4,5 hp
      Betygsskala: TH
      4,5 hp
      • 17 Mar 2020 fm SB_MU
      • 09 Jan 2020 em J
      • 19 Aug 2020 em J

      I program

      Examinator

      • K V S Prasad
      Gå till kurshemsidan (Öppnas i ny flik)

      Ersätter

      • TDA381 Parallell programmering
      • TDA382 Parallell programmering
      • TDA383 Parallell programmering

      Behörighet

      För kurser på grundnivå inom Chalmers utbildningsprogram gäller samma behörighetskrav som till de(t) program där kursen ingår i programplanen.

      Kursspecifika förkunskaper

      Kunskaper inom (satslogik) logik. Gedigen kompetens inom Java. Viss kunskap inom funktionell programmering är också önskvärd. För studenter utan nämnda kunskaper kommer kursen att erbjuda vissa tutorials, dock kommer man att behöva spendera något mer tid till att även lära sig denna paradigm.

      Syfte

      Parallellprogrammering har blivit allmänt förekommande i olika typer av system, exempelvis för att påskynda beräkningar där fysisk parallellism kan utnyttjas, för att tillhandahålla interaktiva fleranvändarmiljöer, och för att hantera interaktion med asynkrona externa händelser. Kursen syftar till att ge en introduktion till de principer som ligger till grund för parallella system, samt praktiska programmeringslösningar för modellering där man utnyttjar samtidighet i program. Områden där dessa principer och praxis är relevanta inkluderar operativsystem, distribuerade system, realtidssystem och flerkärniga arkitekturer.

      Lärandemål (efter fullgjord kurs ska studenten kunna)

      Kunskap och förståelse:
      • demonstrera kunskaper om de frågor och problem som uppstår när man konstruerar korrekta parallela program;
      • identifiera synkroniseringsproblem typiska för parallella program, såsom kapplöpningsvillkor och ömsesidig uteslutning.

      Färdigheter och förmåga:
      • tillämpa vanliga mönster, såsom låsning, semaforer och meddelandestyrd synkronisering för att lösa parallella programmeringsproblem;
      • kunna använda tekniker, speciellt avsedda för parallellprogrammering, i moderna parallell-programmeringsspråk;
      • implementera lösningar med vanliga mönster i moderna programmeringsspråk.

      Värderingsförmåga och förhållningssätt:
      • värdera styrkorna och möjliga svagheter inom det parallella programmeringsparadigmet;
      • bedöma om ett program, ett bibliotek, eller en datastruktur är säker för användning i ett parallellprogrammeringsproblem;
      • välja korrekta språkkonstruktioner för att implementera synkronisering och lösa kommunikationsproblem mellan olika beräkningsenheter.

      Innehåll

      • Fysisk kontra logisk parallellism
      • Problem som kan uppkomma vid samtidighet: kapplöpningsvillkor, uteslutning, dödläge, rättvisa, livelock
      • Ömsesidig uteslutning
      • Synkronisering med delat minne: med semaforer eller finkornig låsning
      • Meddelandestyrd synkronisering: med meddelandeköer

      Organisation

      Kursen organiseras i form av föreläsningar och laborationer.

      Litteratur

      Aktuell information om litteratur ges innan kursstart på kursens hemsida. Vid senaste genomförandet av kursen användes "Principles of Concurrent and Distributed Programming (Second edition)", Mordechai Ben-Ari, Addison-Wesley, 2006. ISBN 0-321-31283-X.

      Examination inklusive obligatoriska moment

      Kursen examineras genom en individuell skriftlig salstentamen (4.5 hec) och laborationer (3.0 hec) som normalt genomförs i par. Det slutliga kursbetyget avgörs av resultatet på både laboratoriedelen och
      tentamen.

      Kursplanen innehåller ändringar

      • Ändring gjord på tentamen:
        • 2020-01-24: Plats Plats ändrat från Johanneberg till SB Multisal av grunnet
          [2020-03-17 4,5 hp, 0217]
        • 2019-09-23: Plats Plats ändrat från Johanneberg till M av grunnet
          [2020-01-09 4,5 hp, 0217]
        • 2019-09-09: Plats Plats ändrat från Johanneberg till SB Multisal av grunnet
          [2019-10-26 4,5 hp, 0217]
      • Ändring gjord på kurstillfälle:
        • 2019-04-11: Tillagd i programplan [Kurstillfälle 1] tillagd i programplan för TKITE åk 3 av UOL