Overordnede kursusmål
Kurset forudsætter et grundlæggende kendskab til Java.
Der arbejdes med følgende i grundlæggende C: Filtyper, datatyper,
kontrolstrukturer og arrays.
Derudover arbejdes der med pointere, strukturer og brugerdefinerede
typer. Funktioner - og pointere til funktioner - indgår ligeledes i
kurset,
der også indeholder en gennemgang af preprocessoren og dynamisk
hukommelsesallokering. Desuden arbejdes der med bitwise operationer
og I/O samt
debug, softwaredesign med C og kodeoptimering.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- Kende, forstå, forklare og anvende funktioner, pointere og
strukturer
- Reflektere over software arkitekturen i C
- Kunne fejlfinde og reflektere over metoder til fejlfinding og
resultater deraf
- Kende, forstå og forklare bitwise operationer i C
- Beskrive metoder til optimering af et C program
- Designe et system programmeret i C med brug af pointere, I/O og
dynamisk memoryallokering
- Argumentere for valg og relevans af de anvendte konstruktioner
i C
- Reflektere over makroer og void pointere
- Identificere problemstillinger i relation til brug af
pointere
- anvende alm. forekommende værktøjer til udvikling af C
programmer
Kursusindhold
1. Fra grundlæggende Java til grundlæggende C
Filtyper, datatyper, kontrolstrukturer, arrays
2. Pointere
Pointere generelt, pointere til arrays, pointere til pointere
3. Structs og union og brugerdefinerede typer. Array af
strukturer.Linked Lists, queue og stakke
Operationer på strukturer, arrays af strukturer, selvrefererende
strukturer
4. Preprocessor
Filinkludering, symbolske konstanter, makroer, betinget
compilering
5. Funktioner
Syntaks. Pointere til strukturer og funktioner, rekursion, static
og register variabler. Pointeraritmetik
6. Memory modeller
Dynamisk memoryallokering.
7. bitwise operationer
Operatorer, shift, bit-field
8. I/O
Formatted I/O, streng formattering, filer, filpointere, random
access filoperationer, kommandolinie argumenter
9. SW design med C
10. Typedef.
11. Generisk design med void pointere
12. Debug. Assert. Compileroptimering. kodeoptimering
Sidst opdateret
23. maj, 2017