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