Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.

Blekinge Tekniska Högskola
Institutionen för datavetenskap

Revision: 1
Dnr: BTH-4.1.14-0210-2025


Kursplan

Programmering i C

Programming in C

6 högskolepoäng (6 credits)

Kurskod: DV1727
Huvudområde: Datavetenskap, Programvaruteknik
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav

Undervisningsspråk: Svenska
Gäller från: 2025-03-13
Fastställd: 2025-03-13

1. Beslut

Denna kurs är inrättad av dekan 2024-09-27. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2025-03-13 och gäller från 2025-03-13.

2. Förkunskapskrav

För tillträde till kursen krävs 12 avklarade hp i programmering, samt en genomgången kurs i datorteknik.

3. Syfte och innehåll

3.1 Syfte

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

3.2 Innehåll

Kursen tar upp

  • Operatorer.
  • Datatyper.
  • Talsystem och talrepresentation.
  • Pekare, pekararitmetik, och minneshantering.
  • Bitoperationer och bitmanipulation.
  • Konstruktion av kodbibliotek, statisk- och dynamisk länkning.
  • Lågnivå-I/O och gränssnitt mot systembibliotek.
  • Hantering av binära- och text-filer.
  • Hantering av tid i program.
  • Prestandaaspekter och prestandamätningar.
  • Synkronisering med delat minne.
  • Parallell programmering med hjälp av trådar, och problem som kan uppkomma vid samtidighet.

4. Lärandemål

Följande lärandemål examineras i kursen:

4.1. Kunskap och förståelse

Efter genomförd kurs ska studenten kunna:

  • Utförligt förklara olika C-program och språkkonstruktioner.
  • Använda grundläggande konstruktioner och hantera vanliga problem vid parallell programmering.

4.2. Färdighet och förmåga

Efter genomförd kurs ska studenten kunna:

  • Implementera en väl strukturerad lösning i C utifrån en problembeskrivning, både som applikation och som program-bibliotek.
  • Använda befintliga programbibliotek, både statiskt och dynamiskt.
  • Implementera parallella program på grundläggande nivå.
  • Använda avancerad minneshantering
  • Effektivt läsa och skriva data till binära- och text-filer.

5. Läraktiviteter

I kursen introduceras och tränas programmering i C genom föreläsningar, seminarier och övningar. I början ligger fokus på syntax, kompilering, felhantering och lite mer C-specifika aspekter som pekare, pekararitmetik, och minneshantering. Eftersom introduceras I/O, parallell programmering, filhantering, etc. Vi går igenom programbibliotek, hur man använder dem och hur man själv kan skapa dessa. Vi tar även upp hur man skriver tester för att testa sina program. Kursen består av tre examinationsmoment, det första momentet är en kontroll av hantering av syntax. Det andra momentet är ett programmeringsmoment, där man ska visa att man kan tillämpa sina kunskaper för att lösa en kort uppgift. Det tredje momentet är en lite större programmeringsuppgift, och den får man endast påbörja om man har klarat av de två första momenten.

6. Bedömning och examination

Examinationsmoment för kursen

Kod Benämning Omf. Betyg
2511 Laboration 1 2 hp GU
2521 Laboration 2 2 hp GU
2531 Inlämningsuppgift 2 hp GU

Kursen bedöms med betygen G Godkänd, UX Underkänd, något mer arbete krävs, U Underkänd.

Examinator har möjlighet att muntligen följa upp skriftliga examinationer.

I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.

Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.

7. Kursvärdering

Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.

8. Begränsningar i examen

Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.

9. Kurslitteratur och övriga lärresurser

Jens Gustedt, Modern C, 2019, ISBN 978-1617295812

Referenslitteratur
Brian W Kernighan, Dennis Ritchie, The C Programming Language, 2nd edition, 1988, ISBN 978-0131103627
Jonas Skeppstedt och Christian Söderberg, Writing Efficient C Code: A Thorough Introduction, 2nd Edition, 2016, ISBN 978-1530414154

10. Övrigt

Denna kurs ersätter kursen DV1580