• Study level

    BAC +2

  • ECTS

    6 credits

  • Component

    Faculty of Science

  • Hourly volume

    51h

  • Time of year

    Autumn

Description

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

 

Read more

Objectives

- Provide students with a foundation of practical knowledge of the C language.

- Prepare the groundwork for the microcontroller section in the second semester

 

Read more

Necessary prerequisites

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

Knowledge control

Written exam: 50% of final grade

Practical work: 50% of final grade

Read more

Syllabus

  • basic keywords: while, for, if
  • functions: structure of a low-level call, passing parameters by recopying. Scope of variables.
  • input and display: formatted strings, printf and scanf.
  • types: usefulness, static "arrays", real representation of variables in RAM, the concept of address in C.
  • pointers: notion of variable-address, pointer to variable, typing of pointers and observation of RAM through pointers, comparison with RAM seen as a binary stream. Notation * and []. Concept of "binary information flow".
  • techniques associated with pointers: address passing.
  • dynamic allocation: system aspects, 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, character strings
Read more