Aller au contenu principal

Fondamentaux de l’informatique

Servez-vous de cette page comme d’une liste de contrôle, pas comme d’un programme de cours. Le noyau durable est restreint :

  1. Représentation : bits, nombres, texte, instructions et formats de données.
  2. Exécution : expressions, état, flux de contrôle, fonctions, récursion et abstraction.
  3. Ressources : temps, mémoire, stockage, réseaux et compromis entre eux.
  4. Composition : interfaces, modules, processus, protocoles et couches.
  5. Fiabilité : invariants, tests, modes d’échec, observabilité et frontières de sécurité.

Poursuivez avec les structures de données, les algorithmes et les langages de programmation. Pour un cours d’introduction rigoureux, Berkeley CS 61A constitue un parcours externe utile.

Transformer la liste en parcours

Cette page couvre les fondamentaux de la programmation, sans traiter intégralement le matériel, les systèmes d’exploitation, les réseaux ou la sécurité. Vous pouvez commencer sans connaître de langage, mais exécutez les exemples dans un seul langage plutôt que d’aborder toutes les couches à la fois.

QuestionPoint de départVérifier sa compréhension
Affecter une variable copie-t-il les données ?Noms et objets PythonPrévoir si modifier une liste ayant un alias change les deux vues.
Comment une fonction produit-elle un résultat ?FonctionsDistinguer arguments, noms locaux, valeurs retournées et effets de bord.
Pourquoi davantage de données exige-t-il davantage de travail ?Complexité temporelleNommer la taille de l’entrée et l’opération comptée avant de donner une borne.
Quelles propriétés doivent survivre à une modification ?Listes chaînéesExpliquer l’état de la tête et de la queue après le retrait du dernier élément.
Comment détecter une violation du contrat ?Tests unitairesTester séparément une entrée ordinaire, vide et invalide.

Un invariant est une propriété que chaque état valide ou chaque étape de boucle terminée doit préserver. Un test vérifie certaines exécutions ; un raisonnement par invariants explique pourquoi toutes les exécutions respectant les hypothèses sont correctes. Dans les deux cas, il faut d’abord préciser ce que le programme doit faire. Il faut aussi montrer que l’algorithme progresse vers son arrêt ; un invariant seul ne prouve pas sa terminaison.

Explorer les liensOuvrir le réseau