Description du projet
Développement logiciel
Principes de base
Organisation des fichiers dans un projet logiciel ; chaîne de développement (préprocesseur, compilateur, éditeur de lien, chargeur, etc.)
Stockage sur mémoire de masse et exécution (runtime) d’un programme : zone de code, zones mémoire, etc.
Représentation et codage des informations : bases de calcul (2,10,16), types scalaires, réels, caractères, etc.
Gestion mémoire : adresse/valeur, pointeurs, variables statiques, allocations automatique et dynamique (pile/tas), etc.
Variables ; durée de vie, visibilité
Organisation des programmes : point d’entrée et arguments de la ligne de commande, prototypes, fonctions, paramètres, valeur de retour
Variables d’environnement
Flux d’entrée et de sortie de base : terminaux, fichiers, réseau, etc. (spécifications POSIX)
Algorithmique
Structures fondamentales : enchaînements, alternatives, itérations, etc. Représentation graphique (organigrammes)
Manipulations de texte (chaînes de caractères)
Algorithmes de tri/de recherche
Modèle canonique de gestion d’E/S : ouvrir, lire, écrire, fermer
Bibliothèque standard (ANSI C)
Structure et gestion des données
Types dérivés : tableaux, énumérations, enregistrements
Structures de données et méthodes d’accès directe et/ou indirecte : liste, file, pile, tableau, etc.
Structures dynamiques : listes chaînées 3 Formats de fichier : texte (human readable), binaire Formats multimédia (image, vidéo, son, …)
Techniques de cryptage et de compression des données
Bases de données : différents types (relationnelles, objets, …), organisation et techniques de mise à jour (tables, liens, MCD, requêtes, …)
Bases de données : liaison et communication avec une application logicielle (MySQL, SQLite, …)
Programmation procédurale
Manipulations de données (« quoi ») en pseudo-langage et/ou en langage C
Transcription d’algorithmes (« comment ») en pseudo-langage et/ou en langage C