Logo ÉTS
Session
Cours
Responsable(s) Anis Boubaker

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

Ce tableau est donné à titre indicatif. Il se peut que votre enseignant modifie l’ordre de présentation des notions pour des raisons pédagogiques.

 

COURS

MATIÈRE

1 à 4

Description première de la qualité de programmation attendue : commentaires de spécifications et de stratégie, aération, indentation, utilisation de constantes symboliques et choix des identificateurs, portabilité.

Notions élémentaires de programmation : types de base du C avec leurs opérateurs et conversions automatiques, variables, entrées/sorties de base, instructions conditionnelles et itérativescomparaison et compatibilité des types numériques, opérateurs binaires.

Environnements de programmation : chaine de compilation-assemblage-exécution, présentation de divers environnements de programmation
(ex. : Éclipse, Visual Studio, etc.).

Commandes au préprocesseur : #define, #include, et #if..#endif.

Procédures et fonctions : déclaration, commentaires standards de déclaration et d’implémentation, paramètres effectifs et paramètres formels, valeur de retour, passage par valeur, portée et durée de vie des variables, factorisation.

Passage par adresse : variables pointeurs (déclaration et assignation).

Macros-fonctions : avantages, déclaration et utilisation.

Tableaux : déclaration, initialisation, accès aux éléments, passage en paramètre, algorithmes de base (ex. : min, max, etc.), déclarations de types (avec typedef).

Introduction aux enregistrements (struct) : déclaration, accès aux champs, affectation et passage en paramètre.

Utilisation de modules externes : inclusion et utilisation de modules externes dans un projet.

Tests unitaires : définition, avantages, création de test, jeux de données et cas limites.

5 à 8

Algorithmes de base sur tableau (suite) : tris (sélection, insertion bulle) et fouilles (linéaires et binaires).

Pointeurs et adresses : arithmétique des adresses (démontrer l’utilisation de sizeof) et pointeurs génériques (void *).

Classes d’allocation : auto, static et extern. La pile et le tas (stack && heap).

Allocation dynamique  : utilisation des fonctions d’allocation dynamique (malloc, calloc, realloc et free), allocation de tableaux dynamiques ».

Chaînes de caractères: chaînes littérales et fonctions offertes par le langage ().

Implémentation de modules externes : modules de déclarations (.h) et de définitions (.c), définitions de types et implémentations des fonctions nécessaires à une architecture bien faite, encapsulation des données et des traitements.

Type de données abstraits : les piles (t_pile) et les files (t_file), première implémentation sur tableaux de ces modules de type.

9 à 13

Type de données abstraits (suite) :  les listes (t_liste), implémentation sur tableaux.

 

Chaînage dynamique : références chainées (nœud), chainage simple et double.

 

Piles et files : implémentations version chaînage dynamique.

 

Listes chaînées (simple et double) : intérêt, fonctionnement et implémentations (avec et sans position courante implicite).

Fichiers textes et binaires : le FILE * et ses fonctions classiques (fopen, fclose, feof, … ).

 

Notions complémentaires présentées selon les besoins des travaux pratiques (si nécessaires).

Total : 39 heures
 

Laboratoires et travaux pratiques

3 heures et demie de cours par semaine.

3 heures de laboratoire par semaine.

Les laboratoires visent :

  • l’assimilation par l’expérience des notions vues au cours;
  • la mise au point de programmes donnés en travaux pratiques.

 

La séance de laboratoire pourra être jumelée avec celle du cours de façon à ce que chaque rencontre hebdomadaire se compose d’une période de théorie et d’une période de laboratoire.


Utilisation d'outils d'ingénierie

Nous utiliserons principalement le compilateur Visual C++ en évitant soigneusement toute librairie et toute fonction qui ne soient pas ANSI et en mettant l’accent sur la portabilité du code.