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
04. maj, 2018