lu.se

Forskar­utbildnings­kurser

Lunds tekniska högskola | Lunds universitet

Detaljer för kursplan för kurs EDAG01F giltig från och med VT 2021

Utskriftsvänlig visning

Allmänt
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.

Innehå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.
Kunskap och förståelse
  • För godkänd kurs skall doktoranden
  • förstå hur minne kan allokeras och avallokeras i C,
    förstå hur pekare fungerar och hur de används,
    förstå typsystemet i C, t.ex vilka typkonverteringar som är tillåtna och portabla,
    förstå betydelsen av implementationsdefinierat beteende, ospecificerat beteende, odefinierat beteende, och när man ska tänka på detta,
    förstå hur moderna mikroprocessorer implementeras med hjälp av pipelining och vilka konsekvenser för prestanda detta får för programmeraren,
    förstå hur cacheminnen fungerar och vilka konsekvenser för prestanda detta får för programmeraren, samt
    förstå hur olika språkkonstruktioner, t.ex. användning av pekare, kan översättas till maskinkod och hur detta kan påverka prestanda.
Färdighet och förmåga
  • För godkänd kurs skall doktoranden
  • kunna skriva effektiva program i språket ISO C, dvs C18,
    kunna använda debuggern GDB,
    med hjälp av moderna verktyg kunna hitta defekter och analysera prestandan i C program, samt
    kunna maximera prestandan genom att skriva om programmet utifrån den information prestandaanalysverktygen ger.

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.

Undervisningsformer
  • Föreläsningar
  • Laborationer
  • Projekt
Examinationsformer
  • Muntlig tentamen
  • Underkänd, godkänd
Förkunskapskrav
  • EDAA01 Programmeringsteknik - fördjupningskurs ELLER EDAA30 Programmering i Java - fortsättningskurs
Förutsatta förkunskaper
  • Inga
Urvalskriterier
Litteratur
  • Jonas Skeppstedt, C.: Writing Efficient C Code --- A Thorough Introduction. Amazon, 2020. ISBN 1530414156.
Övrig information
Kurskod
  • EDAG01F
Administrativ information
  • 2021-03-08
  • Professor Thomas Johansson

Alla publicerade kurstillfällen för kursplanen

Inga matchande kurstillfällen hittades.

0 kurstillfällen.


Utskriftsvänlig visning