Kursplan för

Effektiv C
Efficient C

EDAG01F, 7.5 högskolepoäng

Gäller från och med: Vårterminen 2021
Beslutad av: Professor Thomas Johansson
Datum för fastställande: 2021-03-08

Allmänna uppgifter

Avdelning: Datavetenskap (LTH)
Kurstyp: Gemensam kurs, avancerad nivå och forskarnivå
Kursen ges även på avancerad nivå med kurskod: EDAG01
Undervisningsspråk: Engelska

Syfte

Kursens syfte är att studenterna ska lära sig skriva effektiva program i språket C. För att nå detta huvudsyfte är tre andra syften med kursen att studenterna ska ha kunskaper dels (1) om programspråket ISO C18, dels (2) om modern datorarkitektur, ur programmerarens synvinkel, med fokus på mikroprocessorer och cacheminnen, och dels (3) om moderna verktyg för att utvärdera C program i termer av korrekthet och effektivitet.

Mål

Kunskap och förståelse

För godkänd kurs skall doktoranden

Färdighet och förmåga

För godkänd kurs skall doktoranden

Värderingsförmåga och förhållningssätt

För godkänd kurs skall doktoranden skapa fördelaktig implementation i C med hänsyn taget till tillämpningens krav.

Kursinnehåll

ISO C18 standarden, C-språkets principer, jämförelse mellan språkkonstruktioner i Java och C, struct, pekare, array, minnesallokering, globala variabler, static storage duration, standardbiblioteket i C, C kompilator, implementationsdefinierat beteende, ospecificerat beteende, odefinierat beteende, storage class specifiers, type specifiers, C preprocessor, GDB, Valgrind, profileringsverktygen GPROF, OPROFILE och GCOV, pipelinade mikroprocessorer, cacheminnen, användning av simuleringsverktyg för prestandaanalys, samt en metodik för att maximera prestanda för C program.

Kurslitteratur

Jonas Skeppstedt, C.: Writing Efficient C Code --- A Thorough Introduction. Amazon, 2020. ISBN 1530414156.

Kursens undervisningsformer

Undervisningsformer: Föreläsningar, laborationer, projekt

Kursens examination

Examinationsform: Muntlig tentamen
Betygsskala: Underkänd, godkänd
Examinator:

Antagningsuppgifter

Förkunskapskrav: EDAA01 Programmeringsteknik - fördjupningskurs ELLER EDAA30 Programmering i Java - fortsättningskurs
Förutsatta förkunskaper: Inga

Kurstillfällesinformation

Kontaktinformation och övrigt

Kursansvariga:
Hemsida: https://cs.lth.se/edag01/


Fullständig visning