• Niveau d'étude

    BAC +2

  • ECTS

    6 crédits

  • Composante

    Faculté des Sciences

  • Volume horaire

    51h

  • Période de l'année

    Automne

Description

Apporter la connaissance pratique du langage C aux étudiants dans une approche combinant les aspects bas niveau (hardware) et abstraction (système d’exploitation), en se basant sur les connaissances de base d’un autre langage informatique de haut niveau (programmation impérative), typiquement python.

 

Lire plus

Objectifs

- Donner aux étudiants un socle de connaissances pratiques en langage C.

- Préparer les bases permettant d’aborder la partie microcontrôleurs au second semestre

 

Lire plus

Pré-requis nécessaires

  • Numération dans une base (binaire, hexadécimal)
  • Bases d’algorithmique
  • Connaissances élémentaires en programmation impérative (typiquement Python ou C)
Lire plus

Contrôle des connaissances

Examen écrit : 50% de la note finale

TP : 50% de la note finale

Lire plus

Syllabus

  • les mots-clé de base : while, for, if
  • les fonctions : structure d'un appel en bas niveau, passage de paramètres par recopie. Portée des variables.
  • saisie et affichage : chaines formatées, printf et scanf.
  • les types :  utilité, "tableaux" statiques, représentation réelle des variables en RAM, concept d'adresse en C.
  • les pointeurs : notion de variable-adresse, pointeur sur variable, typage des pointeurs et observation de la RAM à travers les pointeurs, comparaison avec la RAM vue comme un flux binaire. Notation * et []. Concept de « flux binaire d’information ».
  • techniques associées aux pointeurs : passage par adresse.
  • allocation dynamique : aspect système, comparaison avec l'allocation statique.
  • structures de données simples, définition de nouveaux types. Fonctions manipulant des structures, pointeurs de structures, allocations de tableaux de structures.
  • aperçu de structures de données avancées : listes chainées
  • Bibliothèques standard: gestion des fichiers, chaines de caractères
Lire plus