Logo ÉTS
Session
Cours
Responsable(s) Iannick Gagnon

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 : chaîne de compilation-assemblage-exécution, présentation de divers environnements de programmation (p. ex. : Éclipse, Visual Studio, etc.).

Commandes au préprocesseur : #define, #include, #if..#endif et #ifndef..#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 (p. 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éfinitionavantages, création de test, jeux de données et cas limites.

5 à 8

Algorithmes de base sur tableau (suite) : tris (sélection, insertion et bulle) et fouilles (linéaire et binaire/dichotomique).

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 (angl. stack et 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 chaînées (nœud), chaînage 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, etc.).

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

TOTAL 13 x 3 heures = 39 heures

 

 

Laboratoires et travaux pratiques

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 (si les exercices sont terminés).

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 suit pas le standard C99 et en mettant l’accent sur la portabilité du code. L'utilisation de l'environnement Eclipse devra être démontré par l'étudiant·e durant la session.