DV1580 Programmering i C

Programkurs, 6 Högskolepoäng, Grundnivå, höstterminen 2021

Denna kurs är del av program och går inte att söka till.

Syftet med kursen är kunskap i hårdvarunära programmering , dels för fortsatta studier inom datavetenskap och dels för att kunna lösa uppgifter i arbetslivet.

Fakta

  • Undervisningsform: Campus, dagtid, deltid 50%
  • Studietid: 2021 vecka 35 till 2021 vecka 43
  • Nivå: G1F
  • Anmälan : Denna kurs är del av program och går inte att söka till.
  • Språk: Undervisningen ges i huvudsak på svenska men undervisning på engelska kan förekomma.
  • Ort: Karlskrona
  • Huvudområde: Datavetenskap
  • Kursplan: Ladda ner
  • Välkomstbrev: Denna kurs är en del av ett program och saknar välkomstbrev.
  • Förkunskapskrav: För tillträde till kursen krävs att 12 hp programmering är avklarade.

Innehåll

Kursen omfattar följande moment:

  • Operatorer och datatyper i C
  • Talsystem och nummerrepresentation: decimalt, hexadecimalt, binärt, och flyttal
  • Pekare och pekararitmetik
  • Avancerad minneshantering
  • Bitoperationer och bitmanipulation
  • Konstruktion av kodbibliotek
  • Statisk och dynamisk länkning
  • Lågnivå-I/O och gränssnitt mot systembibliotek
  • Asynkron I/O
  • Introduktion till parallell programmering
  • Trådprogrammering
  • Problem som kan uppkomma vid samtidighet: kapplöpningsvillkor, uteslutning, dödläge, rättvisa, livelock
  • Ömsesidig uteslutning
  • Synkronisering med delat minne
  • Gränssnitt till lågnivåprogrammering i assemblyspråk
  • Introduktion till prestandaaspekter och prestandamätningar

Lärandemål

Följande lärandemål examineras i kursen:
Kunskap och förståelse
· Kunna förstå och utförligt förklara olika C-program och språkkonstruktioner i programspråket C.
· Översiktligt kunna förklara grundläggande begrepp inom parallell programmering.
· Översiktligt kunna redogöra för de möjligheter och problem som finns vid utveckling av parallella program.
Färdighet och förmåga
· Självständigt, utifrån en problembeskrivning, kunna implementera en väl strukturerad lösning i C
· Självständigt kunna utveckla programbibliotek, samt hur program länkas till dessa programbibliotek.
· Kunna använda avancerad minneshantering, samt behärska gränssnittet på hårdvaran.
· Kunna designa och implementera parallella program på grundläggande nivå.
Värderingsförmåga och förhållningssätt
· Självständigt och kritiskt kunna utvärdera och analysera sina lösningar.
· Självständigt kunna bedöma komplexiteten i olika programmeringsproblem.

Kurslitteratur och övriga läromedel

Jonas Skeppstedt och Christian Söderberg, Writing Efficient C Code: A Thorough Introduction, 2nd Edition, 2016, ISBN 978-1530414154

Material från institutionen

Kurslitteratur och övriga läromedel

Jonas Skeppstedt och Christian Söderberg, Writing Efficient C Code: A Thorough Introduction, 2nd Edition, 2016, ISBN 978-1530414154

Material från institutionen

Lärande och undervisning

Kursen ges som campuskurs.

Undervisningen består av föreläsningar och laborationer. Föreläsningarna presenterar teorier och bidrar till den teoretiska förståelsen som krävs för att genomföra kursen.

Laborationer tillämpar teorin i praktiska moment. De laborativa momenten genomförs enskilt eller i grupp.

I kursen förutsätts att studenten har, eller skaffar sig, förmågan att självständigt söka information för att lösa problem och svårigheter som dyker upp.

Lärare

Bedömning

Betyg

Kursen bedöms med betygen A Utmärkt, B Mycket bra, C Bra, D Tillfredsställande, E Tillräckligt, FX Otillräckligt, komplettering krävs, F Underkänd.

Tentamina

Du kan läsa mer om tentamen i Studentportalen och där anmäler du dig till de flesta tentamina.


Det kan finnas andra planerade examinationstillfällen. Information om dem finns i lärplattformen Canvas eller på annan plats som kursansvarig hänvisar till.

Kursvärdering

Kursansvarig ansvarar för att studenternas synpunkter på kursen systematiskt och regelbundet inhämtas och att resultaten av utvärderingar i olika former påverkar kursens utformning och utveckling.