• Level of study

    BAC +2

  • ECTS

    6 credits

  • Component

    Faculty of Science

  • Hourly volume

    51h

  • Time of the year

    Fall

Description

To provide students with a working knowledge of the C language in an approach combining low-level (hardware) and abstract (operating system) aspects, based on the basic knowledge of another high-level computer language (imperative programming), typically python.

 

Read more

Objectives

- To give students a base of practical knowledge in the C language.

- Prepare the basis to approach the microcontroller part in the second semester

 

Read more

Necessary pre-requisites

  • Numeration in a base (binary, hexadecimal)
  • Basics of Algorithms
  • Basic knowledge of imperative programming (typically Python or C)
Read more

Knowledge control

Written exam: 50% of the final grade

Practical work: 50% of the final grade

Read more

Syllabus

  • basic keywords: while, for, if
  • functions: structure of a low-level call, passing parameters by copying. Scope of variables.
  • input and display: formatted strings, printf and scanf.
  • types: usefulness, static "arrays", real representation of variables in RAM, concept of address in C.
  • pointers: notion of variable-address, pointer on variable, typing of pointers and observation of RAM through pointers, comparison with RAM seen as a binary flow. Notation * and []. Concept of "binary flow of information".
  • techniques associated with pointers: address passing.
  • dynamic allocation: system aspect, comparison with static allocation.
  • simple data structures, definition of new types. Functions manipulating structures, structure pointers, structure array allocations.
  • overview of advanced data structures: chained lists
  • Standard libraries: file management, strings
Read more