Algorithmique et langage C
Algorithmique 1 et avancée, puis le langage C. On y apprend à raisonner sur un traitement avant de l'écrire, et à comprendre ce que la machine fait vraiment de la mémoire.
Variables, types et instructions
Variables, types primitifs, affectation, entrées/sorties, conditions et boucles. La grammaire commune à tous les langages du programme.
Fonctions et décomposition
Découper un traitement en fonctions, paramètres, valeur de retour, portée des variables, effets de bord.
Tableaux et chaînes de caractères
Tableaux à une et deux dimensions, parcours, recherche, tri simple, chaînes en C et terminaison par zéro.
Pointeurs et gestion mémoire
Adresses, pointeurs, allocation dynamique, libération, pile et tas. Le chapitre qui explique la moitié des vulnérabilités mémoire vues plus loin.
Structures et fichiers
Structures, types composés, lecture et écriture de fichiers texte et binaires, gestion des erreurs d'entrée/sortie.
Complexité et algorithmes classiques
Notation grand-O, coût en temps et en mémoire, tris et recherches usuels, récursivité. Pourquoi un traitement correct peut rester inutilisable.