|
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é.
Philosophie du programmeur : Le moins coûteux en temps machine, en espace mémoire et en répétition de code sans nuire à sa clarté.
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ératives, comparaison et compatibilité des types numériques, opérateurs binaires, notions sur la chaîne de compilation et les fichiers produits (ex. : fichiers objets .obj et exécutables).
Environnements de programmation : Chaîne de compilation-assemblage-exécution, présentation de l’environnement de programmation utilisé (VS Code).
Documentation et références : Consultation de la documentation (ex. : man-pages, C reference card, etc.).
Commandes au préprocesseur : #define, #include, #if et #endif.
Procédures, fonctions et tests unitaires : 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 (découpage en sous-programmes) : définition, avantages, création de tests (données et cas limites).
Passage par adresse : Introduction aux variables pointeurs (déclaration, assignation et utilisation).
Macros-fonctions : Avantages, déclaration, utilisation et tests.
Tableaux : Déclaration, initialisation, accès aux éléments, passage en paramètres, algorithmes de base (ex. : min, max, etc.), déclarations de type (avec typedef).
Utilisation de modules externes : Inclusion et utilisation de modules externes dans un projet.
|
|
5 à 8
|
Algorithmes de base sur tableau (suite) : Algorithmes de tri et de recherche, utilisation de qsort() et bsearch() de la bibliothèque standard (stdlib.h).
Introduction aux enregistrements (struct) : Déclaration, accès aux champs, affectation et passage en paramètre.
Implémentation de modules externes de type (#ifndef-#define) : Modules de déclarations (.h) et de définitions (.c), définitions de type, passage par référence (const ou pas const) et implémentation des fonctions nécessaires.
Pointeurs et adresses : Arithmétique des adresses avec l'opérateur sizeof et pointeurs génériques (void *).
Classes d’allocation : La pile (stack) et le tas (heap).
Allocation dynamique et gestion de la mémoire haute : Utilisation des fonctions d’allocation dynamique (malloc, calloc, realloc et free), allocation de tableaux et d'enregistrements dynamiques.
Chaînes de caractères : Chaînes littérales const char * et fonctions standard, différence entre char * et char[], et tests.
Types de données abstraits : Introduction aux piles (t_pile) et aux files (t_file). Première implémentation sur tableaux de ces modules de type et tests.
|
|
9 à 13
|
Types de données abstraits (suite) : Introduction aux listes (t_liste), implémentation sur tableaux et tests.
Chaînage dynamique : Références chaînées (nœud), chaînage simple et survol du chaînage double.
Piles et files : Introduction au chaînage dynamique pour les piles et les files.
Listes chaînées : Intérêt, fonctionnement et différentes implémentations (chaînage simple; le chaînage double est seulement survolé), encapsulation des données et des traitements, et tests.
Fichiers textes et binaires : Le FILE * et ses fonctions classiques (ex. : fopen, fclose, feof) et tests.
|