Valid from: Spring 2021
Decided by: Professor Thomas Johansson
Date of establishment: 2021-03-08
Division: Computer Science (LTH)
Course type: Course given jointly for second and third cycle
The course is also given at second-cycle level with course code: EDAG01
Teaching language: English
The purpose of the course is that the students should learn how to write efficient programs in the C language. In order to achieve this main purpose, three other purposes of the course are that the students should learn about (1) the ISO C18 language, (2) modern computer architecture, from the perspective of the programmer, with focus on microprocessors and cache memories, and (3) modern tools to evaluate C programs in terms of correctness and efficiency.
Knowledge and Understanding
For a passing grade the doctoral student must
Competences and Skills
For a passing grade the doctoral student must
Judgement and Approach
For a passing grade the doctoral student must create a suitable implementation in C based on the requirements of the application
The ISO C18 standard, the principles of the C language, comparison between Java and C, struct, pointer, array, memory allocation, global variables, static storage duration, the C standard library, C compiler, implementation defined behaviour, unspecified behaviour, undefined behaviour, storage class specifiers, type specifiers, C preprocessor, GDB, Valgrind, the profiling tools GPROF, OPROFILE and GCOV, pipelined microprocessors, cache memories, using simulation tools for performance analysis, and a methodology to maximize the performance of a C program.
Jonas Skeppstedt, C.: Writing Efficient C Code --- A Thorough Introduction. Amazon, 2020. ISBN 1530414156.
Types of instruction: Lectures, laboratory exercises, project
Examination format: Oral exam
Grading scale: Failed, pass
Examiner:
Admission requirements: Two courses in computer programming including elementary data structures such as lists and trees.
Assumed prior knowledge: None
Course coordinators:
Web page: https://cs.lth.se/edag01/