lunduniversity.lu.se

Third-Cycle Courses

Faculty of Engineering | Lund University

Details for the Course Syllabus for Course EDAG01F valid from Spring 2021

Printable view

General
Aim
  • 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.

Contents
  • 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.

Knowledge and Understanding
  • For a passing grade the doctoral student must
  • understand how memory can be allocated and deallocated,
    understand how pointers work and how they are used,
    understand the type system of C, e.g. which type conversions are allowed and portable,
    understand the meaning of implementation defined behaviour, unspecified behaviour, undefined behaviour, and when one should think about these,
    understand how modern microprocessors are implemented with pipelining and which consequences on performance this gives the programmer
    understand how cache memories work and which consequences on performance this gives the programmer, and
    understand how different language constructs, e.g. the use of pointers, can be translated to machine code how this can affect performance.


Competences and Skills
  • For a passing grade the doctoral student must
  • 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.
Judgement and Approach
  • For a passing grade the doctoral student must
  • create a suitable implementation in C based on the requirements of the application

Types of Instruction
  • Lectures
  • Laboratory exercises
  • Project
Examination Formats
  • Oral exam
  • Failed, pass
Admission Requirements
  • Two courses in computer programming including elementary data structures such as lists and trees.
Assumed Prior Knowledge
  • None
Selection Criteria
Literature
  • Jonas Skeppstedt, C.: Writing Efficient C Code --- A Thorough Introduction. Amazon, 2020. ISBN 1530414156.
Further Information
Course code
  • EDAG01F
Administrative Information
  • 2021-03-08
  • Professor Thomas Johansson

All Published Course Occasions for the Course Syllabus

No matching course occasions were found.

0 course occasions.


Printable view